util.startup: Abort before initialization of logging when started as root
Prevents creation of log files owned by the root user which could be
inaccessible once started correctly.
# MAM 0.7.x Extended features
[Client] Romeo
jid: extmamtester@localhost
password: password
---------
Romeo connects
# Enable MAM so we can save some messages
Romeo sends:
<iq type="set" id="enablemam">
<prefs xmlns="urn:xmpp:mam:2" default="always">
<always/>
<never/>
</prefs>
</iq>
Romeo receives:
<iq type="result" id="enablemam">
<prefs xmlns="urn:xmpp:mam:2" default="always">
<always/>
<never/>
</prefs>
</iq>
# Some messages to look for later
Romeo sends:
<message to="someone@localhost" type="chat" id="chat01">
<body>Hello</body>
</message>
Romeo sends:
<message to="someone@localhost" type="chat" id="chat02">
<body>U there?</body>
</message>
# Metadata
Romeo sends:
<iq type="get" id="mamextmeta">
<metadata xmlns="urn:xmpp:mam:2"/>
</iq>
Romeo receives:
<iq type="result" id="mamextmeta">
<metadata xmlns="urn:xmpp:mam:2">
<start timestamp="{scansion:capture:start}" xmlns="urn:xmpp:mam:2" id="{scansion:capture:first}"/>
<end timestamp="{scansion:capture:end}" xmlns="urn:xmpp:mam:2" id="{scansion:capture:last}"/>
</metadata>
</iq>
Romeo sends:
<iq type="set" id="mamquery1">
<query xmlns="urn:xmpp:mam:2" queryid="q1"/>
</iq>
Romeo receives:
<message to="${Romeo's full JID}">
<result xmlns="urn:xmpp:mam:2" queryid="q1" id="{scansion:capture:first}">
<forwarded xmlns="urn:xmpp:forward:0">
<delay stamp="{scansion:capture:start}" xmlns="urn:xmpp:delay"/>
<message to="someone@localhost" xmlns="jabber:client" type="chat" xml:lang="en" id="chat01" from="${Romeo's full JID}">
<body>Hello</body>
</message>
</forwarded>
</result>
</message>
Romeo receives:
<message to="${Romeo's full JID}">
<result xmlns="urn:xmpp:mam:2" queryid="q1" id="{scansion:capture:last}">
<forwarded xmlns="urn:xmpp:forward:0">
<delay stamp="{scansion:capture:end}" xmlns="urn:xmpp:delay"/>
<message to="someone@localhost" xmlns="jabber:client" type="chat" xml:lang="en" id="chat02" from="${Romeo's full JID}">
<body>U there?</body>
</message>
</forwarded>
</result>
</message>
# FIXME unstable tag order from util.rsm
Romeo receives:
<iq type="result" id="mamquery1" to="${Romeo's full JID}">
<fin xmlns="urn:xmpp:mam:2" complete="true" scansion:strict="false">
</fin>
</iq>
# Get results in reverse order
Romeo sends:
<iq type="set" id="mamquery2">
<query xmlns="urn:xmpp:mam:2" queryid="q1">
<flip-page/>
</query>
</iq>
Romeo receives:
<message to="${Romeo's full JID}">
<result xmlns="urn:xmpp:mam:2" queryid="q1" id="{scansion:any}">
<forwarded xmlns="urn:xmpp:forward:0">
<delay stamp="{scansion:capture:start}" xmlns="urn:xmpp:delay"/>
<message to="someone@localhost" xmlns="jabber:client" type="chat" xml:lang="en" id="chat02" from="${Romeo's full JID}">
<body>U there?</body>
</message>
</forwarded>
</result>
</message>
Romeo receives:
<message to="${Romeo's full JID}">
<result xmlns="urn:xmpp:mam:2" queryid="q1" id="{scansion:any}">
<forwarded xmlns="urn:xmpp:forward:0">
<delay stamp="{scansion:capture:end}" xmlns="urn:xmpp:delay"/>
<message to="someone@localhost" xmlns="jabber:client" type="chat" xml:lang="en" id="chat01" from="${Romeo's full JID}">
<body>Hello</body>
</message>
</forwarded>
</result>
</message>
# FIXME unstable tag order from util.rsm
Romeo receives:
<iq type="result" id="mamquery2" to="${Romeo's full JID}">
<fin xmlns="urn:xmpp:mam:2" complete="true" scansion:strict="false">
</fin>
</iq>