diff options
author | Lance Stout <lancestout@gmail.com> | 2011-03-22 20:42:43 -0400 |
---|---|---|
committer | Lance Stout <lancestout@gmail.com> | 2011-03-22 20:42:43 -0400 |
commit | 4b1fadde4bd87a8763131165701c08a3035005eb (patch) | |
tree | f5408e05793dbdad7e4b02427ec67cfece66e432 /tests/test_stream_xep_0128.py | |
parent | 86a6b40fd81daa7d0e976dbc63f33544060c75d1 (diff) | |
download | slixmpp-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.py | 106 |
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) |