libpurple/tests/test_util.c

Sat, 01 May 2010 02:36:27 +0000

author
Paul Aurich <darkrain42@pidgin.im>
date
Sat, 01 May 2010 02:36:27 +0000
changeset 30149
b552354d087a
parent 30143
468e3b69fd10
child 30440
4ec59d547bff
permissions
-rw-r--r--

util tests: Add a test for all the lower-ASCII control characters excluding the
whitelisted 0x9, 0xA, and 0xD

15950
0f01bb61c5d3 Fix compiler warnings and errors in tests resulting from using DEBUG_CFLAGS
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15884
diff changeset
1 #include <string.h>
0f01bb61c5d3 Fix compiler warnings and errors in tests resulting from using DEBUG_CFLAGS
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15884
diff changeset
2
15104
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
3 #include "tests.h"
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
4 #include "../util.h"
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
5
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
6 START_TEST(test_util_base16_encode)
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
7 {
26553
a1417d5cdedb Cast away a few compile warnings in our "make check" tests, and add
Mark Doliner <markdoliner@pidgin.im>
parents: 22321
diff changeset
8 assert_string_equal_free("68656c6c6f2c20776f726c642100", purple_base16_encode((const unsigned char *)"hello, world!", 14));
15104
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
9 }
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
10 END_TEST
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
11
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
12 START_TEST(test_util_base16_decode)
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
13 {
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
14 gsize sz = 0;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
15 guchar *out = purple_base16_decode("21646c726f77202c6f6c6c656800", &sz);
15104
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
16 fail_unless(sz == 14, NULL);
27709
4bb974aef0b7 Use assert_string_equal_free() instead of just assert_string_equal()
Mark Doliner <markdoliner@pidgin.im>
parents: 27481
diff changeset
17 assert_string_equal_free("!dlrow ,olleh", (char *)out);
15104
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
18 }
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
19 END_TEST
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
20
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
21 START_TEST(test_util_base64_encode)
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
22 {
26553
a1417d5cdedb Cast away a few compile warnings in our "make check" tests, and add
Mark Doliner <markdoliner@pidgin.im>
parents: 22321
diff changeset
23 assert_string_equal_free("Zm9ydHktdHdvAA==", purple_base64_encode((const unsigned char *)"forty-two", 10));
15104
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
24 }
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
25 END_TEST
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
26
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
27 START_TEST(test_util_base64_decode)
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
28 {
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
29 gsize sz;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
30 guchar *out = purple_base64_decode("b3d0LXl0cm9mAA==", &sz);
15104
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
31 fail_unless(sz == 10, NULL);
27709
4bb974aef0b7 Use assert_string_equal_free() instead of just assert_string_equal()
Mark Doliner <markdoliner@pidgin.im>
parents: 27481
diff changeset
32 assert_string_equal_free("owt-ytrof", (char *)out);
15104
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
33 }
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
34 END_TEST
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
35
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
36 START_TEST(test_util_escape_filename)
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
37 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
38 assert_string_equal("foo", purple_escape_filename("foo"));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
39 assert_string_equal("@oo", purple_escape_filename("@oo"));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
40 assert_string_equal("#oo", purple_escape_filename("#oo"));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
41 assert_string_equal("-oo", purple_escape_filename("-oo"));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
42 assert_string_equal("_oo", purple_escape_filename("_oo"));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
43 assert_string_equal(".oo", purple_escape_filename(".oo"));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
44 assert_string_equal("%25oo", purple_escape_filename("%oo"));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
45 assert_string_equal("%21oo", purple_escape_filename("!oo"));
15104
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
46 }
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
47 END_TEST
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
48
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
49 START_TEST(test_util_unescape_filename)
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
50 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
51 assert_string_equal("bar", purple_unescape_filename("bar"));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
52 assert_string_equal("@ar", purple_unescape_filename("@ar"));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
53 assert_string_equal("!ar", purple_unescape_filename("!ar"));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
54 assert_string_equal("!ar", purple_unescape_filename("%21ar"));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
55 assert_string_equal("%ar", purple_unescape_filename("%25ar"));
15104
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
56 }
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
57 END_TEST
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
58
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
59
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
60 START_TEST(test_util_text_strip_mnemonic)
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
61 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
62 assert_string_equal_free("", purple_text_strip_mnemonic(""));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
63 assert_string_equal_free("foo", purple_text_strip_mnemonic("foo"));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
64 assert_string_equal_free("foo", purple_text_strip_mnemonic("_foo"));
15104
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
65
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
66 }
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
67 END_TEST
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
68
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
69 START_TEST(test_util_email_is_valid)
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
70 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
71 fail_unless(purple_email_is_valid("purple-devel@lists.sf.net"));
22319
a700bcb140b5 Add a few tets to make sure we're catching some invalid email formats
Mark Doliner <markdoliner@pidgin.im>
parents: 21697
diff changeset
72 fail_if(purple_email_is_valid("purple-devel@@lists.sf.net"));
a700bcb140b5 Add a few tets to make sure we're catching some invalid email formats
Mark Doliner <markdoliner@pidgin.im>
parents: 21697
diff changeset
73 fail_if(purple_email_is_valid("purple@devel@lists.sf.net"));
a700bcb140b5 Add a few tets to make sure we're catching some invalid email formats
Mark Doliner <markdoliner@pidgin.im>
parents: 21697
diff changeset
74 fail_if(purple_email_is_valid("purple-devel@list..sf.net"));
a700bcb140b5 Add a few tets to make sure we're catching some invalid email formats
Mark Doliner <markdoliner@pidgin.im>
parents: 21697
diff changeset
75 fail_if(purple_email_is_valid("purple-devel"));
22321
5b8f5f15cadc One more test. This is actually the one I cared about. It passes,
Mark Doliner <markdoliner@pidgin.im>
parents: 22319
diff changeset
76 fail_if(purple_email_is_valid("purple-devel@"));
22319
a700bcb140b5 Add a few tets to make sure we're catching some invalid email formats
Mark Doliner <markdoliner@pidgin.im>
parents: 21697
diff changeset
77 fail_if(purple_email_is_valid("@lists.sf.net"));
a700bcb140b5 Add a few tets to make sure we're catching some invalid email formats
Mark Doliner <markdoliner@pidgin.im>
parents: 21697
diff changeset
78 fail_if(purple_email_is_valid(""));
a700bcb140b5 Add a few tets to make sure we're catching some invalid email formats
Mark Doliner <markdoliner@pidgin.im>
parents: 21697
diff changeset
79 fail_if(purple_email_is_valid("totally bogus"));
15104
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
80 }
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
81 END_TEST
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
82
27727
0c888674bbfc Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <darkrain42@pidgin.im>
parents: 27709
diff changeset
83 START_TEST(test_util_ipv6_is_valid)
0c888674bbfc Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <darkrain42@pidgin.im>
parents: 27709
diff changeset
84 {
0c888674bbfc Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <darkrain42@pidgin.im>
parents: 27709
diff changeset
85 fail_unless(purple_ipv6_address_is_valid("2001:0db8:85a3:0000:0000:8a2e:0370:7334"));
0c888674bbfc Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <darkrain42@pidgin.im>
parents: 27709
diff changeset
86 fail_unless(purple_ipv6_address_is_valid("2001:db8:85a3:0:0:8a2e:370:7334"));
0c888674bbfc Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <darkrain42@pidgin.im>
parents: 27709
diff changeset
87 fail_unless(purple_ipv6_address_is_valid("2001:db8:85a3::8a2e:370:7334"));
0c888674bbfc Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <darkrain42@pidgin.im>
parents: 27709
diff changeset
88 fail_unless(purple_ipv6_address_is_valid("2001:0db8:0:0::1428:57ab"));
0c888674bbfc Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <darkrain42@pidgin.im>
parents: 27709
diff changeset
89 fail_unless(purple_ipv6_address_is_valid("::1"));
0c888674bbfc Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <darkrain42@pidgin.im>
parents: 27709
diff changeset
90 fail_unless(purple_ipv6_address_is_valid("1::"));
0c888674bbfc Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <darkrain42@pidgin.im>
parents: 27709
diff changeset
91 fail_unless(purple_ipv6_address_is_valid("1::1"));
0c888674bbfc Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <darkrain42@pidgin.im>
parents: 27709
diff changeset
92 fail_unless(purple_ipv6_address_is_valid("::"));
0c888674bbfc Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <darkrain42@pidgin.im>
parents: 27709
diff changeset
93 fail_if(purple_ipv6_address_is_valid(""));
0c888674bbfc Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <darkrain42@pidgin.im>
parents: 27709
diff changeset
94 fail_if(purple_ipv6_address_is_valid(":"));
0c888674bbfc Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <darkrain42@pidgin.im>
parents: 27709
diff changeset
95 fail_if(purple_ipv6_address_is_valid("1.2.3.4"));
0c888674bbfc Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <darkrain42@pidgin.im>
parents: 27709
diff changeset
96 fail_if(purple_ipv6_address_is_valid("2001::FFD3::57ab"));
0c888674bbfc Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <darkrain42@pidgin.im>
parents: 27709
diff changeset
97 fail_if(purple_ipv6_address_is_valid("200000000::1"));
0c888674bbfc Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <darkrain42@pidgin.im>
parents: 27709
diff changeset
98 fail_if(purple_ipv6_address_is_valid("QWERTY::1"));
0c888674bbfc Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <darkrain42@pidgin.im>
parents: 27709
diff changeset
99 }
0c888674bbfc Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <darkrain42@pidgin.im>
parents: 27709
diff changeset
100 END_TEST
0c888674bbfc Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <darkrain42@pidgin.im>
parents: 27709
diff changeset
101
16065
85316ed3bcc4 fix our string-to-time function, and add a couple tests for it
Nathan Walp <nwalp@pidgin.im>
parents: 15950
diff changeset
102 START_TEST(test_util_str_to_time)
85316ed3bcc4 fix our string-to-time function, and add a couple tests for it
Nathan Walp <nwalp@pidgin.im>
parents: 15950
diff changeset
103 {
21697
c865512e913f Fix the bug in purple_str_to_time() that was causing 'make check' to fail.
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20293
diff changeset
104 fail_unless(377182200 == purple_str_to_time("19811214T12:50:00", TRUE, NULL, NULL, NULL));
16065
85316ed3bcc4 fix our string-to-time function, and add a couple tests for it
Nathan Walp <nwalp@pidgin.im>
parents: 15950
diff changeset
105 fail_unless(1175919261 == purple_str_to_time("20070407T04:14:21", TRUE, NULL, NULL, NULL));
85316ed3bcc4 fix our string-to-time function, and add a couple tests for it
Nathan Walp <nwalp@pidgin.im>
parents: 15950
diff changeset
106 }
85316ed3bcc4 fix our string-to-time function, and add a couple tests for it
Nathan Walp <nwalp@pidgin.im>
parents: 15950
diff changeset
107 END_TEST
85316ed3bcc4 fix our string-to-time function, and add a couple tests for it
Nathan Walp <nwalp@pidgin.im>
parents: 15950
diff changeset
108
20293
81d324f460bd applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16065
diff changeset
109 START_TEST(test_markup_html_to_xhtml)
81d324f460bd applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16065
diff changeset
110 {
81d324f460bd applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16065
diff changeset
111 gchar *xhtml = NULL;
81d324f460bd applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16065
diff changeset
112 gchar *plaintext = NULL;
81d324f460bd applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16065
diff changeset
113 purple_markup_html_to_xhtml("<a>", &xhtml, &plaintext);
27709
4bb974aef0b7 Use assert_string_equal_free() instead of just assert_string_equal()
Mark Doliner <markdoliner@pidgin.im>
parents: 27481
diff changeset
114 assert_string_equal_free("<a href=\"\"></a>", xhtml);
4bb974aef0b7 Use assert_string_equal_free() instead of just assert_string_equal()
Mark Doliner <markdoliner@pidgin.im>
parents: 27481
diff changeset
115 assert_string_equal_free("", plaintext);
29227
3e9734bf4422 Fix a corner case where purple_markup_html_to_xhtml generated malformed XHTML.
Paul Aurich <darkrain42@pidgin.im>
parents: 27727
diff changeset
116
3e9734bf4422 Fix a corner case where purple_markup_html_to_xhtml generated malformed XHTML.
Paul Aurich <darkrain42@pidgin.im>
parents: 27727
diff changeset
117
3e9734bf4422 Fix a corner case where purple_markup_html_to_xhtml generated malformed XHTML.
Paul Aurich <darkrain42@pidgin.im>
parents: 27727
diff changeset
118 purple_markup_html_to_xhtml("<FONT>x</FONT>", &xhtml, &plaintext);
3e9734bf4422 Fix a corner case where purple_markup_html_to_xhtml generated malformed XHTML.
Paul Aurich <darkrain42@pidgin.im>
parents: 27727
diff changeset
119 assert_string_equal_free("x", xhtml);
3e9734bf4422 Fix a corner case where purple_markup_html_to_xhtml generated malformed XHTML.
Paul Aurich <darkrain42@pidgin.im>
parents: 27727
diff changeset
120 assert_string_equal_free("x", plaintext);
20293
81d324f460bd applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16065
diff changeset
121 }
81d324f460bd applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16065
diff changeset
122 END_TEST
81d324f460bd applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16065
diff changeset
123
30143
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
124 START_TEST(test_utf8_strip_unprintables)
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
125 {
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
126 fail_unless(NULL == purple_utf8_strip_unprintables(NULL));
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
127 /* invalid UTF-8 */
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
128 #if 0
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
129 /* disabled because make check fails on an assertion */
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
130 fail_unless(NULL == purple_utf8_strip_unprintables("abc\x80\x7f"));
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
131 #endif
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
132 /* \t, \n, \r, space */
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
133 assert_string_equal_free("ab \tcd\nef\r ", purple_utf8_strip_unprintables("ab \tcd\nef\r "));
30149
b552354d087a util tests: Add a test for all the lower-ASCII control characters excluding the
Paul Aurich <darkrain42@pidgin.im>
parents: 30143
diff changeset
134 /* ASCII control characters (stripped) */
b552354d087a util tests: Add a test for all the lower-ASCII control characters excluding the
Paul Aurich <darkrain42@pidgin.im>
parents: 30143
diff changeset
135 assert_string_equal_free(" aaaa ", purple_utf8_strip_unprintables(
b552354d087a util tests: Add a test for all the lower-ASCII control characters excluding the
Paul Aurich <darkrain42@pidgin.im>
parents: 30143
diff changeset
136 "\x01\x02\x03\x04\x05\x06\x07\x08\x0B\x0C\x0E\x0F\x10 aaaa "
b552354d087a util tests: Add a test for all the lower-ASCII control characters excluding the
Paul Aurich <darkrain42@pidgin.im>
parents: 30143
diff changeset
137 "\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F"));
30143
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
138 /* Basic ASCII */
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
139 assert_string_equal_free("Foobar", purple_utf8_strip_unprintables("Foobar"));
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
140 /* 0xE000 - 0xFFFD (UTF-8 encoded) */
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
141 /* U+F1F7 */
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
142 assert_string_equal_free("aaaa\xef\x87\xb7", purple_utf8_strip_unprintables("aaaa\xef\x87\xb7"));
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
143 #if 0
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
144 /* disabled because make check fails on an assertion */
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
145 /* U+DB80 (Private Use High Surrogate, First) -- should be stripped */
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
146 assert_string_equal_free("aaaa", purple_utf8_strip_unprintables("aaaa\xed\xa0\x80"));
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
147 /* U+FFFE (should be stripped) */
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
148 assert_string_equal_free("aaaa", purple_utf8_strip_unprintables("aaaa\xef\xbf\xbe"));
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
149 #endif
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
150 /* U+FEFF (should not be stripped) */
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
151 assert_string_equal_free("aaaa\xef\xbb\xbf", purple_utf8_strip_unprintables("aaaa\xef\xbb\xbf"));
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
152 }
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
153 END_TEST
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
154
27481
472fc883fe3c * Use our assert_string_equal() macro instead of fail_unless(strcmp(), NULL)
Mark Doliner <markdoliner@pidgin.im>
parents: 26553
diff changeset
155 START_TEST(test_mime_decode_field)
472fc883fe3c * Use our assert_string_equal() macro instead of fail_unless(strcmp(), NULL)
Mark Doliner <markdoliner@pidgin.im>
parents: 26553
diff changeset
156 {
472fc883fe3c * Use our assert_string_equal() macro instead of fail_unless(strcmp(), NULL)
Mark Doliner <markdoliner@pidgin.im>
parents: 26553
diff changeset
157 gchar *result = purple_mime_decode_field("=?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?=");
27709
4bb974aef0b7 Use assert_string_equal_free() instead of just assert_string_equal()
Mark Doliner <markdoliner@pidgin.im>
parents: 27481
diff changeset
158 assert_string_equal_free("Keld Jørn Simonsen", result);
27481
472fc883fe3c * Use our assert_string_equal() macro instead of fail_unless(strcmp(), NULL)
Mark Doliner <markdoliner@pidgin.im>
parents: 26553
diff changeset
159 }
472fc883fe3c * Use our assert_string_equal() macro instead of fail_unless(strcmp(), NULL)
Mark Doliner <markdoliner@pidgin.im>
parents: 26553
diff changeset
160 END_TEST
472fc883fe3c * Use our assert_string_equal() macro instead of fail_unless(strcmp(), NULL)
Mark Doliner <markdoliner@pidgin.im>
parents: 26553
diff changeset
161
15104
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
162 Suite *
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
163 util_suite(void)
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
164 {
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
165 Suite *s = suite_create("Utility Functions");
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
166
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
167 TCase *tc = tcase_create("Base16");
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
168 tcase_add_test(tc, test_util_base16_encode);
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
169 tcase_add_test(tc, test_util_base16_decode);
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
170 suite_add_tcase(s, tc);
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
171
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
172 tc = tcase_create("Base64");
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
173 tcase_add_test(tc, test_util_base64_encode);
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
174 tcase_add_test(tc, test_util_base64_decode);
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
175 suite_add_tcase(s, tc);
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
176
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
177 tc = tcase_create("Filenames");
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
178 tcase_add_test(tc, test_util_escape_filename);
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
179 tcase_add_test(tc, test_util_unescape_filename);
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
180 suite_add_tcase(s, tc);
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
181
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
182 tc = tcase_create("Strip Mnemonic");
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
183 tcase_add_test(tc, test_util_text_strip_mnemonic);
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
184 suite_add_tcase(s, tc);
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
185
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
186 tc = tcase_create("Email");
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
187 tcase_add_test(tc, test_util_email_is_valid);
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
188 suite_add_tcase(s, tc);
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
189
27727
0c888674bbfc Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <darkrain42@pidgin.im>
parents: 27709
diff changeset
190 tc = tcase_create("IPv6");
0c888674bbfc Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <darkrain42@pidgin.im>
parents: 27709
diff changeset
191 tcase_add_test(tc, test_util_ipv6_is_valid);
0c888674bbfc Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <darkrain42@pidgin.im>
parents: 27709
diff changeset
192 suite_add_tcase(s, tc);
0c888674bbfc Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <darkrain42@pidgin.im>
parents: 27709
diff changeset
193
16065
85316ed3bcc4 fix our string-to-time function, and add a couple tests for it
Nathan Walp <nwalp@pidgin.im>
parents: 15950
diff changeset
194 tc = tcase_create("Time");
85316ed3bcc4 fix our string-to-time function, and add a couple tests for it
Nathan Walp <nwalp@pidgin.im>
parents: 15950
diff changeset
195 tcase_add_test(tc, test_util_str_to_time);
85316ed3bcc4 fix our string-to-time function, and add a couple tests for it
Nathan Walp <nwalp@pidgin.im>
parents: 15950
diff changeset
196 suite_add_tcase(s, tc);
85316ed3bcc4 fix our string-to-time function, and add a couple tests for it
Nathan Walp <nwalp@pidgin.im>
parents: 15950
diff changeset
197
20293
81d324f460bd applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16065
diff changeset
198 tc = tcase_create("Markup");
81d324f460bd applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16065
diff changeset
199 tcase_add_test(tc, test_markup_html_to_xhtml);
81d324f460bd applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16065
diff changeset
200 suite_add_tcase(s, tc);
81d324f460bd applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16065
diff changeset
201
30143
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
202 tc = tcase_create("Stripping Unparseables");
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
203 tcase_add_test(tc, test_utf8_strip_unprintables);
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
204 suite_add_tcase(s, tc);
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
205
27481
472fc883fe3c * Use our assert_string_equal() macro instead of fail_unless(strcmp(), NULL)
Mark Doliner <markdoliner@pidgin.im>
parents: 26553
diff changeset
206 tc = tcase_create("MIME");
472fc883fe3c * Use our assert_string_equal() macro instead of fail_unless(strcmp(), NULL)
Mark Doliner <markdoliner@pidgin.im>
parents: 26553
diff changeset
207 tcase_add_test(tc, test_mime_decode_field);
472fc883fe3c * Use our assert_string_equal() macro instead of fail_unless(strcmp(), NULL)
Mark Doliner <markdoliner@pidgin.im>
parents: 26553
diff changeset
208 suite_add_tcase(s, tc);
472fc883fe3c * Use our assert_string_equal() macro instead of fail_unless(strcmp(), NULL)
Mark Doliner <markdoliner@pidgin.im>
parents: 26553
diff changeset
209
15104
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
210 return s;
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
211 }

mercurial