summaryrefslogtreecommitdiff
path: root/tests/test_jid.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_jid.py')
-rw-r--r--tests/test_jid.py141
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)