summaryrefslogtreecommitdiff
path: root/tests/test_stream_xep_0128.py
diff options
context:
space:
mode:
authorLance Stout <lancestout@gmail.com>2011-03-22 20:42:43 -0400
committerLance Stout <lancestout@gmail.com>2011-03-22 20:42:43 -0400
commit4b1fadde4bd87a8763131165701c08a3035005eb (patch)
treef5408e05793dbdad7e4b02427ec67cfece66e432 /tests/test_stream_xep_0128.py
parent86a6b40fd81daa7d0e976dbc63f33544060c75d1 (diff)
downloadslixmpp-4b1fadde4bd87a8763131165701c08a3035005eb.tar.gz
slixmpp-4b1fadde4bd87a8763131165701c08a3035005eb.tar.bz2
slixmpp-4b1fadde4bd87a8763131165701c08a3035005eb.tar.xz
slixmpp-4b1fadde4bd87a8763131165701c08a3035005eb.zip
Updated XEP-0128 plugin to work with the new XEP-0030 plugin.
Required fixing a few bugs in StanzaBase related to iterable substanzas.
Diffstat (limited to 'tests/test_stream_xep_0128.py')
-rw-r--r--tests/test_stream_xep_0128.py106
1 files changed, 106 insertions, 0 deletions
diff --git a/tests/test_stream_xep_0128.py b/tests/test_stream_xep_0128.py
new file mode 100644
index 00000000..6fee6556
--- /dev/null
+++ b/tests/test_stream_xep_0128.py
@@ -0,0 +1,106 @@
+import sys
+import time
+import threading
+
+from sleekxmpp.test import *
+from sleekxmpp.xmlstream import ElementBase
+
+
+class TestStreamExtendedDisco(SleekTest):
+
+ """
+ Test using the XEP-0128 plugin.
+ """
+
+ def tearDown(self):
+ sys.excepthook = sys.__excepthook__
+ self.stream_close()
+
+ def testUsingExtendedInfo(self):
+ self.stream_start(mode='client',
+ jid='tester@localhost',
+ plugins=['xep_0030',
+ 'xep_0004',
+ 'xep_0128'])
+
+ form = self.xmpp['xep_0004'].makeForm(ftype='result')
+ form.addField(var='FORM_TYPE', ftype='hidden', value='testing')
+
+ info_ns = 'http://jabber.org/protocol/disco#info'
+ self.xmpp['xep_0030'].add_identity(node='test',
+ category='client',
+ itype='bot')
+ self.xmpp['xep_0030'].add_feature(node='test', feature=info_ns)
+ self.xmpp['xep_0128'].set_extended_info(node='test', data=form)
+
+ self.recv("""
+ <iq type="get" id="test" to="tester@localhost">
+ <query xmlns="http://jabber.org/protocol/disco#info"
+ node="test" />
+ </iq>
+ """)
+
+ self.send("""
+ <iq type="result" id="test">
+ <query xmlns="http://jabber.org/protocol/disco#info"
+ node="test">
+ <identity category="client" type="bot" />
+ <feature var="http://jabber.org/protocol/disco#info" />
+ <x xmlns="jabber:x:data" type="result">
+ <field var="FORM_TYPE" type="hidden">
+ <value>testing</value>
+ </field>
+ </x>
+ </query>
+ </iq>
+ """)
+
+ def testUsingMultipleExtendedInfo(self):
+ self.stream_start(mode='client',
+ jid='tester@localhost',
+ plugins=['xep_0030',
+ 'xep_0004',
+ 'xep_0128'])
+
+ form1 = self.xmpp['xep_0004'].makeForm(ftype='result')
+ form1.addField(var='FORM_TYPE', ftype='hidden', value='testing')
+
+ form2 = self.xmpp['xep_0004'].makeForm(ftype='result')
+ form2.addField(var='FORM_TYPE', ftype='hidden', value='testing_2')
+
+ info_ns = 'http://jabber.org/protocol/disco#info'
+ self.xmpp['xep_0030'].add_identity(node='test',
+ category='client',
+ itype='bot')
+ self.xmpp['xep_0030'].add_feature(node='test', feature=info_ns)
+ self.xmpp['xep_0128'].set_extended_info(node='test', data=[form1, form2])
+
+ self.recv("""
+ <iq type="get" id="test" to="tester@localhost">
+ <query xmlns="http://jabber.org/protocol/disco#info"
+ node="test" />
+ </iq>
+ """)
+
+ self.send("""
+ <iq type="result" id="test">
+ <query xmlns="http://jabber.org/protocol/disco#info"
+ node="test">
+ <identity category="client" type="bot" />
+ <feature var="http://jabber.org/protocol/disco#info" />
+ <x xmlns="jabber:x:data" type="result">
+ <field var="FORM_TYPE" type="hidden">
+ <value>testing</value>
+ </field>
+ </x>
+ <x xmlns="jabber:x:data" type="result">
+ <field var="FORM_TYPE" type="hidden">
+ <value>testing_2</value>
+ </field>
+ </x>
+ </query>
+ </iq>
+ """)
+
+
+suite = unittest.TestLoader().loadTestsFromTestCase(TestStreamExtendedDisco)