comparison libpurple/tests/test_jabber_jutil.c @ 27636: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
comparison
equal deleted inserted replaced
27635:97eb110550ad 27636:090dc513552f
78 JabberID *jid = jabber_id_new(str); \ 78 JabberID *jid = jabber_id_new(str); \
79 fail_if(jid != NULL, "JID '%s' is invalid but jabber_id_new() allowed it", str); \ 79 fail_if(jid != NULL, "JID '%s' is invalid but jabber_id_new() allowed it", str); \
80 jabber_id_free(jid); \ 80 jabber_id_free(jid); \
81 } 81 }
82 82
83 #define assert_jid_parts(expect_node, expect_domain, str) { \
84 JabberID *jid = jabber_id_new(str); \
85 fail_if(jid == NULL, "JID '%s' is valid but jabber_id_new() rejected it", str); \
86 fail_if(jid->node == NULL, "JID '%s' is valid but jabber_id_new() didn't return a node", str); \
87 fail_if(jid->domain == NULL, "JID '%s' is valid but jabber_id_new() didn't return a domain", str); \
88 fail_if(jid->resource != NULL, "JID '%s' doesn't contain a resource", str); \
89 assert_string_equal(expect_node, jid->node); \
90 assert_string_equal(expect_domain, jid->domain); \
91 jabber_id_free(jid); \
92 }
93
83 START_TEST(test_jabber_id_new) 94 START_TEST(test_jabber_id_new)
84 { 95 {
85 assert_valid_jid("gmail.com"); 96 assert_valid_jid("gmail.com");
86 assert_valid_jid("gmail.com/Test"); 97 assert_valid_jid("gmail.com/Test");
87 assert_valid_jid("gmail.com/Test@"); 98 assert_valid_jid("gmail.com/Test@");
115 assert_invalid_jid("mark.doliner@gmail_stuff.org"); 126 assert_invalid_jid("mark.doliner@gmail_stuff.org");
116 assert_invalid_jid("mark.doliner@gmail[stuff.org"); 127 assert_invalid_jid("mark.doliner@gmail[stuff.org");
117 assert_invalid_jid("mark.doliner@gmail\\stuff.org"); 128 assert_invalid_jid("mark.doliner@gmail\\stuff.org");
118 assert_invalid_jid("paul@[::1]124"); 129 assert_invalid_jid("paul@[::1]124");
119 assert_invalid_jid("paul@2[::1]124/as"); 130 assert_invalid_jid("paul@2[::1]124/as");
131
132 /* Ensure that jabber_id_new is properly lowercasing node and domains */
133 assert_jid_parts("paul", "darkrain42.org", "PaUL@darkrain42.org");
134 assert_jid_parts("paul", "darkrain42.org", "paul@DaRkRaIn42.org");
135 assert_jid_parts("ꙥ", "darkrain42.org", "Ꙥ@darkrain42.org");
136 assert_jid_parts("paul", "өarkrain42.org", "paul@Өarkrain42.org");
120 } 137 }
121 END_TEST 138 END_TEST
122 139
123 Suite * 140 Suite *
124 jabber_jutil_suite(void) 141 jabber_jutil_suite(void)