XEP-0369: add basic stanza tests
This commit is contained in:
parent
350f85a8d1
commit
3d1615ea54
1 changed files with 117 additions and 0 deletions
117
tests/test_stanza_xep_0369.py
Normal file
117
tests/test_stanza_xep_0369.py
Normal file
|
@ -0,0 +1,117 @@
|
|||
import unittest
|
||||
from slixmpp import Iq, Message, JID
|
||||
from slixmpp.test import SlixTest
|
||||
from slixmpp.plugins.xep_0369 import stanza
|
||||
from slixmpp.plugins.xep_0060 import stanza as pstanza
|
||||
from slixmpp.plugins.xep_0369.mix_core import BASE_NODES
|
||||
|
||||
|
||||
class TestMIXStanza(SlixTest):
|
||||
|
||||
def setUp(self):
|
||||
stanza.register_plugins()
|
||||
|
||||
def testMIXJoin(self):
|
||||
"""Test that data is converted to base64"""
|
||||
iq = Iq()
|
||||
iq['type'] = 'set'
|
||||
for node in BASE_NODES:
|
||||
sub = stanza.Subscribe()
|
||||
sub['node'] = node
|
||||
iq['mix_join'].append(sub)
|
||||
iq['mix_join']['nick'] = 'Toto'
|
||||
|
||||
self.check(iq, """
|
||||
<iq type="set">
|
||||
<join xmlns='urn:xmpp:mix:core:1'>
|
||||
<subscribe node='urn:xmpp:mix:nodes:messages'/>
|
||||
<subscribe node='urn:xmpp:mix:nodes:participants'/>
|
||||
<subscribe node='urn:xmpp:mix:nodes:info'/>
|
||||
<nick>Toto</nick>
|
||||
</join>
|
||||
</iq>
|
||||
""")
|
||||
|
||||
def testMIXUpdateSub(self):
|
||||
iq = Iq()
|
||||
iq['type'] = 'set'
|
||||
iq.enable('mix_updatesub')
|
||||
sub = stanza.Subscribe()
|
||||
sub['node'] = 'urn:xmpp:mix:nodes:someothernode'
|
||||
iq['mix_updatesub'].append(sub)
|
||||
|
||||
self.check(iq, """
|
||||
<iq type="set">
|
||||
<update-subscription xmlns='urn:xmpp:mix:core:1'>
|
||||
<subscribe node='urn:xmpp:mix:nodes:someothernode'/>
|
||||
</update-subscription>
|
||||
</iq>
|
||||
""")
|
||||
|
||||
def testMIXLeave(self):
|
||||
iq = Iq()
|
||||
iq['type'] = 'set'
|
||||
iq.enable('mix_leave')
|
||||
|
||||
self.check(iq, """
|
||||
<iq type="set">
|
||||
<leave xmlns='urn:xmpp:mix:core:1'/>
|
||||
</iq>
|
||||
""")
|
||||
|
||||
def testMIXSetNick(self):
|
||||
iq = Iq()
|
||||
iq['type'] = 'set'
|
||||
iq['mix_setnick']['nick'] = 'A nick'
|
||||
|
||||
self.check(iq, """
|
||||
<iq type="set">
|
||||
<setnick xmlns='urn:xmpp:mix:core:1'>
|
||||
<nick>A nick</nick>
|
||||
</setnick>
|
||||
</iq>
|
||||
""")
|
||||
|
||||
def testMIXMessage(self):
|
||||
msg = Message()
|
||||
msg['type'] = 'groupchat'
|
||||
msg['body'] = 'This is a message body'
|
||||
msg['mix']['nick'] = 'A nick'
|
||||
msg['mix']['jid'] = JID('toto@example.com')
|
||||
|
||||
self.check(msg, """
|
||||
<message type="groupchat">
|
||||
<body>This is a message body</body>
|
||||
<mix xmlns="urn:xmpp:mix:core:1">
|
||||
<nick>A nick</nick>
|
||||
<jid>toto@example.com</jid>
|
||||
</mix>
|
||||
</message>
|
||||
""")
|
||||
|
||||
def testMIXNewParticipant(self):
|
||||
msg = Message()
|
||||
msg['pubsub_event']['items']['node'] = 'urn:xmpp:mix:nodes:participants'
|
||||
item = pstanza.EventItem()
|
||||
item['id'] = '123456'
|
||||
item['mix_participant']['jid'] = JID('titi@example.com')
|
||||
item['mix_participant']['nick'] = 'Titi'
|
||||
msg['pubsub_event']['items'].append(item)
|
||||
|
||||
self.check(msg, """
|
||||
<message>
|
||||
<event xmlns='http://jabber.org/protocol/pubsub#event'>
|
||||
<items node='urn:xmpp:mix:nodes:participants'>
|
||||
<item id='123456'>
|
||||
<participant xmlns='urn:xmpp:mix:core:1'>
|
||||
<jid>titi@example.com</jid>
|
||||
<nick>Titi</nick>
|
||||
</participant>
|
||||
</item>
|
||||
</items>
|
||||
</event>
|
||||
</message>
|
||||
""", use_values=False)
|
||||
|
||||
|
||||
suite = unittest.TestLoader().loadTestsFromTestCase(TestMIXStanza)
|
Loading…
Reference in a new issue