diff options
Diffstat (limited to 'tests/test_jid.py')
-rw-r--r-- | tests/test_jid.py | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/tests/test_jid.py b/tests/test_jid.py new file mode 100644 index 00000000..ef1145d3 --- /dev/null +++ b/tests/test_jid.py @@ -0,0 +1,141 @@ +from sleekxmpp.test import * +from sleekxmpp.xmlstream.jid import JID + + +class TestJIDClass(SleekTest): + + """Verify that the JID class can parse and manipulate JIDs.""" + + def testJIDFromFull(self): + """Test using JID of the form 'user@server/resource/with/slashes'.""" + self.check_jid(JID('user@someserver/some/resource'), + 'user', + 'someserver', + 'some/resource', + 'user@someserver', + 'user@someserver/some/resource', + 'user@someserver/some/resource') + + def testJIDchange(self): + """Test changing JID of the form 'user@server/resource/with/slashes'""" + j = JID('user1@someserver1/some1/resource1') + j.user = 'user' + j.domain = 'someserver' + j.resource = 'some/resource' + self.check_jid(j, + 'user', + 'someserver', + 'some/resource', + 'user@someserver', + 'user@someserver/some/resource', + 'user@someserver/some/resource') + + def testJIDaliases(self): + """Test changing JID using aliases for domain.""" + j = JID('user@someserver/resource') + j.server = 'anotherserver' + self.check_jid(j, domain='anotherserver') + j.host = 'yetanother' + self.check_jid(j, domain='yetanother') + + def testJIDSetFullWithUser(self): + """Test setting the full JID with a user portion.""" + j = JID('user@domain/resource') + j.full = 'otheruser@otherdomain/otherresource' + self.check_jid(j, + 'otheruser', + 'otherdomain', + 'otherresource', + 'otheruser@otherdomain', + 'otheruser@otherdomain/otherresource', + 'otheruser@otherdomain/otherresource') + + def testJIDFullNoUserWithResource(self): + """ + Test setting the full JID without a user + portion and with a resource. + """ + j = JID('user@domain/resource') + j.full = 'otherdomain/otherresource' + self.check_jid(j, + '', + 'otherdomain', + 'otherresource', + 'otherdomain', + 'otherdomain/otherresource', + 'otherdomain/otherresource') + + def testJIDFullNoUserNoResource(self): + """ + Test setting the full JID without a user + portion and without a resource. + """ + j = JID('user@domain/resource') + j.full = 'otherdomain' + self.check_jid(j, + '', + 'otherdomain', + '', + 'otherdomain', + 'otherdomain', + 'otherdomain') + + def testJIDBareUser(self): + """Test setting the bare JID with a user.""" + j = JID('user@domain/resource') + j.bare = 'otheruser@otherdomain' + self.check_jid(j, + 'otheruser', + 'otherdomain', + 'resource', + 'otheruser@otherdomain', + 'otheruser@otherdomain/resource', + 'otheruser@otherdomain/resource') + + def testJIDBareNoUser(self): + """Test setting the bare JID without a user.""" + j = JID('user@domain/resource') + j.bare = 'otherdomain' + self.check_jid(j, + '', + 'otherdomain', + 'resource', + 'otherdomain', + 'otherdomain/resource', + 'otherdomain/resource') + + def testJIDNoResource(self): + """Test using JID of the form 'user@domain'.""" + self.check_jid(JID('user@someserver'), + 'user', + 'someserver', + '', + 'user@someserver', + 'user@someserver', + 'user@someserver') + + def testJIDNoUser(self): + """Test JID of the form 'component.domain.tld'.""" + self.check_jid(JID('component.someserver'), + '', + 'component.someserver', + '', + 'component.someserver', + 'component.someserver', + 'component.someserver') + + def testJIDEquality(self): + """Test that JIDs with the same content are equal.""" + jid1 = JID('user@domain/resource') + jid2 = JID('user@domain/resource') + self.assertTrue(jid1 == jid2, "Same JIDs are not considered equal") + self.assertFalse(jid1 != jid2, "Same JIDs are considered not equal") + + def testJIDInequality(self): + jid1 = JID('user@domain/resource') + jid2 = JID('otheruser@domain/resource') + self.assertFalse(jid1 == jid2, "Same JIDs are not considered equal") + self.assertTrue(jid1 != jid2, "Same JIDs are considered not equal") + + +suite = unittest.TestLoader().loadTestsFromTestCase(TestJIDClass) |