File

spec/scansion/pubsub_resend_on_sub.scs @ 13745:994ea8d54b72 13.0

core.configmanager: Pass name and line number in context Delays the string interpolation until the warning is logged, which may slightly lower memory usage. Allows retrieving the filename and line number easily.
author Kim Alvefur <zash@zash.se>
date Sat, 22 Feb 2025 00:04:51 +0100
parent 11854:b605cbd5f13b
line wrap: on
line source

# Pubsub: Send last item on subscribe #1436

[Client] Romeo
	jid: admin@localhost
	password: password

// admin@localhost is assumed to have node creation privileges

[Client] Juliet
	jid: juliet@localhost
	password: password

---------

Romeo connects

Romeo sends:
	<iq type="set" to="pubsub.localhost" id='create1'>
		<pubsub xmlns="http://jabber.org/protocol/pubsub">
			<create node="princely_musings"/>
		</pubsub>
	</iq>

Romeo receives:
	<iq type="result" id='create1'/>

Romeo sends:
	<iq to="pubsub.localhost" id="config-never" type="set">
		<pubsub xmlns="http://jabber.org/protocol/pubsub#owner">
			<configure node="princely_musings">
				<x xmlns="jabber:x:data" type="submit">
					<field var="FORM_TYPE" type="hidden">
						<value>http://jabber.org/protocol/pubsub#node_config</value>
					</field>
					<field type='list-single' var='pubsub#send_last_published_item'>
						<value>never</value>
					</field>
				</x>
			</configure>
		</pubsub>
	</iq>

Romeo receives:
	<iq from="pubsub.localhost" id="config-never" type="result"/>

Romeo sends:
	<iq type="set" to="pubsub.localhost" id='pub1'>
		<pubsub xmlns="http://jabber.org/protocol/pubsub">
			<publish node="princely_musings">
				<item id="current">
					<entry xmlns="http://www.w3.org/2005/Atom">
						<title>Soliloquy</title>
						<summary>Lorem ipsum dolor sit amet</summary>
					</entry>
				</item>
			</publish>
		</pubsub>
	</iq>

Romeo receives:
	<iq type="result" id='pub1'/>

Juliet connects

Juliet sends:
	<iq type="set" to="pubsub.localhost" id='sub1'>
		<pubsub xmlns="http://jabber.org/protocol/pubsub">
			<subscribe node="princely_musings" jid="${Juliet's full JID}"/>
		</pubsub>
	</iq>

Juliet receives:
	<iq type="result" id='sub1'/>

Juliet sends:
	<iq type="set" to="pubsub.localhost" id='unsub1'>
		<pubsub xmlns="http://jabber.org/protocol/pubsub">
			<unsubscribe node="princely_musings" jid="${Juliet's full JID}"/>
		</pubsub>
	</iq>

Juliet receives:
	<iq type="result" id='unsub1'/>

Romeo sends:
	<iq to="pubsub.localhost" id="config-on_sub" type="set">
		<pubsub xmlns="http://jabber.org/protocol/pubsub#owner">
			<configure node="princely_musings">
				<x xmlns="jabber:x:data" type="submit">
					<field var="FORM_TYPE" type="hidden">
						<value>http://jabber.org/protocol/pubsub#node_config</value>
					</field>
					<field type='list-single' var='pubsub#send_last_published_item'>
						<value>on_sub</value>
					</field>
				</x>
			</configure>
		</pubsub>
	</iq>

Romeo receives:
	<iq from="pubsub.localhost" id="config-on_sub" type="result"/>

Juliet sends:
	<iq type="set" to="pubsub.localhost" id='sub2'>
		<pubsub xmlns="http://jabber.org/protocol/pubsub">
			<subscribe node="princely_musings" jid="${Juliet's full JID}"/>
		</pubsub>
	</iq>

Juliet receives:
	<iq type="result" id='sub2'/>

Juliet receives:
	<message type="headline" from="pubsub.localhost">
		<event xmlns="http://jabber.org/protocol/pubsub#event">
			<items node="princely_musings">
				<item id="current" publisher="${Romeo's JID}">
					<entry xmlns="http://www.w3.org/2005/Atom">
						<title>Soliloquy</title>
						<summary>Lorem ipsum dolor sit amet</summary>
					</entry>
				</item>
			</items>
		</event>
	</message>

Juliet sends:
	<iq type="set" to="pubsub.localhost" id='unsub2'>
		<pubsub xmlns="http://jabber.org/protocol/pubsub">
			<unsubscribe node="princely_musings" jid="${Juliet's full JID}"/>
		</pubsub>
	</iq>

Juliet receives:
	<iq type="result" id='unsub2'/>

Juliet disconnects

Romeo sends:
	<iq type="set" to="pubsub.localhost" id='del1'>
		<pubsub xmlns="http://jabber.org/protocol/pubsub#owner">
			<delete node="princely_musings"/>
		</pubsub>
	</iq>

Romeo receives:
	<iq type="result" id='del1'/>

Romeo disconnects

// vim: syntax=xml: