summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authormathieui <mathieui@mathieui.net>2020-12-04 18:45:06 +0100
committermathieui <mathieui@mathieui.net>2020-12-04 19:45:05 +0100
commitfdb0749cd14ea9480687d5e243ec8fc81731e4dd (patch)
tree877fb9817438061c77b92e6a27e3a920a983eea2 /tests
parent2c523d1a3b6a97b78b5ee4d688f33fccd71eb83c (diff)
downloadslixmpp-fdb0749cd14ea9480687d5e243ec8fc81731e4dd.tar.gz
slixmpp-fdb0749cd14ea9480687d5e243ec8fc81731e4dd.tar.bz2
slixmpp-fdb0749cd14ea9480687d5e243ec8fc81731e4dd.tar.xz
slixmpp-fdb0749cd14ea9480687d5e243ec8fc81731e4dd.zip
XEP-0422,0424,0425,0439: Add basic stanza tests
Diffstat (limited to 'tests')
-rw-r--r--tests/test_stanza_xep_0422.py33
-rw-r--r--tests/test_stanza_xep_0424.py39
-rw-r--r--tests/test_stanza_xep_0425.py47
-rw-r--r--tests/test_stanza_xep_0439.py57
4 files changed, 176 insertions, 0 deletions
diff --git a/tests/test_stanza_xep_0422.py b/tests/test_stanza_xep_0422.py
new file mode 100644
index 00000000..9d2cc396
--- /dev/null
+++ b/tests/test_stanza_xep_0422.py
@@ -0,0 +1,33 @@
+import unittest
+from slixmpp import Message
+from slixmpp.test import SlixTest
+from slixmpp.xmlstream import ET
+from slixmpp.plugins.xep_0422 import stanza
+
+
+class TestFastening(SlixTest):
+
+ def setUp(self):
+ stanza.register_plugins()
+
+ def testFastenExternal(self):
+ message = Message()
+ message['apply_to']['id'] = 'some-id'
+ message['apply_to'].xml.append(
+ ET.fromstring('<test xmlns="urn:tmp:test">Test</test>')
+ )
+ message['apply_to']['external']['name'] = 'body'
+ message['body'] = 'Toto'
+
+ self.check(message, """
+<message>
+ <apply-to xmlns="urn:xmpp:fasten:0" id="some-id">
+ <test xmlns="urn:tmp:test">Test</test>
+ <external name='body'/>
+ </apply-to>
+ <body>Toto</body>
+</message>
+ """, use_values=False)
+
+
+suite = unittest.TestLoader().loadTestsFromTestCase(TestFastening)
diff --git a/tests/test_stanza_xep_0424.py b/tests/test_stanza_xep_0424.py
new file mode 100644
index 00000000..c94ed79b
--- /dev/null
+++ b/tests/test_stanza_xep_0424.py
@@ -0,0 +1,39 @@
+import unittest
+from slixmpp import Message
+from slixmpp.test import SlixTest
+from slixmpp.plugins.xep_0424 import stanza
+
+
+class TestRetraction(SlixTest):
+
+ def setUp(self):
+ stanza.register_plugins()
+
+ def testRetract(self):
+ message = Message()
+ message['apply_to']['id'] = 'some-id'
+ message['apply_to']['retract']
+
+ self.check(message, """
+<message>
+ <apply-to xmlns="urn:xmpp:fasten:0" id="some-id">
+ <retract xmlns="urn:xmpp:message-retract:0"/>
+ </apply-to>
+</message>
+ """, use_values=False)
+
+ def testRetracted(self):
+ message = Message()
+ message['retracted']['stamp'] = '2019-09-20T23:09:32Z'
+ message['retracted']['origin_id']['id'] = 'originid'
+
+ self.check(message, """
+<message>
+ <retracted stamp="2019-09-20T23:09:32Z" xmlns="urn:xmpp:message-retract:0">
+ <origin-id xmlns="urn:xmpp:sid:0" id="originid"/>
+ </retracted>
+</message>
+ """)
+
+
+suite = unittest.TestLoader().loadTestsFromTestCase(TestRetraction)
diff --git a/tests/test_stanza_xep_0425.py b/tests/test_stanza_xep_0425.py
new file mode 100644
index 00000000..96d979e8
--- /dev/null
+++ b/tests/test_stanza_xep_0425.py
@@ -0,0 +1,47 @@
+import unittest
+from slixmpp import Message, Iq, JID
+from slixmpp.test import SlixTest
+from slixmpp.plugins.xep_0425 import stanza
+
+
+class TestModeration(SlixTest):
+
+ def setUp(self):
+ stanza.register_plugins()
+
+ def testModerate(self):
+ iq = Iq()
+ iq['type'] = 'set'
+ iq['id'] = 'a'
+ iq['apply_to']['id'] = 'some-id'
+ iq['apply_to']['moderate'].enable('retract')
+ iq['apply_to']['moderate']['reason'] = 'R'
+
+ self.check(iq, """
+<iq type='set' id='a'>
+ <apply-to id="some-id" xmlns="urn:xmpp:fasten:0">
+ <moderate xmlns='urn:xmpp:message-moderate:0'>
+ <retract xmlns='urn:xmpp:message-retract:0'/>
+ <reason>R</reason>
+ </moderate>
+ </apply-to>
+</iq>
+ """, use_values=False)
+
+ def testModerated(self):
+ message = Message()
+ message['moderated']['by'] = JID('toto@titi')
+ message['moderated']['retracted']['stamp'] = '2019-09-20T23:09:32Z'
+ message['moderated']['reason'] = 'R'
+
+ self.check(message, """
+<message>
+ <moderated xmlns="urn:xmpp:message-moderate:0" by="toto@titi">
+ <retracted stamp="2019-09-20T23:09:32Z" xmlns="urn:xmpp:message-retract:0" />
+ <reason>R</reason>
+ </moderated>
+</message>
+ """)
+
+
+suite = unittest.TestLoader().loadTestsFromTestCase(TestModeration)
diff --git a/tests/test_stanza_xep_0439.py b/tests/test_stanza_xep_0439.py
new file mode 100644
index 00000000..fbd3aa47
--- /dev/null
+++ b/tests/test_stanza_xep_0439.py
@@ -0,0 +1,57 @@
+import unittest
+from slixmpp import Message
+from slixmpp.test import SlixTest
+from slixmpp.plugins.xep_0439 import stanza
+
+
+class TestQuickResponse(SlixTest):
+
+ def setUp(self):
+ stanza.register_plugins()
+
+ def testResponse(self):
+ message = Message()
+ message['body'] = 'Reply 1 or 2?'
+ for (value, label) in [('1', 'Rep 1'), ('2', 'Rep 2')]:
+ rep = stanza.Response()
+ rep['value'] = value
+ rep['label'] = label
+ message.append(rep)
+
+ self.check(message, """
+<message>
+ <body>Reply 1 or 2?</body>
+ <response xmlns="urn:xmpp:tmp:quick-response" value="1" label="Rep 1" />
+ <response xmlns="urn:xmpp:tmp:quick-response" value="2" label="Rep 2" />
+</message>
+ """, use_values=False)
+
+ def testAction(self):
+ message = Message()
+ message['body'] = 'action 1 or 2?'
+ for (id_, label) in [('1', 'action 1'), ('2', 'action 2')]:
+ act = stanza.Action()
+ act['id'] = id_
+ act['label'] = label
+ message.append(act)
+
+ self.check(message, """
+<message>
+ <body>action 1 or 2?</body>
+ <action xmlns="urn:xmpp:tmp:quick-response" id="1" label="action 1" />
+ <action xmlns="urn:xmpp:tmp:quick-response" id="2" label="action 2" />
+</message>
+ """, use_values=False)
+
+ def testActionSelected(self):
+ message = Message()
+ message['action_selected']['id'] = 'act1'
+
+ self.check(message, """
+<message>
+ <action-selected xmlns="urn:xmpp:tmp:quick-response" id="act1" />
+</message>
+ """, use_values=False)
+
+
+suite = unittest.TestLoader().loadTestsFromTestCase(TestQuickResponse)