File

spec/scansion/mam_extended.scs @ 13525:0f7e7311eebf

util.xtemplate: Use same argument order in filters even without 'args' This removes the different argument order used between '{x|foo}' and '{x|foo(y)}' because the differing order was awkward and confusing. This util does not seem to be widely used so should not be problematic to change this part. The only known use is in mod_pubsub, which does not use the filter function feature.
author Kim Alvefur <zash@zash.se>
date Wed, 16 Oct 2024 16:15:05 +0200
parent 13405:c8f3cfe59e90
line wrap: on
line source

# 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>