summaryrefslogtreecommitdiff
path: root/tests/test_stream_xep_0249.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_stream_xep_0249.py')
-rw-r--r--tests/test_stream_xep_0249.py64
1 files changed, 64 insertions, 0 deletions
diff --git a/tests/test_stream_xep_0249.py b/tests/test_stream_xep_0249.py
new file mode 100644
index 00000000..f49d1f7e
--- /dev/null
+++ b/tests/test_stream_xep_0249.py
@@ -0,0 +1,64 @@
+import sys
+import time
+import threading
+
+from sleekxmpp.test import *
+from sleekxmpp.xmlstream import ElementBase
+
+
+class TestStreamDirectInvite(SleekTest):
+
+ """
+ Test using the XEP-0249 plugin.
+ """
+
+ def tearDown(self):
+ sys.excepthook = sys.__excepthook__
+ self.stream_close()
+
+ def testReceiveInvite(self):
+ self.stream_start(mode='client',
+ plugins=['xep_0030',
+ 'xep_0249'])
+
+ events = []
+
+ def handle_invite(msg):
+ events.append(True)
+
+ self.xmpp.add_event_handler('groupchat_direct_invite',
+ handle_invite)
+
+ self.recv("""
+ <message>
+ <x xmlns="jabber:x:conference"
+ jid="sleek@conference.jabber.org"
+ password="foo"
+ reason="For testing" />
+ </message>
+ """)
+
+ time.sleep(.5)
+
+ self.failUnless(events == [True],
+ "Event not raised: %s" % events)
+
+ def testSentDirectInvite(self):
+ self.stream_start(mode='client',
+ plugins=['xep_0030',
+ 'xep_0249'])
+
+ self.xmpp['xep_0249'].send_invitation('user@example.com',
+ 'sleek@conference.jabber.org',
+ reason='Need to test Sleek')
+
+ self.send("""
+ <message to="user@example.com">
+ <x xmlns="jabber:x:conference"
+ jid="sleek@conference.jabber.org"
+ reason="Need to test Sleek" />
+ </message>
+ """)
+
+
+suite = unittest.TestLoader().loadTestsFromTestCase(TestStreamDirectInvite)