File

spec/scansion/mam_extended.scs @ 11722:bc2d3f110a39

mod_pep: Remove use of RLU cache when persist_items was set to false This behavior came from some confusion over the meaning of persist_items. The correct behavior is that items are only stored when it is set to true. When set to false, the service becomes a "pure" publish-subscribe service, where items are forgotten immediately after broadcasting.
author Kim Alvefur <zash@zash.se>
date Wed, 21 Jul 2021 23:02:25 +0200
parent 11338:2d5cdb010c65
child 12630:781772c8b6d9
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="2008-08-22T21:09:04Z" xmlns="urn:xmpp:mam:2" id="{scansion:any}"/>
			<end timestamp="2008-08-22T21:09:04Z" xmlns="urn:xmpp:mam:2" id="{scansion:any}"/>
		</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:any}">
			<forwarded xmlns="urn:xmpp:forward:0">
				<delay stamp="2008-08-22T21:09:04Z" 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:any}">
			<forwarded xmlns="urn:xmpp:forward:0">
				<delay stamp="2008-08-22T21:09:04Z" 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="2008-08-22T21:09:04Z" 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="2008-08-22T21:09:04Z" 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>