1
# Copyright (c) 2001-2005 Twisted Matrix Laboratories.
2
# See LICENSE for details.
4
from twisted.trial import unittest
6
from twisted.words.protocols.jabber import jid
8
class JIDParsingTest(unittest.TestCase):
11
self.assertEquals(jid.parse("user@host/resource"),
12
("user", "host", "resource"))
13
self.assertEquals(jid.parse("user@host"),
14
("user", "host", None))
15
self.assertEquals(jid.parse("host"),
17
self.assertEquals(jid.parse("host/resource"),
18
(None, "host", "resource"))
20
# More interesting forms
21
self.assertEquals(jid.parse("foo/bar@baz"),
22
(None, "foo", "bar@baz"))
23
self.assertEquals(jid.parse("boo@foo/bar@baz"),
24
("boo", "foo", "bar@baz"))
25
self.assertEquals(jid.parse("boo@foo/bar/baz"),
26
("boo", "foo", "bar/baz"))
27
self.assertEquals(jid.parse("boo/foo@bar@baz"),
28
(None, "boo", "foo@bar@baz"))
29
self.assertEquals(jid.parse("boo/foo/bar"),
30
(None, "boo", "foo/bar"))
31
self.assertEquals(jid.parse("boo//foo"),
32
(None, "boo", "/foo"))
34
def testInvalid(self):
39
except jid.InvalidFormat:
44
jid.parse("user@@host")
46
except jid.InvalidFormat:
51
jid.parse("user@host@host")
53
except jid.InvalidFormat:
58
self.assertEquals(jid.prep("UsEr", "host", "resource"),
59
("user", "host", "resource"))
62
self.assertEquals(jid.prep("user", "hoST", "resource"),
63
("user", "host", "resource"))
65
# no case map of resource
66
self.assertNotEquals(jid.prep("user", "host", "Resource"),
67
("user", "host", "resource"))
69
class JIDClassTest(unittest.TestCase):
71
j = jid.internJID("user@host")
72
self.assertEquals(j.userhost(), "user@host")
73
self.assertEquals(j.user, "user")
74
self.assertEquals(j.host, "host")
75
self.assertEquals(j.resource, None)
77
j2 = jid.internJID("user@host")
78
self.assertEquals(id(j), id(j2))
80
j_uhj = j.userhostJID()
81
self.assertEquals(id(j), id(j_uhj))