prosody/spec/scansion/pubsub_resend_on_sub.scs
Kim Alvefur 4b05d0f240 mod_pubsub,mod_pep: Implement 'send_last_published_item' option #1436
Default left as 'never' in mod_pubsub to preserve the previous behavior.
Unclear if this is desirable, but can always be changed later.

In mod_pep this allows turning off the automatic resending of most
recent item.
2021-10-19 18:11:50 +02:00

152 lines
3.7 KiB
XML

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