Mon, 28 Feb 2011 09:19:34 +0000
Add two valid email addresses to this list
|
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 | 3 | #include "tests.h" |
| 4 | #include "../util.h" | |
| 5 | ||
| 6 | START_TEST(test_util_base16_encode) | |
| 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 | 9 | } |
| 10 | END_TEST | |
| 11 | ||
| 12 | START_TEST(test_util_base16_decode) | |
| 13 | { | |
| 14 | gsize sz = 0; | |
| 15884 | 15 | guchar *out = purple_base16_decode("21646c726f77202c6f6c6c656800", &sz); |
| 15104 | 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 | 18 | } |
| 19 | END_TEST | |
| 20 | ||
| 21 | START_TEST(test_util_base64_encode) | |
| 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 | 24 | } |
| 25 | END_TEST | |
| 26 | ||
| 27 | START_TEST(test_util_base64_decode) | |
| 28 | { | |
| 29 | gsize sz; | |
| 15884 | 30 | guchar *out = purple_base64_decode("b3d0LXl0cm9mAA==", &sz); |
| 15104 | 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 | 33 | } |
| 34 | END_TEST | |
| 35 | ||
| 36 | START_TEST(test_util_escape_filename) | |
| 37 | { | |
| 15884 | 38 | assert_string_equal("foo", purple_escape_filename("foo")); |
| 39 | assert_string_equal("@oo", purple_escape_filename("@oo")); | |
| 40 | assert_string_equal("#oo", purple_escape_filename("#oo")); | |
| 41 | assert_string_equal("-oo", purple_escape_filename("-oo")); | |
| 42 | assert_string_equal("_oo", purple_escape_filename("_oo")); | |
| 43 | assert_string_equal(".oo", purple_escape_filename(".oo")); | |
| 44 | assert_string_equal("%25oo", purple_escape_filename("%oo")); | |
| 45 | assert_string_equal("%21oo", purple_escape_filename("!oo")); | |
| 15104 | 46 | } |
| 47 | END_TEST | |
| 48 | ||
| 49 | START_TEST(test_util_unescape_filename) | |
| 50 | { | |
| 15884 | 51 | assert_string_equal("bar", purple_unescape_filename("bar")); |
| 52 | assert_string_equal("@ar", purple_unescape_filename("@ar")); | |
| 53 | assert_string_equal("!ar", purple_unescape_filename("!ar")); | |
| 54 | assert_string_equal("!ar", purple_unescape_filename("%21ar")); | |
| 55 | assert_string_equal("%ar", purple_unescape_filename("%25ar")); | |
| 15104 | 56 | } |
| 57 | END_TEST | |
| 58 | ||
| 59 | ||
| 60 | START_TEST(test_util_text_strip_mnemonic) | |
| 61 | { | |
| 15884 | 62 | assert_string_equal_free("", purple_text_strip_mnemonic("")); |
| 63 | assert_string_equal_free("foo", purple_text_strip_mnemonic("foo")); | |
| 64 | assert_string_equal_free("foo", purple_text_strip_mnemonic("_foo")); | |
| 15104 | 65 | |
| 66 | } | |
| 67 | END_TEST | |
| 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 | 126 | START_TEST(test_util_email_is_valid) |
| 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 | 135 | } |
| 136 | END_TEST | |
| 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; |
|
81d324f460bd
applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
16065
diff
changeset
|
170 | 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
|
171 | 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
|
172 | 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
|
173 | |
|
3e9734bf4422
Fix a corner case where purple_markup_html_to_xhtml generated malformed XHTML.
Paul Aurich <darkrain42@pidgin.im>
parents:
27727
diff
changeset
|
174 | |
|
3e9734bf4422
Fix a corner case where purple_markup_html_to_xhtml generated malformed XHTML.
Paul Aurich <darkrain42@pidgin.im>
parents:
27727
diff
changeset
|
175 | 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
|
176 | 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
|
177 | assert_string_equal_free("x", plaintext); |
|
20293
81d324f460bd
applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
16065
diff
changeset
|
178 | } |
|
81d324f460bd
applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
16065
diff
changeset
|
179 | END_TEST |
|
81d324f460bd
applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
16065
diff
changeset
|
180 | |
|
30143
468e3b69fd10
util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents:
29227
diff
changeset
|
181 | 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
|
182 | { |
|
468e3b69fd10
util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents:
29227
diff
changeset
|
183 | 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
|
184 | /* 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
|
185 | #if 0 |
|
468e3b69fd10
util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents:
29227
diff
changeset
|
186 | /* 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
|
187 | 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
|
188 | #endif |
|
468e3b69fd10
util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents:
29227
diff
changeset
|
189 | /* \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
|
190 | 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
|
191 | /* 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
|
192 | 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
|
193 | "\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
|
194 | "\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
|
195 | /* Basic ASCII */ |
|
468e3b69fd10
util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents:
29227
diff
changeset
|
196 | 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
|
197 | /* 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
|
198 | /* U+F1F7 */ |
|
468e3b69fd10
util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents:
29227
diff
changeset
|
199 | 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
|
200 | #if 0 |
|
468e3b69fd10
util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents:
29227
diff
changeset
|
201 | /* 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
|
202 | /* 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
|
203 | 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
|
204 | /* 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
|
205 | 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
|
206 | #endif |
|
468e3b69fd10
util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents:
29227
diff
changeset
|
207 | /* 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
|
208 | 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
|
209 | } |
|
468e3b69fd10
util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents:
29227
diff
changeset
|
210 | END_TEST |
|
468e3b69fd10
util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents:
29227
diff
changeset
|
211 | |
|
27481
472fc883fe3c
* Use our assert_string_equal() macro instead of fail_unless(strcmp(), NULL)
Mark Doliner <markdoliner@pidgin.im>
parents:
26553
diff
changeset
|
212 | 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
|
213 | { |
|
472fc883fe3c
* Use our assert_string_equal() macro instead of fail_unless(strcmp(), NULL)
Mark Doliner <markdoliner@pidgin.im>
parents:
26553
diff
changeset
|
214 | 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
|
215 | 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
|
216 | } |
|
472fc883fe3c
* Use our assert_string_equal() macro instead of fail_unless(strcmp(), NULL)
Mark Doliner <markdoliner@pidgin.im>
parents:
26553
diff
changeset
|
217 | END_TEST |
|
472fc883fe3c
* Use our assert_string_equal() macro instead of fail_unless(strcmp(), NULL)
Mark Doliner <markdoliner@pidgin.im>
parents:
26553
diff
changeset
|
218 | |
| 15104 | 219 | Suite * |
| 220 | util_suite(void) | |
| 221 | { | |
| 222 | Suite *s = suite_create("Utility Functions"); | |
| 223 | ||
| 224 | TCase *tc = tcase_create("Base16"); | |
| 225 | tcase_add_test(tc, test_util_base16_encode); | |
| 226 | tcase_add_test(tc, test_util_base16_decode); | |
| 227 | suite_add_tcase(s, tc); | |
| 228 | ||
| 229 | tc = tcase_create("Base64"); | |
| 230 | tcase_add_test(tc, test_util_base64_encode); | |
| 231 | tcase_add_test(tc, test_util_base64_decode); | |
| 232 | suite_add_tcase(s, tc); | |
| 233 | ||
| 234 | tc = tcase_create("Filenames"); | |
| 235 | tcase_add_test(tc, test_util_escape_filename); | |
| 236 | tcase_add_test(tc, test_util_unescape_filename); | |
| 237 | suite_add_tcase(s, tc); | |
| 238 | ||
| 239 | tc = tcase_create("Strip Mnemonic"); | |
| 240 | tcase_add_test(tc, test_util_text_strip_mnemonic); | |
| 241 | suite_add_tcase(s, tc); | |
| 242 | ||
| 243 | tc = tcase_create("Email"); | |
| 244 | tcase_add_test(tc, test_util_email_is_valid); | |
| 245 | suite_add_tcase(s, tc); | |
| 246 | ||
|
27727
0c888674bbfc
Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <darkrain42@pidgin.im>
parents:
27709
diff
changeset
|
247 | tc = tcase_create("IPv6"); |
|
0c888674bbfc
Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <darkrain42@pidgin.im>
parents:
27709
diff
changeset
|
248 | 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
|
249 | 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
|
250 | |
|
16065
85316ed3bcc4
fix our string-to-time function, and add a couple tests for it
Nathan Walp <nwalp@pidgin.im>
parents:
15950
diff
changeset
|
251 | 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
|
252 | 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
|
253 | 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
|
254 | |
|
20293
81d324f460bd
applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
16065
diff
changeset
|
255 | tc = tcase_create("Markup"); |
|
81d324f460bd
applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
16065
diff
changeset
|
256 | tcase_add_test(tc, test_markup_html_to_xhtml); |
|
81d324f460bd
applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
16065
diff
changeset
|
257 | suite_add_tcase(s, tc); |
|
81d324f460bd
applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
16065
diff
changeset
|
258 | |
|
30143
468e3b69fd10
util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents:
29227
diff
changeset
|
259 | 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
|
260 | 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
|
261 | 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
|
262 | |
|
27481
472fc883fe3c
* Use our assert_string_equal() macro instead of fail_unless(strcmp(), NULL)
Mark Doliner <markdoliner@pidgin.im>
parents:
26553
diff
changeset
|
263 | 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
|
264 | 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
|
265 | 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
|
266 | |
| 15104 | 267 | return s; |
| 268 | } |