File

spec/scansion/pubsub_createdelete.scs @ 12636:e8934ce6ea0f

util.stanza: Add method for extracting a single attribute value Sometimes you only care about a single attribute, but the child tag itself may be optional, leading to needing `tag and tag.attr.foo` or `stanza:find("tag@foo")`. The `:find()` method is fairly complex, so avoiding it for this kind of simpler use case is a win.
author Kim Alvefur <zash@zash.se>
date Wed, 17 Aug 2022 19:04:30 +0200
parent 9291:329a670ae975
line wrap: on
line source

# Pubsub: Create and delete

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

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

---------

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 type="set" to="pubsub.localhost" id='create2'>
		<pubsub xmlns="http://jabber.org/protocol/pubsub">
			<create node="princely_musings"/>
		</pubsub>
	</iq>

Romeo receives:
	<iq type="error" id='create2'>
		<error type="cancel">
			<conflict xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
		</error>
	</iq>

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

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

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

Romeo receives:
	<iq type="error" id='delete2'>
		<error type="cancel">
			<item-not-found xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
		</error>
	</iq>

Romeo disconnects

// vim: syntax=xml: