diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_stream_xep_0249.py | 64 |
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) |