Mercurial > pidgin.yaz
annotate libpurple/tests/test_jabber_jutil.c @ 28914:e14402d6c5e0
jabber: Go back to not overwriting avatars if there is not one locally set.
This isn't quite right yet, because we need to pick up the hash and advertise
it in our presence.
Fixes #10287.
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Fri, 13 Nov 2009 18:39:23 +0000 |
parents | aba0ab6b4abd |
children | aea409195613 |
rev | line source |
---|---|
15889
6577b292e7b4
Fix compiler warnings and errors in tests resulting from using DEBUG_CFLAGS
Stu Tomlinson <stu@nosnilmot.com>
parents:
15374
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:
15374
diff
changeset
|
2 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3 #include "tests.h" |
15892
5bd5af818afe
Update #includes to match changes in jabber
Stu Tomlinson <stu@nosnilmot.com>
parents:
15889
diff
changeset
|
4 #include "../account.h" |
5bd5af818afe
Update #includes to match changes in jabber
Stu Tomlinson <stu@nosnilmot.com>
parents:
15889
diff
changeset
|
5 #include "../conversation.h" |
5bd5af818afe
Update #includes to match changes in jabber
Stu Tomlinson <stu@nosnilmot.com>
parents:
15889
diff
changeset
|
6 #include "../xmlnode.h" |
15374
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 { |
15889
6577b292e7b4
Fix compiler warnings and errors in tests resulting from using DEBUG_CFLAGS
Stu Tomlinson <stu@nosnilmot.com>
parents:
15374
diff
changeset
|
37 char *longnode; |
6577b292e7b4
Fix compiler warnings and errors in tests resulting from using DEBUG_CFLAGS
Stu Tomlinson <stu@nosnilmot.com>
parents:
15374
diff
changeset
|
38 |
15374
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 |
15889
6577b292e7b4
Fix compiler warnings and errors in tests resulting from using DEBUG_CFLAGS
Stu Tomlinson <stu@nosnilmot.com>
parents:
15374
diff
changeset
|
44 longnode = g_strnfill(1023, 'a'); |
15374
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); |
27674
e5fdfff98aa9
When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <paul@darkrain42.org>
parents:
27636
diff
changeset
|
47 |
e5fdfff98aa9
When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <paul@darkrain42.org>
parents:
27636
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:
27636
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:
27636
diff
changeset
|
50 g_free(longnode); |
15374
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 |
27527
962ce369fc35
Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents:
15892
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:
15892
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:
15892
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:
15892
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:
15892
diff
changeset
|
79 } |
962ce369fc35
Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents:
15892
diff
changeset
|
80 |
962ce369fc35
Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents:
15892
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:
15892
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:
15892
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:
15892
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:
15892
diff
changeset
|
85 } |
962ce369fc35
Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents:
15892
diff
changeset
|
86 |
27636
090dc513552f
Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <paul@darkrain42.org>
parents:
27546
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:
27546
diff
changeset
|
88 JabberID *jid = jabber_id_new(str); \ |
090dc513552f
Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <paul@darkrain42.org>
parents:
27546
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:
27546
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:
27546
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:
27546
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:
27546
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:
27546
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:
27546
diff
changeset
|
95 jabber_id_free(jid); \ |
090dc513552f
Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <paul@darkrain42.org>
parents:
27546
diff
changeset
|
96 } |
090dc513552f
Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <paul@darkrain42.org>
parents:
27546
diff
changeset
|
97 |
27527
962ce369fc35
Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents:
15892
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:
15892
diff
changeset
|
99 { |
962ce369fc35
Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents:
15892
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:
15892
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:
15892
diff
changeset
|
102 assert_valid_jid("gmail.com/Test@"); |
27529 | 103 assert_valid_jid("gmail.com/@"); |
27527
962ce369fc35
Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents:
15892
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:
15892
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:
15892
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:
15892
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:
15892
diff
changeset
|
108 assert_valid_jid("mark.doliner@gmail.com/Te/st@12@//345"); |
27533
3599729ce9ce
More tests, some with an international flavor. I have no idea what that
Mark Doliner <mark@kingant.net>
parents:
27529
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:
27529
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:
27529
diff
changeset
|
111 assert_valid_jid("mark.doliner@gmail.com/まりるーむ"); |
27535
91fefa830798
Whoops, some of these were asserting valid but should have been
Mark Doliner <mark@kingant.net>
parents:
27533
diff
changeset
|
112 assert_valid_jid("mark.doliner@gmail/stuff.org"); |
27539
167d7c3a4f7b
XMPP allows for internationalized domain names.
Paul Aurich <paul@darkrain42.org>
parents:
27535
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:
27535
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:
27535
diff
changeset
|
115 assert_valid_jid("mark.doliner@わいど.org"); |
167d7c3a4f7b
XMPP allows for internationalized domain names.
Paul Aurich <paul@darkrain42.org>
parents:
27535
diff
changeset
|
116 assert_valid_jid("nick@まつ.おおかみ.net"); |
27540
da3d0159333d
XMPP domains can also be IPv4 or IPv6 addresses
Paul Aurich <paul@darkrain42.org>
parents:
27539
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:
27539
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:
27539
diff
changeset
|
119 assert_valid_jid("paul@[2001:470:1f05:d58::2]"); |
27546
e90fa379fcec
Validate IPv6 identifiers in the domain portion of a JID.
Paul Aurich <paul@darkrain42.org>
parents:
27540
diff
changeset
|
120 assert_valid_jid("paul@[2001:470:1f05:d58::2]/foo"); |
27527
962ce369fc35
Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents:
15892
diff
changeset
|
121 |
27529 | 122 assert_invalid_jid("@gmail.com"); |
27527
962ce369fc35
Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents:
15892
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:
15892
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:
15892
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:
15892
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:
15892
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:
15892
diff
changeset
|
128 assert_invalid_jid("mark.doliner@"); |
27528
2131abd387f9
I thought of another invalid JID. I'm changing jabber_id_new() so that all
Mark Doliner <mark@kingant.net>
parents:
27527
diff
changeset
|
129 assert_invalid_jid("mark.doliner/"); |
27535
91fefa830798
Whoops, some of these were asserting valid but should have been
Mark Doliner <mark@kingant.net>
parents:
27533
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:
27533
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:
27533
diff
changeset
|
132 assert_invalid_jid("mark.doliner@gmail\\stuff.org"); |
27546
e90fa379fcec
Validate IPv6 identifiers in the domain portion of a JID.
Paul Aurich <paul@darkrain42.org>
parents:
27540
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:
27540
diff
changeset
|
134 assert_invalid_jid("paul@2[::1]124/as"); |
28615
4cb882afbd6f
Fix a crash when attempting to validate a JID with an invalid resource.
Paul Aurich <paul@darkrain42.org>
parents:
28482
diff
changeset
|
135 assert_invalid_jid("paul@まつ.おおかみ/\x01"); |
27636
090dc513552f
Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <paul@darkrain42.org>
parents:
27546
diff
changeset
|
136 |
28778
aba0ab6b4abd
Add another (IMHO unintuitive) JID test. Refs #10532.
Paul Aurich <paul@darkrain42.org>
parents:
28643
diff
changeset
|
137 /* |
aba0ab6b4abd
Add another (IMHO unintuitive) JID test. Refs #10532.
Paul Aurich <paul@darkrain42.org>
parents:
28643
diff
changeset
|
138 * RFC 3454 Section 6 reads, in part, |
aba0ab6b4abd
Add another (IMHO unintuitive) JID test. Refs #10532.
Paul Aurich <paul@darkrain42.org>
parents:
28643
diff
changeset
|
139 * "If a string contains any RandALCat character, the |
aba0ab6b4abd
Add another (IMHO unintuitive) JID test. Refs #10532.
Paul Aurich <paul@darkrain42.org>
parents:
28643
diff
changeset
|
140 * string MUST NOT contain any LCat character." |
aba0ab6b4abd
Add another (IMHO unintuitive) JID test. Refs #10532.
Paul Aurich <paul@darkrain42.org>
parents:
28643
diff
changeset
|
141 * The character is U+066D (ARABIC FIVE POINTED STAR). |
aba0ab6b4abd
Add another (IMHO unintuitive) JID test. Refs #10532.
Paul Aurich <paul@darkrain42.org>
parents:
28643
diff
changeset
|
142 */ |
aba0ab6b4abd
Add another (IMHO unintuitive) JID test. Refs #10532.
Paul Aurich <paul@darkrain42.org>
parents:
28643
diff
changeset
|
143 assert_invalid_jid("foo@example.com/٭simplexe٭"); |
aba0ab6b4abd
Add another (IMHO unintuitive) JID test. Refs #10532.
Paul Aurich <paul@darkrain42.org>
parents:
28643
diff
changeset
|
144 |
27636
090dc513552f
Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <paul@darkrain42.org>
parents:
27546
diff
changeset
|
145 /* 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:
27546
diff
changeset
|
146 assert_jid_parts("paul", "darkrain42.org", "PaUL@darkrain42.org"); |
090dc513552f
Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <paul@darkrain42.org>
parents:
27546
diff
changeset
|
147 assert_jid_parts("paul", "darkrain42.org", "paul@DaRkRaIn42.org"); |
27674
e5fdfff98aa9
When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <paul@darkrain42.org>
parents:
27636
diff
changeset
|
148 |
e5fdfff98aa9
When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <paul@darkrain42.org>
parents:
27636
diff
changeset
|
149 /* 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:
27636
diff
changeset
|
150 |
e5fdfff98aa9
When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <paul@darkrain42.org>
parents:
27636
diff
changeset
|
151 /* 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:
27636
diff
changeset
|
152 assert_jid_parts("ф", "darkrain42.org", "Ф@darkrain42.org"); |
28643
c9ec54c0add1
Just comment out the failing tests when using glib; it's not likely anyone
Paul Aurich <paul@darkrain42.org>
parents:
28639
diff
changeset
|
153 |
c9ec54c0add1
Just comment out the failing tests when using glib; it's not likely anyone
Paul Aurich <paul@darkrain42.org>
parents:
28639
diff
changeset
|
154 #ifdef USE_IDN |
27674
e5fdfff98aa9
When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <paul@darkrain42.org>
parents:
27636
diff
changeset
|
155 /* |
e5fdfff98aa9
When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <paul@darkrain42.org>
parents:
27636
diff
changeset
|
156 * 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:
27636
diff
changeset
|
157 * RFC3454 B.2. This first test *fails* when not using IDN because glib's |
28639
60a790b93a50
Clarify the "improperly"; glib is doing what I'd expect strdown to do.
Paul Aurich <paul@darkrain42.org>
parents:
28615
diff
changeset
|
158 * case-folding/utf8_strdown improperly (for XMPP) lowercases the character. |
28643
c9ec54c0add1
Just comment out the failing tests when using glib; it's not likely anyone
Paul Aurich <paul@darkrain42.org>
parents:
28639
diff
changeset
|
159 * |
c9ec54c0add1
Just comment out the failing tests when using glib; it's not likely anyone
Paul Aurich <paul@darkrain42.org>
parents:
28639
diff
changeset
|
160 * This is known, but not (very?) likely to actually cause a problem, so |
c9ec54c0add1
Just comment out the failing tests when using glib; it's not likely anyone
Paul Aurich <paul@darkrain42.org>
parents:
28639
diff
changeset
|
161 * this test is commented out when using glib's functions. |
27674
e5fdfff98aa9
When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <paul@darkrain42.org>
parents:
27636
diff
changeset
|
162 */ |
e5fdfff98aa9
When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <paul@darkrain42.org>
parents:
27636
diff
changeset
|
163 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:
27636
diff
changeset
|
164 assert_jid_parts("ꙥ", "darkrain42.org", "ꙥ@darkrain42.org"); |
28643
c9ec54c0add1
Just comment out the failing tests when using glib; it's not likely anyone
Paul Aurich <paul@darkrain42.org>
parents:
28639
diff
changeset
|
165 #endif |
c9ec54c0add1
Just comment out the failing tests when using glib; it's not likely anyone
Paul Aurich <paul@darkrain42.org>
parents:
28639
diff
changeset
|
166 |
27674
e5fdfff98aa9
When GNU Libidn is available, use it for XMPP stringprep operations.
Paul Aurich <paul@darkrain42.org>
parents:
27636
diff
changeset
|
167 /* U+04E9 to U+04E9 */ |
27636
090dc513552f
Ensure UTF-8 strdown is mostly working correctly.
Paul Aurich <paul@darkrain42.org>
parents:
27546
diff
changeset
|
168 assert_jid_parts("paul", "өarkrain42.org", "paul@Өarkrain42.org"); |
27527
962ce369fc35
Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents:
15892
diff
changeset
|
169 } |
962ce369fc35
Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents:
15892
diff
changeset
|
170 END_TEST |
962ce369fc35
Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents:
15892
diff
changeset
|
171 |
28482
22c65c1090a8
jabber: Use a better method for dealing with terminating slashes in JIDs.
Paul Aurich <paul@darkrain42.org>
parents:
27674
diff
changeset
|
172 START_TEST(test_jabber_normalize) |
22c65c1090a8
jabber: Use a better method for dealing with terminating slashes in JIDs.
Paul Aurich <paul@darkrain42.org>
parents:
27674
diff
changeset
|
173 { |
22c65c1090a8
jabber: Use a better method for dealing with terminating slashes in JIDs.
Paul Aurich <paul@darkrain42.org>
parents:
27674
diff
changeset
|
174 assert_string_equal("paul@darkrain42.org", jabber_normalize(NULL, "PaUL@DaRkRain42.org")); |
22c65c1090a8
jabber: Use a better method for dealing with terminating slashes in JIDs.
Paul Aurich <paul@darkrain42.org>
parents:
27674
diff
changeset
|
175 assert_string_equal("paul@darkrain42.org", jabber_normalize(NULL, "PaUL@DaRkRain42.org/")); |
22c65c1090a8
jabber: Use a better method for dealing with terminating slashes in JIDs.
Paul Aurich <paul@darkrain42.org>
parents:
27674
diff
changeset
|
176 assert_string_equal("paul@darkrain42.org", jabber_normalize(NULL, "PaUL@DaRkRain42.org/resource")); |
22c65c1090a8
jabber: Use a better method for dealing with terminating slashes in JIDs.
Paul Aurich <paul@darkrain42.org>
parents:
27674
diff
changeset
|
177 } |
22c65c1090a8
jabber: Use a better method for dealing with terminating slashes in JIDs.
Paul Aurich <paul@darkrain42.org>
parents:
27674
diff
changeset
|
178 END_TEST |
22c65c1090a8
jabber: Use a better method for dealing with terminating slashes in JIDs.
Paul Aurich <paul@darkrain42.org>
parents:
27674
diff
changeset
|
179 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
180 Suite * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
181 jabber_jutil_suite(void) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
182 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
183 Suite *s = suite_create("Jabber Utility Functions"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
184 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
185 TCase *tc = tcase_create("Get Resource"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
186 tcase_add_test(tc, test_get_resource); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
187 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
|
188 suite_add_tcase(s, tc); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
189 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
190 tc = tcase_create("Get Bare JID"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
191 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
|
192 suite_add_tcase(s, tc); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
193 |
27527
962ce369fc35
Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents:
15892
diff
changeset
|
194 tc = tcase_create("JID validate"); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
195 tcase_add_test(tc, test_nodeprep_validate); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
196 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
|
197 tcase_add_test(tc, test_nodeprep_validate_too_long); |
27527
962ce369fc35
Add tests for jabber_id_new(). Please add to this! JIDs with accented
Mark Doliner <mark@kingant.net>
parents:
15892
diff
changeset
|
198 tcase_add_test(tc, test_jabber_id_new); |
28482
22c65c1090a8
jabber: Use a better method for dealing with terminating slashes in JIDs.
Paul Aurich <paul@darkrain42.org>
parents:
27674
diff
changeset
|
199 tcase_add_test(tc, test_jabber_normalize); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
200 suite_add_tcase(s, tc); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
201 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
202 return s; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
203 } |