Mercurial > pidgin
annotate libpurple/tests/test_jabber_jutil.c @ 27598:e5fdfff98aa9
When GNU Libidn is available, use it for XMPP stringprep operations.
I made configure fail if libidn is unavailable and force_deps is set
because glib's UTF-8 strdown and casefold operations fail one of the
tests I've updated (based on running the tests with libidn).
Running without libidn will still work in almost every case because people
use all-ASCII JabberIDs and I had to search a fair amount to find
characters for which GLib failed. This shouldn't have a performance impact
on top of Mark's optimizations for all-ASCII JIDs.
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Fri, 17 Jul 2009 21:11:25 +0000 |
parents | 090dc513552f |
children | 22c65c1090a8 |
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); |
27598
e5fdfff98aa9
When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <paul@darkrain42.org>
parents:
27560
diff
changeset
|
47 |
e5fdfff98aa9
When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <paul@darkrain42.org>
parents:
27560
diff
changeset
|
48 longnode = g_strnfill(1024, 'a'); |
e5fdfff98aa9
When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <paul@darkrain42.org>
parents:
27560
diff
changeset
|
49 fail_if(jabber_nodeprep_validate(longnode)); |
e5fdfff98aa9
When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <paul@darkrain42.org>
parents:
27560
diff
changeset
|
50 g_free(longnode); |
15373
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 END_TEST |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
53 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
54 START_TEST(test_nodeprep_validate_illegal_chars) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
55 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
56 fail_if(jabber_nodeprep_validate("don't")); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
57 fail_if(jabber_nodeprep_validate("m@ke")); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
58 fail_if(jabber_nodeprep_validate("\"me\"")); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
59 fail_if(jabber_nodeprep_validate("&ngry")); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
60 fail_if(jabber_nodeprep_validate("c:")); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
61 fail_if(jabber_nodeprep_validate("a/b")); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
62 fail_if(jabber_nodeprep_validate("4>2")); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
63 fail_if(jabber_nodeprep_validate("4<7")); |
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 END_TEST |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
66 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
67 START_TEST(test_nodeprep_validate_too_long) |
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 char *longnode = g_strnfill(1024, 'a'); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
70 fail_if(jabber_nodeprep_validate(longnode)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
71 g_free(longnode); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
72 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
73 END_TEST |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
74 |
27451
962ce369fc35
Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents:
15890
diff
changeset
|
75 #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
|
76 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
|
77 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
|
78 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
|
79 } |
962ce369fc35
Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents:
15890
diff
changeset
|
80 |
962ce369fc35
Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents:
15890
diff
changeset
|
81 #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
|
82 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
|
83 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
|
84 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
|
85 } |
962ce369fc35
Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents:
15890
diff
changeset
|
86 |
27560
090dc513552f
Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <paul@darkrain42.org>
parents:
27470
diff
changeset
|
87 #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
|
88 JabberID *jid = jabber_id_new(str); \ |
090dc513552f
Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <paul@darkrain42.org>
parents:
27470
diff
changeset
|
89 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
|
90 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
|
91 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
|
92 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
|
93 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
|
94 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
|
95 jabber_id_free(jid); \ |
090dc513552f
Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <paul@darkrain42.org>
parents:
27470
diff
changeset
|
96 } |
090dc513552f
Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <paul@darkrain42.org>
parents:
27470
diff
changeset
|
97 |
27451
962ce369fc35
Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents:
15890
diff
changeset
|
98 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
|
99 { |
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"); |
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("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
|
102 assert_valid_jid("gmail.com/Test@"); |
27453 | 103 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
|
104 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
|
105 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
|
106 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
|
107 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
|
108 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
|
109 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
|
110 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
|
111 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
|
112 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
|
113 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
|
114 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
|
115 assert_valid_jid("mark.doliner@わいど.org"); |
167d7c3a4f7b
XMPP allows for internationalized domain names.
Paul Aurich <paul@darkrain42.org>
parents:
27459
diff
changeset
|
116 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
|
117 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
|
118 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
|
119 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
|
120 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
|
121 |
27453 | 122 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
|
123 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
|
124 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
|
125 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
|
126 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
|
127 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
|
128 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
|
129 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
|
130 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
|
131 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
|
132 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
|
133 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
|
134 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
|
135 |
090dc513552f
Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <paul@darkrain42.org>
parents:
27470
diff
changeset
|
136 /* 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
|
137 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
|
138 assert_jid_parts("paul", "darkrain42.org", "paul@DaRkRaIn42.org"); |
27598
e5fdfff98aa9
When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <paul@darkrain42.org>
parents:
27560
diff
changeset
|
139 |
e5fdfff98aa9
When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <paul@darkrain42.org>
parents:
27560
diff
changeset
|
140 /* These case-mapping tests culled from examining RFC3454 B.2 */ |
e5fdfff98aa9
When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <paul@darkrain42.org>
parents:
27560
diff
changeset
|
141 |
e5fdfff98aa9
When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <paul@darkrain42.org>
parents:
27560
diff
changeset
|
142 /* Cyrillic capital EF (U+0424) maps to lowercase EF (U+0444) */ |
e5fdfff98aa9
When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <paul@darkrain42.org>
parents:
27560
diff
changeset
|
143 assert_jid_parts("ф", "darkrain42.org", "Ф@darkrain42.org"); |
e5fdfff98aa9
When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <paul@darkrain42.org>
parents:
27560
diff
changeset
|
144 /* |
e5fdfff98aa9
When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <paul@darkrain42.org>
parents:
27560
diff
changeset
|
145 * These character (U+A664 and U+A665) are not mapped to anything in |
e5fdfff98aa9
When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <paul@darkrain42.org>
parents:
27560
diff
changeset
|
146 * RFC3454 B.2. This first test *fails* when not using IDN because glib's |
e5fdfff98aa9
When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <paul@darkrain42.org>
parents:
27560
diff
changeset
|
147 * case-folding/utf8_strdown improperly lowercases the character. |
e5fdfff98aa9
When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <paul@darkrain42.org>
parents:
27560
diff
changeset
|
148 */ |
e5fdfff98aa9
When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <paul@darkrain42.org>
parents:
27560
diff
changeset
|
149 assert_jid_parts("Ꙥ", "darkrain42.org", "Ꙥ@darkrain42.org"); |
e5fdfff98aa9
When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <paul@darkrain42.org>
parents:
27560
diff
changeset
|
150 assert_jid_parts("ꙥ", "darkrain42.org", "ꙥ@darkrain42.org"); |
e5fdfff98aa9
When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <paul@darkrain42.org>
parents:
27560
diff
changeset
|
151 /* U+04E9 to U+04E9 */ |
27560
090dc513552f
Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <paul@darkrain42.org>
parents:
27470
diff
changeset
|
152 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
|
153 } |
962ce369fc35
Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents:
15890
diff
changeset
|
154 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
|
155 |
15373
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
156 Suite * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
157 jabber_jutil_suite(void) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
158 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
159 Suite *s = suite_create("Jabber Utility Functions"); |
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 TCase *tc = tcase_create("Get Resource"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
162 tcase_add_test(tc, test_get_resource); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
163 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
|
164 suite_add_tcase(s, tc); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
165 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
166 tc = tcase_create("Get Bare JID"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
167 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
|
168 suite_add_tcase(s, tc); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
169 |
27451
962ce369fc35
Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents:
15890
diff
changeset
|
170 tc = tcase_create("JID validate"); |
15373
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
171 tcase_add_test(tc, test_nodeprep_validate); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
172 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
|
173 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
|
174 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
|
175 suite_add_tcase(s, tc); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
176 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
177 return s; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
178 } |