XEP-0060 v1.13 dictates publishing/retracting one item at a time.

This commit is contained in:
Lance Stout
2011-08-31 23:48:22 -07:00
parent d2dc4824ee
commit 76bc0a2ba6
3 changed files with 27 additions and 108 deletions

View File

@@ -359,6 +359,20 @@ class TestStreamPubsub(SleekTest):
</iq>
""")
def testPublishNoItems(self):
"""Test publishing no items (in order to generate events)"""
self.xmpp['xep_0060'].publish(
'pubsub.example.com',
'somenode',
block=False)
self.send("""
<iq type="set" id="1" to="pubsub.example.com">
<pubsub xmlns="http://jabber.org/protocol/pubsub">
<publish node="somenode" />
</pubsub>
</iq>
""")
def testPublishSingle(self):
"""Test publishing a single item."""
payload = AtomEntry()
@@ -369,14 +383,14 @@ class TestStreamPubsub(SleekTest):
self.xmpp['xep_0060'].publish(
'pubsub.example.com',
'somenode',
item_id='ID42',
id='id42',
payload=payload,
block=False)
self.send("""
<iq type="set" id="1" to="pubsub.example.com">
<pubsub xmlns="http://jabber.org/protocol/pubsub">
<publish node="somenode">
<item id="ID42">
<item id="id42">
<entry xmlns="http://www.w3.org/2005/Atom">
<title>Test</title>
</entry>
@@ -403,7 +417,7 @@ class TestStreamPubsub(SleekTest):
self.xmpp['xep_0060'].publish(
'pubsub.example.com',
'somenode',
item_id='ID42',
id='ID42',
payload=payload,
options=options,
block=False)
@@ -431,94 +445,6 @@ class TestStreamPubsub(SleekTest):
</iq>
""", use_values=False)
def testPublishMulti(self):
"""Test publishing multiple items."""
payload1 = AtomEntry()
payload1['title'] = 'Test 1'
payload2 = AtomEntry()
payload2['title'] = 'Test 2'
register_stanza_plugin(self.xmpp['xep_0060'].stanza.Item, AtomEntry)
self.xmpp['xep_0060'].publish(
'pubsub.example.com',
'somenode',
items=[('ID1', payload1),
('ID2', payload2)],
block=False)
self.send("""
<iq type="set" id="1" to="pubsub.example.com">
<pubsub xmlns="http://jabber.org/protocol/pubsub">
<publish node="somenode">
<item id="ID1">
<entry xmlns="http://www.w3.org/2005/Atom">
<title>Test 1</title>
</entry>
</item>
<item id="ID2">
<entry xmlns="http://www.w3.org/2005/Atom">
<title>Test 2</title>
</entry>
</item>
</publish>
</pubsub>
</iq>
""", use_values=False)
def testPublishMultiOptions(self):
"""Test publishing multiple items, with options."""
payload1 = AtomEntry()
payload1['title'] = 'Test 1'
payload2 = AtomEntry()
payload2['title'] = 'Test 2'
register_stanza_plugin(self.xmpp['xep_0060'].stanza.Item, AtomEntry)
options = self.xmpp['xep_0004'].make_form()
options.add_field(var='FORM_TYPE', ftype='hidden',
value='http://jabber.org/protocol/pubsub#publish-options')
options.add_field(var='pubsub#access_model', ftype='text-single',
value='presence')
options['type'] = 'submit'
self.xmpp['xep_0060'].publish(
'pubsub.example.com',
'somenode',
items=[('ID1', payload1),
('ID2', payload2)],
options=options,
block=False)
self.send("""
<iq type="set" id="1" to="pubsub.example.com">
<pubsub xmlns="http://jabber.org/protocol/pubsub">
<publish node="somenode">
<item id="ID1">
<entry xmlns="http://www.w3.org/2005/Atom">
<title>Test 1</title>
</entry>
</item>
<item id="ID2">
<entry xmlns="http://www.w3.org/2005/Atom">
<title>Test 2</title>
</entry>
</item>
</publish>
<publish-options>
<x xmlns="jabber:x:data" type="submit">
<field var="FORM_TYPE">
<value>http://jabber.org/protocol/pubsub#publish-options</value>
</field>
<field var="pubsub#access_model">
<value>presence</value>
</field>
</x>
</publish-options>
</pubsub>
</iq>
""", use_values=False)
def testRetract(self):
"""Test deleting an item."""
self.xmpp['xep_0060'].retract(