summaryrefslogtreecommitdiff
path: root/tests/test_stream_xep_0092.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_stream_xep_0092.py')
-rw-r--r--tests/test_stream_xep_0092.py69
1 files changed, 69 insertions, 0 deletions
diff --git a/tests/test_stream_xep_0092.py b/tests/test_stream_xep_0092.py
new file mode 100644
index 00000000..4a038558
--- /dev/null
+++ b/tests/test_stream_xep_0092.py
@@ -0,0 +1,69 @@
+import threading
+
+from sleekxmpp.test import *
+
+
+class TestStreamSet(SleekTest):
+
+ def tearDown(self):
+ self.stream_close()
+
+ def testHandleSoftwareVersionRequest(self):
+ self.stream_start(mode='client', plugins=['xep_0030', 'xep_0092'])
+
+ self.xmpp['xep_0092'].name = 'SleekXMPP'
+ self.xmpp['xep_0092'].version = 'dev'
+ self.xmpp['xep_0092'].os = 'Linux'
+
+ self.recv("""
+ <iq type="get" id="1">
+ <query xmlns="jabber:iq:version" />
+ </iq>
+ """)
+
+ self.send("""
+ <iq type="result" id="1">
+ <query xmlns="jabber:iq:version">
+ <name>SleekXMPP</name>
+ <version>dev</version>
+ <os>Linux</os>
+ </query>
+ </iq>
+ """)
+
+ def testMakeSoftwareVersionRequest(self):
+ results = []
+
+ def query():
+ r = self.xmpp['xep_0092'].get_version('foo@bar')
+ results.append(r)
+
+ self.stream_start(mode='client', plugins=['xep_0030', 'xep_0092'])
+
+ t = threading.Thread(target=query)
+ t.start()
+
+ self.send("""
+ <iq type="get" id="1" to="foo@bar">
+ <query xmlns="jabber:iq:version" />
+ </iq>
+ """)
+
+ self.recv("""
+ <iq type="result" id="1" from="foo@bar" to="tester@localhost">
+ <query xmlns="jabber:iq:version">
+ <name>Foo</name>
+ <version>1.0</version>
+ <os>Linux</os>
+ </query>
+ </iq>
+ """)
+
+ t.join()
+
+ expected = [{'name': 'Foo', 'version': '1.0', 'os':'Linux'}]
+ self.assertEqual(results, expected,
+ "Did not receive expected results: %s" % results)
+
+
+suite = unittest.TestLoader().loadTestsFromTestCase(TestStreamSet)