annotate libpurple/tests/test_jabber_jutil.c @ 27560:090dc513552f

Ensure UTF-8 strdown is mostly working correctly. I'm concerned by this from the g_utf8_strdown manpage: "Converts all Unicode characters in the string that have a case to lowercase. The exact manner that this is done depends on the current locale, and may result in the number of characters in the string changing." Further tests that exercise both of those possibilities (ugh, locale-dependence) are extremely welcome.
author Paul Aurich <paul@darkrain42.org>
date Wed, 15 Jul 2009 22:31:10 +0000
parents e90fa379fcec
children e5fdfff98aa9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15888
6577b292e7b4 Fix compiler warnings and errors in tests resulting from using DEBUG_CFLAGS
Stu Tomlinson <stu@nosnilmot.com>
parents: 15373
diff changeset
1 #include <string.h>
6577b292e7b4 Fix compiler warnings and errors in tests resulting from using DEBUG_CFLAGS
Stu Tomlinson <stu@nosnilmot.com>
parents: 15373
diff changeset
2
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3 #include "tests.h"
15890
5bd5af818afe Update #includes to match changes in jabber
Stu Tomlinson <stu@nosnilmot.com>
parents: 15888
diff changeset
4 #include "../account.h"
5bd5af818afe Update #includes to match changes in jabber
Stu Tomlinson <stu@nosnilmot.com>
parents: 15888
diff changeset
5 #include "../conversation.h"
5bd5af818afe Update #includes to match changes in jabber
Stu Tomlinson <stu@nosnilmot.com>
parents: 15888
diff changeset
6 #include "../xmlnode.h"
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7 #include "../protocols/jabber/jutil.h"
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
9 START_TEST(test_get_resource)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
10 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
11 assert_string_equal_free("baz", jabber_get_resource("foo@bar/baz"));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
12 assert_string_equal_free("baz", jabber_get_resource("bar/baz"));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
13 assert_string_equal_free("baz/bat", jabber_get_resource("foo@bar/baz/bat"));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
14 assert_string_equal_free("baz/bat", jabber_get_resource("bar/baz/bat"));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
15 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
16 END_TEST
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
17
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
18 START_TEST(test_get_resource_no_resource)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
19 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
20
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
21 fail_unless(NULL == jabber_get_resource("foo@bar"));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
22 fail_unless(NULL == jabber_get_resource("bar"));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
23 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
24 END_TEST
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
25
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
26 START_TEST(test_get_bare_jid)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
27 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
28 assert_string_equal_free("foo@bar", jabber_get_bare_jid("foo@bar"));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
29 assert_string_equal_free("foo@bar", jabber_get_bare_jid("foo@bar/baz"));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
30 assert_string_equal_free("bar", jabber_get_bare_jid("bar"));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
31 assert_string_equal_free("bar", jabber_get_bare_jid("bar/baz"));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
32 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
33 END_TEST
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
34
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
35 START_TEST(test_nodeprep_validate)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
36 {
15888
6577b292e7b4 Fix compiler warnings and errors in tests resulting from using DEBUG_CFLAGS
Stu Tomlinson <stu@nosnilmot.com>
parents: 15373
diff changeset
37 char *longnode;
6577b292e7b4 Fix compiler warnings and errors in tests resulting from using DEBUG_CFLAGS
Stu Tomlinson <stu@nosnilmot.com>
parents: 15373
diff changeset
38
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
39 fail_unless(jabber_nodeprep_validate(NULL));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
40 fail_unless(jabber_nodeprep_validate("foo"));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
41 fail_unless(jabber_nodeprep_validate("%d"));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
42 fail_unless(jabber_nodeprep_validate("y\\z"));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
43
15888
6577b292e7b4 Fix compiler warnings and errors in tests resulting from using DEBUG_CFLAGS
Stu Tomlinson <stu@nosnilmot.com>
parents: 15373
diff changeset
44 longnode = g_strnfill(1023, 'a');
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
45 fail_unless(jabber_nodeprep_validate(longnode));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
46 g_free(longnode);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
47 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
48 END_TEST
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
49
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
50 START_TEST(test_nodeprep_validate_illegal_chars)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
51 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
52 fail_if(jabber_nodeprep_validate("don't"));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
53 fail_if(jabber_nodeprep_validate("m@ke"));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
54 fail_if(jabber_nodeprep_validate("\"me\""));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
55 fail_if(jabber_nodeprep_validate("&ngry"));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
56 fail_if(jabber_nodeprep_validate("c:"));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
57 fail_if(jabber_nodeprep_validate("a/b"));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
58 fail_if(jabber_nodeprep_validate("4>2"));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
59 fail_if(jabber_nodeprep_validate("4<7"));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
60 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
61 END_TEST
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
62
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
63 START_TEST(test_nodeprep_validate_too_long)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
64 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
65 char *longnode = g_strnfill(1024, 'a');
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
66 fail_if(jabber_nodeprep_validate(longnode));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
67 g_free(longnode);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
68 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
69 END_TEST
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
70
27451
962ce369fc35 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents: 15890
diff changeset
71 #define assert_valid_jid(str) { \
962ce369fc35 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents: 15890
diff changeset
72 JabberID *jid = jabber_id_new(str); \
962ce369fc35 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents: 15890
diff changeset
73 fail_if(jid == NULL, "JID '%s' is valid but jabber_id_new() rejected it", str); \
962ce369fc35 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents: 15890
diff changeset
74 jabber_id_free(jid); \
962ce369fc35 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents: 15890
diff changeset
75 }
962ce369fc35 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents: 15890
diff changeset
76
962ce369fc35 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents: 15890
diff changeset
77 #define assert_invalid_jid(str) { \
962ce369fc35 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents: 15890
diff changeset
78 JabberID *jid = jabber_id_new(str); \
962ce369fc35 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents: 15890
diff changeset
79 fail_if(jid != NULL, "JID '%s' is invalid but jabber_id_new() allowed it", str); \
962ce369fc35 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents: 15890
diff changeset
80 jabber_id_free(jid); \
962ce369fc35 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents: 15890
diff changeset
81 }
962ce369fc35 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents: 15890
diff changeset
82
27560
090dc513552f Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <paul@darkrain42.org>
parents: 27470
diff changeset
83 #define assert_jid_parts(expect_node, expect_domain, str) { \
090dc513552f Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <paul@darkrain42.org>
parents: 27470
diff changeset
84 JabberID *jid = jabber_id_new(str); \
090dc513552f Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <paul@darkrain42.org>
parents: 27470
diff changeset
85 fail_if(jid == NULL, "JID '%s' is valid but jabber_id_new() rejected it", str); \
090dc513552f Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <paul@darkrain42.org>
parents: 27470
diff changeset
86 fail_if(jid->node == NULL, "JID '%s' is valid but jabber_id_new() didn't return a node", str); \
090dc513552f Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <paul@darkrain42.org>
parents: 27470
diff changeset
87 fail_if(jid->domain == NULL, "JID '%s' is valid but jabber_id_new() didn't return a domain", str); \
090dc513552f Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <paul@darkrain42.org>
parents: 27470
diff changeset
88 fail_if(jid->resource != NULL, "JID '%s' doesn't contain a resource", str); \
090dc513552f Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <paul@darkrain42.org>
parents: 27470
diff changeset
89 assert_string_equal(expect_node, jid->node); \
090dc513552f Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <paul@darkrain42.org>
parents: 27470
diff changeset
90 assert_string_equal(expect_domain, jid->domain); \
090dc513552f Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <paul@darkrain42.org>
parents: 27470
diff changeset
91 jabber_id_free(jid); \
090dc513552f Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <paul@darkrain42.org>
parents: 27470
diff changeset
92 }
090dc513552f Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <paul@darkrain42.org>
parents: 27470
diff changeset
93
27451
962ce369fc35 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents: 15890
diff changeset
94 START_TEST(test_jabber_id_new)
962ce369fc35 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents: 15890
diff changeset
95 {
962ce369fc35 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents: 15890
diff changeset
96 assert_valid_jid("gmail.com");
962ce369fc35 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents: 15890
diff changeset
97 assert_valid_jid("gmail.com/Test");
962ce369fc35 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents: 15890
diff changeset
98 assert_valid_jid("gmail.com/Test@");
27453
c6fea4ae68b3 Two more JID tests.
Paul Aurich <paul@darkrain42.org>
parents: 27452
diff changeset
99 assert_valid_jid("gmail.com/@");
27451
962ce369fc35 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents: 15890
diff changeset
100 assert_valid_jid("gmail.com/Test@alkjaweflkj");
962ce369fc35 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents: 15890
diff changeset
101 assert_valid_jid("mark.doliner@gmail.com");
962ce369fc35 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents: 15890
diff changeset
102 assert_valid_jid("mark.doliner@gmail.com/Test12345");
962ce369fc35 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents: 15890
diff changeset
103 assert_valid_jid("mark.doliner@gmail.com/Test@12345");
962ce369fc35 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents: 15890
diff changeset
104 assert_valid_jid("mark.doliner@gmail.com/Te/st@12@//345");
27457
3599729ce9ce More tests, some with an international flavor. I have no idea what that
Mark Doliner <mark@kingant.net>
parents: 27453
diff changeset
105 assert_valid_jid("わいど@conference.jabber.org");
3599729ce9ce More tests, some with an international flavor. I have no idea what that
Mark Doliner <mark@kingant.net>
parents: 27453
diff changeset
106 assert_valid_jid("まりるーむ@conference.jabber.org");
3599729ce9ce More tests, some with an international flavor. I have no idea what that
Mark Doliner <mark@kingant.net>
parents: 27453
diff changeset
107 assert_valid_jid("mark.doliner@gmail.com/まりるーむ");
27459
91fefa830798 Whoops, some of these were asserting valid but should have been
Mark Doliner <mark@kingant.net>
parents: 27457
diff changeset
108 assert_valid_jid("mark.doliner@gmail/stuff.org");
27463
167d7c3a4f7b XMPP allows for internationalized domain names.
Paul Aurich <paul@darkrain42.org>
parents: 27459
diff changeset
109 assert_valid_jid("stuart@nödåtXäYZ.se");
167d7c3a4f7b XMPP allows for internationalized domain names.
Paul Aurich <paul@darkrain42.org>
parents: 27459
diff changeset
110 assert_valid_jid("stuart@nödåtXäYZ.se/まりるーむ");
167d7c3a4f7b XMPP allows for internationalized domain names.
Paul Aurich <paul@darkrain42.org>
parents: 27459
diff changeset
111 assert_valid_jid("mark.doliner@わいど.org");
167d7c3a4f7b XMPP allows for internationalized domain names.
Paul Aurich <paul@darkrain42.org>
parents: 27459
diff changeset
112 assert_valid_jid("nick@まつ.おおかみ.net");
27464
da3d0159333d XMPP domains can also be IPv4 or IPv6 addresses
Paul Aurich <paul@darkrain42.org>
parents: 27463
diff changeset
113 assert_valid_jid("paul@10.0.42.230/s");
da3d0159333d XMPP domains can also be IPv4 or IPv6 addresses
Paul Aurich <paul@darkrain42.org>
parents: 27463
diff changeset
114 assert_valid_jid("paul@[::1]"); /* IPv6 */
da3d0159333d XMPP domains can also be IPv4 or IPv6 addresses
Paul Aurich <paul@darkrain42.org>
parents: 27463
diff changeset
115 assert_valid_jid("paul@[2001:470:1f05:d58::2]");
27470
e90fa379fcec Validate IPv6 identifiers in the domain portion of a JID.
Paul Aurich <paul@darkrain42.org>
parents: 27464
diff changeset
116 assert_valid_jid("paul@[2001:470:1f05:d58::2]/foo");
27451
962ce369fc35 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents: 15890
diff changeset
117
27453
c6fea4ae68b3 Two more JID tests.
Paul Aurich <paul@darkrain42.org>
parents: 27452
diff changeset
118 assert_invalid_jid("@gmail.com");
27451
962ce369fc35 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents: 15890
diff changeset
119 assert_invalid_jid("@@gmail.com");
962ce369fc35 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents: 15890
diff changeset
120 assert_invalid_jid("mark.doliner@@gmail.com/Test12345");
962ce369fc35 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents: 15890
diff changeset
121 assert_invalid_jid("mark@doliner@gmail.com/Test12345");
962ce369fc35 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents: 15890
diff changeset
122 assert_invalid_jid("@gmail.com/Test@12345");
962ce369fc35 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents: 15890
diff changeset
123 assert_invalid_jid("/Test@12345");
962ce369fc35 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents: 15890
diff changeset
124 assert_invalid_jid("mark.doliner@");
27452
2131abd387f9 I thought of another invalid JID. I'm changing jabber_id_new() so that all
Mark Doliner <mark@kingant.net>
parents: 27451
diff changeset
125 assert_invalid_jid("mark.doliner/");
27459
91fefa830798 Whoops, some of these were asserting valid but should have been
Mark Doliner <mark@kingant.net>
parents: 27457
diff changeset
126 assert_invalid_jid("mark.doliner@gmail_stuff.org");
91fefa830798 Whoops, some of these were asserting valid but should have been
Mark Doliner <mark@kingant.net>
parents: 27457
diff changeset
127 assert_invalid_jid("mark.doliner@gmail[stuff.org");
91fefa830798 Whoops, some of these were asserting valid but should have been
Mark Doliner <mark@kingant.net>
parents: 27457
diff changeset
128 assert_invalid_jid("mark.doliner@gmail\\stuff.org");
27470
e90fa379fcec Validate IPv6 identifiers in the domain portion of a JID.
Paul Aurich <paul@darkrain42.org>
parents: 27464
diff changeset
129 assert_invalid_jid("paul@[::1]124");
e90fa379fcec Validate IPv6 identifiers in the domain portion of a JID.
Paul Aurich <paul@darkrain42.org>
parents: 27464
diff changeset
130 assert_invalid_jid("paul@2[::1]124/as");
27560
090dc513552f Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <paul@darkrain42.org>
parents: 27470
diff changeset
131
090dc513552f Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <paul@darkrain42.org>
parents: 27470
diff changeset
132 /* Ensure that jabber_id_new is properly lowercasing node and domains */
090dc513552f Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <paul@darkrain42.org>
parents: 27470
diff changeset
133 assert_jid_parts("paul", "darkrain42.org", "PaUL@darkrain42.org");
090dc513552f Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <paul@darkrain42.org>
parents: 27470
diff changeset
134 assert_jid_parts("paul", "darkrain42.org", "paul@DaRkRaIn42.org");
090dc513552f Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <paul@darkrain42.org>
parents: 27470
diff changeset
135 assert_jid_parts("ꙥ", "darkrain42.org", "Ꙥ@darkrain42.org");
090dc513552f Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <paul@darkrain42.org>
parents: 27470
diff changeset
136 assert_jid_parts("paul", "өarkrain42.org", "paul@Өarkrain42.org");
27451
962ce369fc35 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents: 15890
diff changeset
137 }
962ce369fc35 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents: 15890
diff changeset
138 END_TEST
962ce369fc35 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents: 15890
diff changeset
139
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
140 Suite *
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
141 jabber_jutil_suite(void)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
142 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
143 Suite *s = suite_create("Jabber Utility Functions");
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
144
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
145 TCase *tc = tcase_create("Get Resource");
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
146 tcase_add_test(tc, test_get_resource);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
147 tcase_add_test(tc, test_get_resource_no_resource);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
148 suite_add_tcase(s, tc);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
149
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
150 tc = tcase_create("Get Bare JID");
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
151 tcase_add_test(tc, test_get_bare_jid);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
152 suite_add_tcase(s, tc);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
153
27451
962ce369fc35 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents: 15890
diff changeset
154 tc = tcase_create("JID validate");
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
155 tcase_add_test(tc, test_nodeprep_validate);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
156 tcase_add_test(tc, test_nodeprep_validate_illegal_chars);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
157 tcase_add_test(tc, test_nodeprep_validate_too_long);
27451
962ce369fc35 Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents: 15890
diff changeset
158 tcase_add_test(tc, test_jabber_id_new);
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
159 suite_add_tcase(s, tc);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
160
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
161 return s;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
162 }