diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_stanza_xep_0045.py | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/tests/test_stanza_xep_0045.py b/tests/test_stanza_xep_0045.py index 29dd75db..707d91cd 100644 --- a/tests/test_stanza_xep_0045.py +++ b/tests/test_stanza_xep_0045.py @@ -13,6 +13,8 @@ from slixmpp.plugins.xep_0045.stanza import ( MUCStatus, MUCInvite, MUCDecline, + MUCUserItem, + MUCActor, ) from slixmpp.xmlstream import register_stanza_plugin, ET @@ -20,6 +22,9 @@ from slixmpp.xmlstream import register_stanza_plugin, ET class TestMUC(SlixTest): def setUp(self): + register_stanza_plugin(MUCPresence, MUCUserItem) + register_stanza_plugin(MUCMessage, MUCUserItem) + register_stanza_plugin(MUCUserItem, MUCActor) register_stanza_plugin(MUCMessage, MUCInvite) register_stanza_plugin(MUCMessage, MUCDecline) register_stanza_plugin(MUCMessage, MUCStatus) @@ -33,9 +38,48 @@ class TestMUC(SlixTest): register_stanza_plugin(MUCOwnerQuery, MUCOwnerDestroy) register_stanza_plugin(MUCAdminQuery, MUCAdminItem, iterable=True) + def testPresence(self): presence = Presence() presence['from'] = JID('muc@service/nick') + presence['muc']['item']['affiliation'] = 'member' + presence['muc']['item']['role'] = 'participant' + presence['muc']['status_codes'] = (100, 110, 210) + + self.check(presence, """ +<presence from='muc@service/nick'> + <x xmlns='http://jabber.org/protocol/muc#user'> + <item affiliation='member' role='participant'/> + <status code='100'/> + <status code='110'/> + <status code='210'/> + </x> +</presence> + """, use_values=False) + + def testPresenceReason(self): + presence = Presence() + presence['from'] = JID('muc@service/nick') + presence['muc']['item']['affiliation'] = 'member' + presence['muc']['item']['role'] = 'participant' + presence['muc']['item']['reason'] = 'coucou' + presence['muc']['item']['actor']['nick'] = 'JPR' + + self.check(presence, """ +<presence from='muc@service/nick'> + <x xmlns='http://jabber.org/protocol/muc#user'> + <item affiliation='member' role='participant'> + <actor nick="JPR"/> + <reason>coucou</reason> + </item> + </x> +</presence> + """, use_values=False) + + + def testPresenceLegacy(self): + presence = Presence() + presence['from'] = JID('muc@service/nick') presence['muc']['affiliation'] = 'member' presence['muc']['role'] = 'participant' presence['muc']['status_codes'] = (100, 110, 210) @@ -96,5 +140,20 @@ class TestMUC(SlixTest): </iq> """, use_values=False) + def testSetAffiliation(self): + iq = Iq() + iq['type'] = 'set' + iq['id'] = '1' + iq['mucadmin_query']['item']['jid'] = JID('test@example.com') + iq['mucadmin_query']['item']['affiliation'] = 'owner' + self.check(iq, """ +<iq type='set' id='1'> + <query xmlns='http://jabber.org/protocol/muc#admin'> + <item jid='test@example.com' + affiliation='owner'/> + </query> +</iq> + """, use_values=False) + suite = unittest.TestLoader().loadTestsFromTestCase(TestMUC) |