libpurple/tests/test_jabber_jutil.c

Sun, 16 Aug 2009 03:21:47 +0000

author
Paul Aurich <darkrain42@pidgin.im>
date
Sun, 16 Aug 2009 03:21:47 +0000
changeset 28196
b6b09dfb64d0
parent 27849
7f7428cb8309
child 28414
5093c1a49d5c
permissions
-rw-r--r--

Don't try to write a cert with a blank filename.

This *should* throw an error, probably, but I'm lazy. This is better
than the previous behavior.

15950
0f01bb61c5d3 Fix compiler warnings and errors in tests resulting from using DEBUG_CFLAGS
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15435
diff changeset
1 #include <string.h>
0f01bb61c5d3 Fix compiler warnings and errors in tests resulting from using DEBUG_CFLAGS
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15435
diff changeset
2
15155
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
3 #include "tests.h"
15953
dfb69139ddf9 Update #includes to match changes in jabber
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15950
diff changeset
4 #include "../account.h"
dfb69139ddf9 Update #includes to match changes in jabber
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15950
diff changeset
5 #include "../conversation.h"
dfb69139ddf9 Update #includes to match changes in jabber
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15950
diff changeset
6 #include "../xmlnode.h"
15155
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
7 #include "../protocols/jabber/jutil.h"
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
8
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
9 START_TEST(test_get_resource)
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
10 {
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
11 assert_string_equal_free("baz", jabber_get_resource("foo@bar/baz"));
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
12 assert_string_equal_free("baz", jabber_get_resource("bar/baz"));
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
13 assert_string_equal_free("baz/bat", jabber_get_resource("foo@bar/baz/bat"));
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
14 assert_string_equal_free("baz/bat", jabber_get_resource("bar/baz/bat"));
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
15 }
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
16 END_TEST
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
17
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
18 START_TEST(test_get_resource_no_resource)
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
19 {
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
20
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
21 fail_unless(NULL == jabber_get_resource("foo@bar"));
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
22 fail_unless(NULL == jabber_get_resource("bar"));
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
23 }
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
24 END_TEST
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
25
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
26 START_TEST(test_get_bare_jid)
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
27 {
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
28 assert_string_equal_free("foo@bar", jabber_get_bare_jid("foo@bar"));
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
29 assert_string_equal_free("foo@bar", jabber_get_bare_jid("foo@bar/baz"));
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
30 assert_string_equal_free("bar", jabber_get_bare_jid("bar"));
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
31 assert_string_equal_free("bar", jabber_get_bare_jid("bar/baz"));
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
32 }
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
33 END_TEST
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
34
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
35 START_TEST(test_nodeprep_validate)
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
36 {
15950
0f01bb61c5d3 Fix compiler warnings and errors in tests resulting from using DEBUG_CFLAGS
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15435
diff changeset
37 char *longnode;
0f01bb61c5d3 Fix compiler warnings and errors in tests resulting from using DEBUG_CFLAGS
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15435
diff changeset
38
15155
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
39 fail_unless(jabber_nodeprep_validate(NULL));
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
40 fail_unless(jabber_nodeprep_validate("foo"));
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
41 fail_unless(jabber_nodeprep_validate("%d"));
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
42 fail_unless(jabber_nodeprep_validate("y\\z"));
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
43
15950
0f01bb61c5d3 Fix compiler warnings and errors in tests resulting from using DEBUG_CFLAGS
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15435
diff changeset
44 longnode = g_strnfill(1023, 'a');
15155
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
45 fail_unless(jabber_nodeprep_validate(longnode));
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
46 g_free(longnode);
27849
7f7428cb8309 When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <darkrain42@pidgin.im>
parents: 27818
diff changeset
47
7f7428cb8309 When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <darkrain42@pidgin.im>
parents: 27818
diff changeset
48 longnode = g_strnfill(1024, 'a');
7f7428cb8309 When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <darkrain42@pidgin.im>
parents: 27818
diff changeset
49 fail_if(jabber_nodeprep_validate(longnode));
7f7428cb8309 When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <darkrain42@pidgin.im>
parents: 27818
diff changeset
50 g_free(longnode);
15155
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
51 }
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
52 END_TEST
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
53
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
54 START_TEST(test_nodeprep_validate_illegal_chars)
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
55 {
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
56 fail_if(jabber_nodeprep_validate("don't"));
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
57 fail_if(jabber_nodeprep_validate("m@ke"));
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
58 fail_if(jabber_nodeprep_validate("\"me\""));
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
59 fail_if(jabber_nodeprep_validate("&ngry"));
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
60 fail_if(jabber_nodeprep_validate("c:"));
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
61 fail_if(jabber_nodeprep_validate("a/b"));
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
62 fail_if(jabber_nodeprep_validate("4>2"));
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
63 fail_if(jabber_nodeprep_validate("4<7"));
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
64 }
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
65 END_TEST
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
66
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
67 START_TEST(test_nodeprep_validate_too_long)
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
68 {
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
69 char *longnode = g_strnfill(1024, 'a');
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
70 fail_if(jabber_nodeprep_validate(longnode));
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
71 g_free(longnode);
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
72 }
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
73 END_TEST
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
74
27710
e4b25e3c28a2 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <markdoliner@pidgin.im>
parents: 15953
diff changeset
75 #define assert_valid_jid(str) { \
e4b25e3c28a2 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <markdoliner@pidgin.im>
parents: 15953
diff changeset
76 JabberID *jid = jabber_id_new(str); \
e4b25e3c28a2 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <markdoliner@pidgin.im>
parents: 15953
diff changeset
77 fail_if(jid == NULL, "JID '%s' is valid but jabber_id_new() rejected it", str); \
e4b25e3c28a2 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <markdoliner@pidgin.im>
parents: 15953
diff changeset
78 jabber_id_free(jid); \
e4b25e3c28a2 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <markdoliner@pidgin.im>
parents: 15953
diff changeset
79 }
e4b25e3c28a2 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <markdoliner@pidgin.im>
parents: 15953
diff changeset
80
e4b25e3c28a2 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <markdoliner@pidgin.im>
parents: 15953
diff changeset
81 #define assert_invalid_jid(str) { \
e4b25e3c28a2 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <markdoliner@pidgin.im>
parents: 15953
diff changeset
82 JabberID *jid = jabber_id_new(str); \
e4b25e3c28a2 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <markdoliner@pidgin.im>
parents: 15953
diff changeset
83 fail_if(jid != NULL, "JID '%s' is invalid but jabber_id_new() allowed it", str); \
e4b25e3c28a2 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <markdoliner@pidgin.im>
parents: 15953
diff changeset
84 jabber_id_free(jid); \
e4b25e3c28a2 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <markdoliner@pidgin.im>
parents: 15953
diff changeset
85 }
e4b25e3c28a2 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <markdoliner@pidgin.im>
parents: 15953
diff changeset
86
27818
d2d5d265001b Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <darkrain42@pidgin.im>
parents: 27728
diff changeset
87 #define assert_jid_parts(expect_node, expect_domain, str) { \
d2d5d265001b Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <darkrain42@pidgin.im>
parents: 27728
diff changeset
88 JabberID *jid = jabber_id_new(str); \
d2d5d265001b Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <darkrain42@pidgin.im>
parents: 27728
diff changeset
89 fail_if(jid == NULL, "JID '%s' is valid but jabber_id_new() rejected it", str); \
d2d5d265001b Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <darkrain42@pidgin.im>
parents: 27728
diff changeset
90 fail_if(jid->node == NULL, "JID '%s' is valid but jabber_id_new() didn't return a node", str); \
d2d5d265001b Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <darkrain42@pidgin.im>
parents: 27728
diff changeset
91 fail_if(jid->domain == NULL, "JID '%s' is valid but jabber_id_new() didn't return a domain", str); \
d2d5d265001b Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <darkrain42@pidgin.im>
parents: 27728
diff changeset
92 fail_if(jid->resource != NULL, "JID '%s' doesn't contain a resource", str); \
d2d5d265001b Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <darkrain42@pidgin.im>
parents: 27728
diff changeset
93 assert_string_equal(expect_node, jid->node); \
d2d5d265001b Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <darkrain42@pidgin.im>
parents: 27728
diff changeset
94 assert_string_equal(expect_domain, jid->domain); \
d2d5d265001b Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <darkrain42@pidgin.im>
parents: 27728
diff changeset
95 jabber_id_free(jid); \
d2d5d265001b Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <darkrain42@pidgin.im>
parents: 27728
diff changeset
96 }
d2d5d265001b Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <darkrain42@pidgin.im>
parents: 27728
diff changeset
97
27710
e4b25e3c28a2 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <markdoliner@pidgin.im>
parents: 15953
diff changeset
98 START_TEST(test_jabber_id_new)
e4b25e3c28a2 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <markdoliner@pidgin.im>
parents: 15953
diff changeset
99 {
e4b25e3c28a2 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <markdoliner@pidgin.im>
parents: 15953
diff changeset
100 assert_valid_jid("gmail.com");
e4b25e3c28a2 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <markdoliner@pidgin.im>
parents: 15953
diff changeset
101 assert_valid_jid("gmail.com/Test");
e4b25e3c28a2 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <markdoliner@pidgin.im>
parents: 15953
diff changeset
102 assert_valid_jid("gmail.com/Test@");
27712
955494329c9b Two more JID tests.
Paul Aurich <darkrain42@pidgin.im>
parents: 27711
diff changeset
103 assert_valid_jid("gmail.com/@");
27710
e4b25e3c28a2 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <markdoliner@pidgin.im>
parents: 15953
diff changeset
104 assert_valid_jid("gmail.com/Test@alkjaweflkj");
e4b25e3c28a2 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <markdoliner@pidgin.im>
parents: 15953
diff changeset
105 assert_valid_jid("mark.doliner@gmail.com");
e4b25e3c28a2 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <markdoliner@pidgin.im>
parents: 15953
diff changeset
106 assert_valid_jid("mark.doliner@gmail.com/Test12345");
e4b25e3c28a2 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <markdoliner@pidgin.im>
parents: 15953
diff changeset
107 assert_valid_jid("mark.doliner@gmail.com/Test@12345");
e4b25e3c28a2 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <markdoliner@pidgin.im>
parents: 15953
diff changeset
108 assert_valid_jid("mark.doliner@gmail.com/Te/st@12@//345");
27715
6b61fbf40032 More tests, some with an international flavor. I have no idea what that
Mark Doliner <markdoliner@pidgin.im>
parents: 27712
diff changeset
109 assert_valid_jid("わいど@conference.jabber.org");
6b61fbf40032 More tests, some with an international flavor. I have no idea what that
Mark Doliner <markdoliner@pidgin.im>
parents: 27712
diff changeset
110 assert_valid_jid("まりるーむ@conference.jabber.org");
6b61fbf40032 More tests, some with an international flavor. I have no idea what that
Mark Doliner <markdoliner@pidgin.im>
parents: 27712
diff changeset
111 assert_valid_jid("mark.doliner@gmail.com/まりるーむ");
27718
ae2f4ae35df9 Whoops, some of these were asserting valid but should have been
Mark Doliner <markdoliner@pidgin.im>
parents: 27715
diff changeset
112 assert_valid_jid("mark.doliner@gmail/stuff.org");
27722
3f93427031cd XMPP allows for internationalized domain names.
Paul Aurich <darkrain42@pidgin.im>
parents: 27718
diff changeset
113 assert_valid_jid("stuart@nödåtXäYZ.se");
3f93427031cd XMPP allows for internationalized domain names.
Paul Aurich <darkrain42@pidgin.im>
parents: 27718
diff changeset
114 assert_valid_jid("stuart@nödåtXäYZ.se/まりるーむ");
3f93427031cd XMPP allows for internationalized domain names.
Paul Aurich <darkrain42@pidgin.im>
parents: 27718
diff changeset
115 assert_valid_jid("mark.doliner@わいど.org");
3f93427031cd XMPP allows for internationalized domain names.
Paul Aurich <darkrain42@pidgin.im>
parents: 27718
diff changeset
116 assert_valid_jid("nick@まつ.おおかみ.net");
27723
f209415e8338 XMPP domains can also be IPv4 or IPv6 addresses
Paul Aurich <darkrain42@pidgin.im>
parents: 27722
diff changeset
117 assert_valid_jid("paul@10.0.42.230/s");
f209415e8338 XMPP domains can also be IPv4 or IPv6 addresses
Paul Aurich <darkrain42@pidgin.im>
parents: 27722
diff changeset
118 assert_valid_jid("paul@[::1]"); /* IPv6 */
f209415e8338 XMPP domains can also be IPv4 or IPv6 addresses
Paul Aurich <darkrain42@pidgin.im>
parents: 27722
diff changeset
119 assert_valid_jid("paul@[2001:470:1f05:d58::2]");
27728
03b2a20ba465 Validate IPv6 identifiers in the domain portion of a JID.
Paul Aurich <darkrain42@pidgin.im>
parents: 27723
diff changeset
120 assert_valid_jid("paul@[2001:470:1f05:d58::2]/foo");
27710
e4b25e3c28a2 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <markdoliner@pidgin.im>
parents: 15953
diff changeset
121
27712
955494329c9b Two more JID tests.
Paul Aurich <darkrain42@pidgin.im>
parents: 27711
diff changeset
122 assert_invalid_jid("@gmail.com");
27710
e4b25e3c28a2 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <markdoliner@pidgin.im>
parents: 15953
diff changeset
123 assert_invalid_jid("@@gmail.com");
e4b25e3c28a2 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <markdoliner@pidgin.im>
parents: 15953
diff changeset
124 assert_invalid_jid("mark.doliner@@gmail.com/Test12345");
e4b25e3c28a2 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <markdoliner@pidgin.im>
parents: 15953
diff changeset
125 assert_invalid_jid("mark@doliner@gmail.com/Test12345");
e4b25e3c28a2 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <markdoliner@pidgin.im>
parents: 15953
diff changeset
126 assert_invalid_jid("@gmail.com/Test@12345");
e4b25e3c28a2 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <markdoliner@pidgin.im>
parents: 15953
diff changeset
127 assert_invalid_jid("/Test@12345");
e4b25e3c28a2 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <markdoliner@pidgin.im>
parents: 15953
diff changeset
128 assert_invalid_jid("mark.doliner@");
27711
a259a8dd64cf I thought of another invalid JID. I'm changing jabber_id_new() so that all
Mark Doliner <markdoliner@pidgin.im>
parents: 27710
diff changeset
129 assert_invalid_jid("mark.doliner/");
27718
ae2f4ae35df9 Whoops, some of these were asserting valid but should have been
Mark Doliner <markdoliner@pidgin.im>
parents: 27715
diff changeset
130 assert_invalid_jid("mark.doliner@gmail_stuff.org");
ae2f4ae35df9 Whoops, some of these were asserting valid but should have been
Mark Doliner <markdoliner@pidgin.im>
parents: 27715
diff changeset
131 assert_invalid_jid("mark.doliner@gmail[stuff.org");
ae2f4ae35df9 Whoops, some of these were asserting valid but should have been
Mark Doliner <markdoliner@pidgin.im>
parents: 27715
diff changeset
132 assert_invalid_jid("mark.doliner@gmail\\stuff.org");
27728
03b2a20ba465 Validate IPv6 identifiers in the domain portion of a JID.
Paul Aurich <darkrain42@pidgin.im>
parents: 27723
diff changeset
133 assert_invalid_jid("paul@[::1]124");
03b2a20ba465 Validate IPv6 identifiers in the domain portion of a JID.
Paul Aurich <darkrain42@pidgin.im>
parents: 27723
diff changeset
134 assert_invalid_jid("paul@2[::1]124/as");
27818
d2d5d265001b Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <darkrain42@pidgin.im>
parents: 27728
diff changeset
135
d2d5d265001b Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <darkrain42@pidgin.im>
parents: 27728
diff changeset
136 /* Ensure that jabber_id_new is properly lowercasing node and domains */
d2d5d265001b Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <darkrain42@pidgin.im>
parents: 27728
diff changeset
137 assert_jid_parts("paul", "darkrain42.org", "PaUL@darkrain42.org");
d2d5d265001b Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <darkrain42@pidgin.im>
parents: 27728
diff changeset
138 assert_jid_parts("paul", "darkrain42.org", "paul@DaRkRaIn42.org");
27849
7f7428cb8309 When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <darkrain42@pidgin.im>
parents: 27818
diff changeset
139
7f7428cb8309 When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <darkrain42@pidgin.im>
parents: 27818
diff changeset
140 /* These case-mapping tests culled from examining RFC3454 B.2 */
7f7428cb8309 When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <darkrain42@pidgin.im>
parents: 27818
diff changeset
141
7f7428cb8309 When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <darkrain42@pidgin.im>
parents: 27818
diff changeset
142 /* Cyrillic capital EF (U+0424) maps to lowercase EF (U+0444) */
7f7428cb8309 When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <darkrain42@pidgin.im>
parents: 27818
diff changeset
143 assert_jid_parts("ф", "darkrain42.org", "Ф@darkrain42.org");
7f7428cb8309 When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <darkrain42@pidgin.im>
parents: 27818
diff changeset
144 /*
7f7428cb8309 When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <darkrain42@pidgin.im>
parents: 27818
diff changeset
145 * These character (U+A664 and U+A665) are not mapped to anything in
7f7428cb8309 When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <darkrain42@pidgin.im>
parents: 27818
diff changeset
146 * RFC3454 B.2. This first test *fails* when not using IDN because glib's
7f7428cb8309 When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <darkrain42@pidgin.im>
parents: 27818
diff changeset
147 * case-folding/utf8_strdown improperly lowercases the character.
7f7428cb8309 When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <darkrain42@pidgin.im>
parents: 27818
diff changeset
148 */
7f7428cb8309 When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <darkrain42@pidgin.im>
parents: 27818
diff changeset
149 assert_jid_parts("Ꙥ", "darkrain42.org", "Ꙥ@darkrain42.org");
7f7428cb8309 When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <darkrain42@pidgin.im>
parents: 27818
diff changeset
150 assert_jid_parts("ꙥ", "darkrain42.org", "ꙥ@darkrain42.org");
7f7428cb8309 When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <darkrain42@pidgin.im>
parents: 27818
diff changeset
151 /* U+04E9 to U+04E9 */
27818
d2d5d265001b Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <darkrain42@pidgin.im>
parents: 27728
diff changeset
152 assert_jid_parts("paul", "өarkrain42.org", "paul@Өarkrain42.org");
27710
e4b25e3c28a2 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <markdoliner@pidgin.im>
parents: 15953
diff changeset
153 }
e4b25e3c28a2 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <markdoliner@pidgin.im>
parents: 15953
diff changeset
154 END_TEST
e4b25e3c28a2 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <markdoliner@pidgin.im>
parents: 15953
diff changeset
155
15155
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
156 Suite *
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
157 jabber_jutil_suite(void)
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
158 {
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
159 Suite *s = suite_create("Jabber Utility Functions");
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
160
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
161 TCase *tc = tcase_create("Get Resource");
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
162 tcase_add_test(tc, test_get_resource);
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
163 tcase_add_test(tc, test_get_resource_no_resource);
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
164 suite_add_tcase(s, tc);
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
165
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
166 tc = tcase_create("Get Bare JID");
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
167 tcase_add_test(tc, test_get_bare_jid);
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
168 suite_add_tcase(s, tc);
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
169
27710
e4b25e3c28a2 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <markdoliner@pidgin.im>
parents: 15953
diff changeset
170 tc = tcase_create("JID validate");
15155
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
171 tcase_add_test(tc, test_nodeprep_validate);
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
172 tcase_add_test(tc, test_nodeprep_validate_illegal_chars);
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
173 tcase_add_test(tc, test_nodeprep_validate_too_long);
27710
e4b25e3c28a2 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <markdoliner@pidgin.im>
parents: 15953
diff changeset
174 tcase_add_test(tc, test_jabber_id_new);
15155
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
175 suite_add_tcase(s, tc);
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
176
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
177 return s;
ef9cb9123212 [gaim-migrate @ 17879]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
178 }

mercurial