libpurple/tests/test_util.c

Fri, 10 Jan 2014 21:37:28 -0800

author
Mark Doliner <mark@kingant.net>
date
Fri, 10 Jan 2014 21:37:28 -0800
changeset 35161
172e19e2289e
parent 33510
8019461267d9
child 35297
2d76d38118a8
permissions
-rw-r--r--

Prefer https over http.

(The commit message for my previous commit was wrong. Should have been
"prefer without www" or something)

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
30440
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
69 /*
30442
a4f304b33d50 Oh, let's put our original test cases in the two arrays, to make things
Mark Doliner <markdoliner@pidgin.im>
parents: 30440
diff changeset
70 * Many of the valid and invalid email addresses lised below are from
30440
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
71 * http://fightingforalostcause.net/misc/2006/compare-email-regex.php
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
72 */
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
73 const char *valid_emails[] = {
30442
a4f304b33d50 Oh, let's put our original test cases in the two arrays, to make things
Mark Doliner <markdoliner@pidgin.im>
parents: 30440
diff changeset
74 "purple-devel@lists.sf.net",
30440
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
75 "l3tt3rsAndNumb3rs@domain.com",
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
76 "has-dash@domain.com",
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
77 "hasApostrophe.o'leary@domain.org",
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
78 "uncommonTLD@domain.museum",
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
79 "uncommonTLD@domain.travel",
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
80 "uncommonTLD@domain.mobi",
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
81 "countryCodeTLD@domain.uk",
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
82 "countryCodeTLD@domain.rw",
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
83 "lettersInDomain@911.com",
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
84 "underscore_inLocal@domain.net",
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
85 "IPInsteadOfDomain@127.0.0.1",
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
86 /* "IPAndPort@127.0.0.1:25", */
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
87 "subdomain@sub.domain.com",
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
88 "local@dash-inDomain.com",
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
89 "dot.inLocal@foo.com",
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
90 "a@singleLetterLocal.org",
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
91 "singleLetterDomain@x.org",
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
92 "&*=?^+{}'~@validCharsInLocal.net",
31484
b7cfae50e10c Add two valid email addresses to this list
Mark Doliner <markdoliner@pidgin.im>
parents: 31232
diff changeset
93 "foor@bar.newTLD",
b7cfae50e10c Add two valid email addresses to this list
Mark Doliner <markdoliner@pidgin.im>
parents: 31232
diff changeset
94 "HenryTheGreatWhiteCricket@live.ca",
b7cfae50e10c Add two valid email addresses to this list
Mark Doliner <markdoliner@pidgin.im>
parents: 31232
diff changeset
95 "HenryThe__WhiteCricket@hotmail.com"
30440
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
96 };
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
97
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
98 const char *invalid_emails[] = {
30442
a4f304b33d50 Oh, let's put our original test cases in the two arrays, to make things
Mark Doliner <markdoliner@pidgin.im>
parents: 30440
diff changeset
99 "purple-devel@@lists.sf.net",
a4f304b33d50 Oh, let's put our original test cases in the two arrays, to make things
Mark Doliner <markdoliner@pidgin.im>
parents: 30440
diff changeset
100 "purple@devel@lists.sf.net",
a4f304b33d50 Oh, let's put our original test cases in the two arrays, to make things
Mark Doliner <markdoliner@pidgin.im>
parents: 30440
diff changeset
101 "purple-devel@list..sf.net",
a4f304b33d50 Oh, let's put our original test cases in the two arrays, to make things
Mark Doliner <markdoliner@pidgin.im>
parents: 30440
diff changeset
102 "purple-devel",
a4f304b33d50 Oh, let's put our original test cases in the two arrays, to make things
Mark Doliner <markdoliner@pidgin.im>
parents: 30440
diff changeset
103 "purple-devel@",
a4f304b33d50 Oh, let's put our original test cases in the two arrays, to make things
Mark Doliner <markdoliner@pidgin.im>
parents: 30440
diff changeset
104 "@lists.sf.net",
a4f304b33d50 Oh, let's put our original test cases in the two arrays, to make things
Mark Doliner <markdoliner@pidgin.im>
parents: 30440
diff changeset
105 "totally bogus",
30440
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
106 "missingDomain@.com",
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
107 "@missingLocal.org",
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
108 "missingatSign.net",
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
109 "missingDot@com",
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
110 "two@@signs.com",
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
111 "colonButNoPort@127.0.0.1:",
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
112 ""
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
113 /* "someone-else@127.0.0.1.26", */
30444
d871c3fd6637 Catch some more invalid email addresses, thanks to Mark for additional
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 30442
diff changeset
114 ".localStartsWithDot@domain.com",
d871c3fd6637 Catch some more invalid email addresses, thanks to Mark for additional
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 30442
diff changeset
115 /* "localEndsWithDot.@domain.com", */ /* I don't think this is invalid -- Stu */
d871c3fd6637 Catch some more invalid email addresses, thanks to Mark for additional
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 30442
diff changeset
116 /* "two..consecutiveDots@domain.com", */ /* I don't think this is invalid -- Stu */
d871c3fd6637 Catch some more invalid email addresses, thanks to Mark for additional
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 30442
diff changeset
117 "domainStartsWithDash@-domain.com",
30440
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
118 "domainEndsWithDash@domain-.com",
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
119 /* "numbersInTLD@domain.c0m", */
30444
d871c3fd6637 Catch some more invalid email addresses, thanks to Mark for additional
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 30442
diff changeset
120 /* "missingTLD@domain.", */ /* This certainly isn't invalid -- Stu */
30440
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
121 "! \"#$%(),/;<>[]`|@invalidCharsInLocal.org",
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
122 "invalidCharsInDomain@! \"#$%(),/;<>_[]`|.org",
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
123 /* "local@SecondLevelDomainNamesAreInvalidIfTheyAreLongerThan64Charactersss.org" */
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
124 };
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
125
15104
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
126 START_TEST(test_util_email_is_valid)
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
127 {
30440
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
128 size_t i;
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
129
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
130 for (i = 0; i < G_N_ELEMENTS(valid_emails); i++)
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
131 fail_unless(purple_email_is_valid(valid_emails[i]), "Email address was: %s", valid_emails[i]);
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
132
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
133 for (i = 0; i < G_N_ELEMENTS(invalid_emails); i++)
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
134 fail_if(purple_email_is_valid(invalid_emails[i]), "Email address was: %s", invalid_emails[i]);
15104
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
135 }
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
136 END_TEST
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
137
27727
0c888674bbfc Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <darkrain42@pidgin.im>
parents: 27709
diff changeset
138 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
139 {
0c888674bbfc Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <darkrain42@pidgin.im>
parents: 27709
diff changeset
140 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
141 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
142 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
143 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
144 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
145 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
146 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
147 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
148 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
149 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
150 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
151 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
152 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
153 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
154 }
0c888674bbfc Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <darkrain42@pidgin.im>
parents: 27709
diff changeset
155 END_TEST
0c888674bbfc Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <darkrain42@pidgin.im>
parents: 27709
diff changeset
156
16065
85316ed3bcc4 fix our string-to-time function, and add a couple tests for it
Nathan Walp <nwalp@pidgin.im>
parents: 15950
diff changeset
157 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
158 {
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
159 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
160 fail_unless(1175919261 == purple_str_to_time("20070407T04:14:21", TRUE, NULL, NULL, NULL));
31232
2a4d30955b3f Add two new tests to purple_str_to_time(). The second currently fails, but is the format used for our log files\!
Daniel Atallah <datallah@pidgin.im>
parents: 30444
diff changeset
161 fail_unless(1282941722 == purple_str_to_time("2010-08-27.204202", TRUE, NULL, NULL, NULL));
2a4d30955b3f Add two new tests to purple_str_to_time(). The second currently fails, but is the format used for our log files\!
Daniel Atallah <datallah@pidgin.im>
parents: 30444
diff changeset
162 fail_unless(1282941722 == purple_str_to_time("2010-08-27.134202-0700PDT", FALSE, 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
163 }
85316ed3bcc4 fix our string-to-time function, and add a couple tests for it
Nathan Walp <nwalp@pidgin.im>
parents: 15950
diff changeset
164 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
165
20293
81d324f460bd applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16065
diff changeset
166 START_TEST(test_markup_html_to_xhtml)
81d324f460bd applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16065
diff changeset
167 {
81d324f460bd applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16065
diff changeset
168 gchar *xhtml = NULL;
81d324f460bd applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16065
diff changeset
169 gchar *plaintext = NULL;
33380
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
170
20293
81d324f460bd applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16065
diff changeset
171 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
172 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
173 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
174
33380
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
175 purple_markup_html_to_xhtml("<A href='URL'>ABOUT</a>", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
176 assert_string_equal_free("<a href=\"URL\">ABOUT</a>", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
177 assert_string_equal_free("ABOUT <URL>", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
178
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
179 purple_markup_html_to_xhtml("<a href='URL'>URL</a>", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
180 assert_string_equal_free("URL", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
181 assert_string_equal_free("<a href=\"URL\">URL</a>", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
182
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
183 purple_markup_html_to_xhtml("<a href='mailto:mail'>mail</a>", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
184 assert_string_equal_free("mail", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
185 assert_string_equal_free("<a href=\"mailto:mail\">mail</a>", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
186
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
187 purple_markup_html_to_xhtml("<A href='\"U&apos;R&L'>ABOUT</a>", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
188 assert_string_equal_free("<a href=\"&quot;U&apos;R&amp;L\">ABOUT</a>", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
189 assert_string_equal_free("ABOUT <\"U'R&L>", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
190
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
191 purple_markup_html_to_xhtml("<img src='SRC' alt='ALT'/>", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
192 assert_string_equal_free("<img src='SRC' alt='ALT' />", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
193 assert_string_equal_free("ALT", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
194
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
195 purple_markup_html_to_xhtml("<img src=\"'S&apos;R&C\" alt=\"'A&apos;L&T\"/>", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
196 assert_string_equal_free("<img src='&apos;S&apos;R&amp;C' alt='&apos;A&apos;L&amp;T' />", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
197 assert_string_equal_free("'A'L&T", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
198
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
199 purple_markup_html_to_xhtml("<unknown>", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
200 assert_string_equal_free("&lt;unknown>", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
201 assert_string_equal_free("<unknown>", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
202
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
203 purple_markup_html_to_xhtml("&eacute;&amp;", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
204 assert_string_equal_free("&eacute;&amp;", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
205 assert_string_equal_free("&eacute;&", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
206
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
207 purple_markup_html_to_xhtml("<h1>A<h2>B</h2>C</h1>", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
208 assert_string_equal_free("<h1>A<h2>B</h2>C</h1>", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
209 assert_string_equal_free("ABC", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
210
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
211 purple_markup_html_to_xhtml("<h1><h2><h3><h4>", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
212 assert_string_equal_free("<h1><h2><h3><h4></h4></h3></h2></h1>", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
213 assert_string_equal_free("", plaintext);
33510
8019461267d9 Merge heads.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33380
diff changeset
214
33380
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
215 purple_markup_html_to_xhtml("<italic/>", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
216 assert_string_equal_free("<em/>", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
217 assert_string_equal_free("", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
218
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
219 purple_markup_html_to_xhtml("</", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
220 assert_string_equal_free("&lt;/", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
221 assert_string_equal_free("</", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
222
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
223 purple_markup_html_to_xhtml("</div>", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
224 assert_string_equal_free("", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
225 assert_string_equal_free("", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
226
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
227 purple_markup_html_to_xhtml("<hr/>", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
228 assert_string_equal_free("<br/>", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
229 assert_string_equal_free("\n", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
230
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
231 purple_markup_html_to_xhtml("<hr>", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
232 assert_string_equal_free("<br/>", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
233 assert_string_equal_free("\n", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
234
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
235 purple_markup_html_to_xhtml("<br />", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
236 assert_string_equal_free("<br/>", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
237 assert_string_equal_free("\n", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
238
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
239 purple_markup_html_to_xhtml("<br>INSIDE</br>", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
240 assert_string_equal_free("<br/>INSIDE", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
241 assert_string_equal_free("\nINSIDE", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
242
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
243 purple_markup_html_to_xhtml("<div></div>", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
244 assert_string_equal_free("<div></div>", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
245 assert_string_equal_free("", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
246
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
247 purple_markup_html_to_xhtml("<div/>", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
248 assert_string_equal_free("<div/>", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
249 assert_string_equal_free("", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
250
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
251 purple_markup_html_to_xhtml("<div attr='\"&<>'/>", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
252 assert_string_equal_free("<div attr='&quot;&amp;&lt;&gt;'/>", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
253 assert_string_equal_free("", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
254
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
255 purple_markup_html_to_xhtml("<div attr=\"'\"/>", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
256 assert_string_equal_free("<div attr=\"&apos;\"/>", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
257 assert_string_equal_free("", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
258
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
259 purple_markup_html_to_xhtml("<div/> < <div/>", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
260 assert_string_equal_free("<div/> &lt; <div/>", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
261 assert_string_equal_free(" < ", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
262
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
263 purple_markup_html_to_xhtml("<div>x</div>", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
264 assert_string_equal_free("<div>x</div>", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
265 assert_string_equal_free("x", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
266
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
267 purple_markup_html_to_xhtml("<b>x</b>", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
268 assert_string_equal_free("<span style='font-weight: bold;'>x</span>", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
269 assert_string_equal_free("x", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
270
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
271 purple_markup_html_to_xhtml("<bold>x</bold>", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
272 assert_string_equal_free("<span style='font-weight: bold;'>x</span>", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
273 assert_string_equal_free("x", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
274
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
275 purple_markup_html_to_xhtml("<strong>x</strong>", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
276 assert_string_equal_free("<span style='font-weight: bold;'>x</span>", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
277 assert_string_equal_free("x", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
278
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
279 purple_markup_html_to_xhtml("<u>x</u>", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
280 assert_string_equal_free("<span style='text-decoration: underline;'>x</span>", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
281 assert_string_equal_free("x", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
282
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
283 purple_markup_html_to_xhtml("<underline>x</underline>", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
284 assert_string_equal_free("<span style='text-decoration: underline;'>x</span>", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
285 assert_string_equal_free("x", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
286
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
287 purple_markup_html_to_xhtml("<s>x</s>", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
288 assert_string_equal_free("<span style='text-decoration: line-through;'>x</span>", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
289 assert_string_equal_free("x", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
290
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
291 purple_markup_html_to_xhtml("<strike>x</strike>", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
292 assert_string_equal_free("<span style='text-decoration: line-through;'>x</span>", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
293 assert_string_equal_free("x", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
294
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
295 purple_markup_html_to_xhtml("<sub>x</sub>", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
296 assert_string_equal_free("<span style='vertical-align:sub;'>x</span>", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
297 assert_string_equal_free("x", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
298
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
299 purple_markup_html_to_xhtml("<sup>x</sup>", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
300 assert_string_equal_free("<span style='vertical-align:super;'>x</span>", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
301 assert_string_equal_free("x", 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
302
3e9734bf4422 Fix a corner case where purple_markup_html_to_xhtml generated malformed XHTML.
Paul Aurich <darkrain42@pidgin.im>
parents: 27727
diff changeset
303 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
304 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
305 assert_string_equal_free("x", plaintext);
33380
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
306
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
307 purple_markup_html_to_xhtml("<font face=\"'Times&gt;New & Roman'\">x</font>", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
308 assert_string_equal_free("x", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
309 assert_string_equal_free("<span style='font-family: \"Times&gt;New &amp; Roman\";'>x</span>", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
310
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
311 purple_markup_html_to_xhtml("<font back=\"'color&gt;blue&red'\">x</font>", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
312 assert_string_equal_free("x", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
313 assert_string_equal_free("<span style='background: \"color&gt;blue&amp;red\";'>x</span>", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
314
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
315 purple_markup_html_to_xhtml("<font color=\"'color&gt;blue&red'\">x</font>", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
316 assert_string_equal_free("x", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
317 assert_string_equal_free("<span style='color: \"color&gt;blue&amp;red\";'>x</span>", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
318
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
319 purple_markup_html_to_xhtml("<font size=1>x</font>", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
320 assert_string_equal_free("x", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
321 assert_string_equal_free("<span style='font-size: xx-small;'>x</span>", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
322
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
323 purple_markup_html_to_xhtml("<font size=432>x</font>", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
324 assert_string_equal_free("x", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
325 assert_string_equal_free("<span style='font-size: medium;'>x</span>", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
326
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
327 /* The following tests document a behaviour that looks suspicious */
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
328
35161
172e19e2289e Prefer https over http.
Mark Doliner <mark@kingant.net>
parents: 33510
diff changeset
329 /* bug report https://developer.pidgin.im/ticket/13485 */
33380
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
330 purple_markup_html_to_xhtml("<!--COMMENT-->", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
331 assert_string_equal_free("<!--COMMENT-->", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
332 assert_string_equal_free("COMMENT-->", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
333
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
334 /* no bug report */
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
335 purple_markup_html_to_xhtml("<br />", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
336 assert_string_equal_free("&lt;br />", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
337 assert_string_equal_free("<br />", plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
338
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
339 /* same code section as <br /> */
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
340 purple_markup_html_to_xhtml("<hr />", &xhtml, &plaintext);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
341 assert_string_equal_free("&lt;hr />", xhtml);
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
342 assert_string_equal_free("<hr />", plaintext);
20293
81d324f460bd applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16065
diff changeset
343 }
81d324f460bd applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16065
diff changeset
344 END_TEST
81d324f460bd applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16065
diff changeset
345
30143
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
346 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
347 {
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
348 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
349 /* 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
350 #if 0
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
351 /* 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
352 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
353 #endif
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
354 /* \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
355 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
356 /* 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
357 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
358 "\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
359 "\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
360 /* Basic ASCII */
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
361 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
362 /* 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
363 /* U+F1F7 */
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
364 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
365 #if 0
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
366 /* 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
367 /* 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
368 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
369 /* 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
370 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
371 #endif
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
372 /* 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
373 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
374 }
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
375 END_TEST
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
376
27481
472fc883fe3c * Use our assert_string_equal() macro instead of fail_unless(strcmp(), NULL)
Mark Doliner <markdoliner@pidgin.im>
parents: 26553
diff changeset
377 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
378 {
472fc883fe3c * Use our assert_string_equal() macro instead of fail_unless(strcmp(), NULL)
Mark Doliner <markdoliner@pidgin.im>
parents: 26553
diff changeset
379 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
380 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
381 }
472fc883fe3c * Use our assert_string_equal() macro instead of fail_unless(strcmp(), NULL)
Mark Doliner <markdoliner@pidgin.im>
parents: 26553
diff changeset
382 END_TEST
472fc883fe3c * Use our assert_string_equal() macro instead of fail_unless(strcmp(), NULL)
Mark Doliner <markdoliner@pidgin.im>
parents: 26553
diff changeset
383
32014
daedb1559529 A unit test check from the EFF
Mark Doliner <markdoliner@pidgin.im>
parents: 31484
diff changeset
384 START_TEST(test_strdup_withhtml)
daedb1559529 A unit test check from the EFF
Mark Doliner <markdoliner@pidgin.im>
parents: 31484
diff changeset
385 {
daedb1559529 A unit test check from the EFF
Mark Doliner <markdoliner@pidgin.im>
parents: 31484
diff changeset
386 gchar *result = purple_strdup_withhtml("hi\r\nthere\n");
daedb1559529 A unit test check from the EFF
Mark Doliner <markdoliner@pidgin.im>
parents: 31484
diff changeset
387 assert_string_equal_free("hi<BR>there<BR>", result);
daedb1559529 A unit test check from the EFF
Mark Doliner <markdoliner@pidgin.im>
parents: 31484
diff changeset
388 }
daedb1559529 A unit test check from the EFF
Mark Doliner <markdoliner@pidgin.im>
parents: 31484
diff changeset
389 END_TEST
daedb1559529 A unit test check from the EFF
Mark Doliner <markdoliner@pidgin.im>
parents: 31484
diff changeset
390
15104
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
391 Suite *
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
392 util_suite(void)
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
393 {
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
394 Suite *s = suite_create("Utility Functions");
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
395
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
396 TCase *tc = tcase_create("Base16");
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
397 tcase_add_test(tc, test_util_base16_encode);
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
398 tcase_add_test(tc, test_util_base16_decode);
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
399 suite_add_tcase(s, tc);
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
400
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
401 tc = tcase_create("Base64");
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
402 tcase_add_test(tc, test_util_base64_encode);
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
403 tcase_add_test(tc, test_util_base64_decode);
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
404 suite_add_tcase(s, tc);
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
405
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
406 tc = tcase_create("Filenames");
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
407 tcase_add_test(tc, test_util_escape_filename);
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
408 tcase_add_test(tc, test_util_unescape_filename);
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
409 suite_add_tcase(s, tc);
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
410
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
411 tc = tcase_create("Strip Mnemonic");
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
412 tcase_add_test(tc, test_util_text_strip_mnemonic);
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
413 suite_add_tcase(s, tc);
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
414
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
415 tc = tcase_create("Email");
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
416 tcase_add_test(tc, test_util_email_is_valid);
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
417 suite_add_tcase(s, tc);
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
418
27727
0c888674bbfc Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <darkrain42@pidgin.im>
parents: 27709
diff changeset
419 tc = tcase_create("IPv6");
0c888674bbfc Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <darkrain42@pidgin.im>
parents: 27709
diff changeset
420 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
421 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
422
16065
85316ed3bcc4 fix our string-to-time function, and add a couple tests for it
Nathan Walp <nwalp@pidgin.im>
parents: 15950
diff changeset
423 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
424 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
425 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
426
20293
81d324f460bd applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16065
diff changeset
427 tc = tcase_create("Markup");
81d324f460bd applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16065
diff changeset
428 tcase_add_test(tc, test_markup_html_to_xhtml);
81d324f460bd applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16065
diff changeset
429 suite_add_tcase(s, tc);
81d324f460bd applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16065
diff changeset
430
30143
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
431 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
432 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
433 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
434
27481
472fc883fe3c * Use our assert_string_equal() macro instead of fail_unless(strcmp(), NULL)
Mark Doliner <markdoliner@pidgin.im>
parents: 26553
diff changeset
435 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
436 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
437 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
438
32014
daedb1559529 A unit test check from the EFF
Mark Doliner <markdoliner@pidgin.im>
parents: 31484
diff changeset
439 tc = tcase_create("strdup_withhtml");
daedb1559529 A unit test check from the EFF
Mark Doliner <markdoliner@pidgin.im>
parents: 31484
diff changeset
440 tcase_add_test(tc, test_strdup_withhtml);
daedb1559529 A unit test check from the EFF
Mark Doliner <markdoliner@pidgin.im>
parents: 31484
diff changeset
441 suite_add_tcase(s, tc);
daedb1559529 A unit test check from the EFF
Mark Doliner <markdoliner@pidgin.im>
parents: 31484
diff changeset
442
15104
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
443 return s;
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
444 }

mercurial