libpurple/tests/test_util.c

Sat, 22 Aug 2020 02:58:07 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Sat, 22 Aug 2020 02:58:07 -0500
changeset 40516
fefaa6596e74
parent 40358
e6fe6fc1f516
child 40519
974dbfd7e52f
permissions
-rw-r--r--

Remove the Gtk Ticker plugin as it doesn't scale to today's IM networks

Remove the ticker plugin as it doesn't scale to todays typical IM usage.

Testing Done:
Compile and install.

Reviewed at https://reviews.imfreedom.org/r/81/

38057
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37601
diff changeset
1 /*
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37601
diff changeset
2 * purple
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37601
diff changeset
3 *
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37601
diff changeset
4 * Purple is the legal property of its developers, whose names are too numerous
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37601
diff changeset
5 * to list here. Please refer to the COPYRIGHT file distributed with this
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37601
diff changeset
6 * source distribution.
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37601
diff changeset
7 *
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37601
diff changeset
8 * This program is free software; you can redistribute it and/or modify
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37601
diff changeset
9 * it under the terms of the GNU General Public License as published by
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37601
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37601
diff changeset
11 * (at your option) any later version.
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37601
diff changeset
12 *
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37601
diff changeset
13 * This program is distributed in the hope that it will be useful,
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37601
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37601
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37601
diff changeset
16 * GNU General Public License for more details.
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37601
diff changeset
17 *
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37601
diff changeset
18 * You should have received a copy of the GNU General Public License
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37601
diff changeset
19 * along with this program; if not, write to the Free Software
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37601
diff changeset
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37601
diff changeset
21 *
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37601
diff changeset
22 */
37600
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
23 #include <glib.h>
15950
0f01bb61c5d3 Fix compiler warnings and errors in tests resulting from using DEBUG_CFLAGS
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15884
diff changeset
24
40358
e6fe6fc1f516 move all protocols, purple plugins, and purple tests to use purple.h instead of including files individually
Gary Kramlich <grim@reaperworld.com>
parents: 39987
diff changeset
25 #include <purple.h>
15104
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
26
37600
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
27 /******************************************************************************
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
28 * base 16 tests
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
29 *****************************************************************************/
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
30 static void
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
31 test_util_base_16_encode(void) {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
32 gchar *in = purple_base16_encode((const guchar *)"hello, world!", 14);
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
33 g_assert_cmpstr("68656c6c6f2c20776f726c642100", ==, in);
15104
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
34 }
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
35
37600
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
36 static void
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
37 test_util_base_16_decode(void) {
15104
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
38 gsize sz = 0;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
39 guchar *out = purple_base16_decode("21646c726f77202c6f6c6c656800", &sz);
15104
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
40
37600
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
41 g_assert_cmpint(sz, ==, 14);
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
42 g_assert_cmpstr("!dlrow ,olleh", ==, (const gchar *)out);
15104
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
43 }
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
44
37600
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
45 /******************************************************************************
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
46 * filename escape tests
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
47 *****************************************************************************/
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
48 static void
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
49 test_util_filename_escape(void) {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
50 g_assert_cmpstr("foo", ==, purple_escape_filename("foo"));
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
51 g_assert_cmpstr("@oo", ==, purple_escape_filename("@oo"));
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
52 g_assert_cmpstr("#oo", ==, purple_escape_filename("#oo"));
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
53 g_assert_cmpstr("-oo", ==, purple_escape_filename("-oo"));
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
54 g_assert_cmpstr("_oo", ==, purple_escape_filename("_oo"));
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
55 g_assert_cmpstr(".oo", ==, purple_escape_filename(".oo"));
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
56 g_assert_cmpstr("%25oo", ==, purple_escape_filename("%oo"));
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
57 g_assert_cmpstr("%21oo", ==, purple_escape_filename("!oo"));
15104
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
37600
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
60 static void
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
61 test_util_filename_unescape(void) {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
62 g_assert_cmpstr("bar", ==, purple_unescape_filename("bar"));
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
63 g_assert_cmpstr("@ar", ==, purple_unescape_filename("@ar"));
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
64 g_assert_cmpstr("!ar", ==, purple_unescape_filename("!ar"));
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
65 g_assert_cmpstr("!ar", ==, purple_unescape_filename("%21ar"));
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
66 g_assert_cmpstr("%ar", ==, purple_unescape_filename("%25ar"));
15104
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
67 }
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
68
37600
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
69 /******************************************************************************
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
70 * text_strip tests
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
71 *****************************************************************************/
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
72 static void
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
73 test_util_text_strip_mnemonic(void) {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
74 g_assert_cmpstr("", ==, purple_text_strip_mnemonic(""));
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
75 g_assert_cmpstr("foo", ==, purple_text_strip_mnemonic("foo"));
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
76 g_assert_cmpstr("foo", ==, purple_text_strip_mnemonic("_foo"));
15104
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
77
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
78 }
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
79
37600
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
80 /******************************************************************************
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
81 * email tests
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
82 *****************************************************************************/
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
83 /*
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
84 * 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
85 * 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
86 */
37600
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
87 const gchar *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
88 "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
89 "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
90 "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
91 "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
92 "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
93 "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
94 "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
95 "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
96 "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
97 "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
98 "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
99 "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
100 /* "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
101 "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
102 "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
103 "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
104 "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
105 "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
106 "&*=?^+{}'~@validCharsInLocal.net",
31484
b7cfae50e10c Add two valid email addresses to this list
Mark Doliner <markdoliner@pidgin.im>
parents: 31232
diff changeset
107 "foor@bar.newTLD",
b7cfae50e10c Add two valid email addresses to this list
Mark Doliner <markdoliner@pidgin.im>
parents: 31232
diff changeset
108 "HenryTheGreatWhiteCricket@live.ca",
b7cfae50e10c Add two valid email addresses to this list
Mark Doliner <markdoliner@pidgin.im>
parents: 31232
diff changeset
109 "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
110 };
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
37600
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
112 static void
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
113 test_util_email_is_valid(void) {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
114 size_t i;
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
115
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
116 for (i = 0; i < G_N_ELEMENTS(valid_emails); i++)
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
117 g_assert_true(purple_email_is_valid(valid_emails[i]));
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
118 }
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
119
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
120 const gchar *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
121 "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
122 "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
123 "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
124 "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
125 "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
126 "@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
127 "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
128 "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
129 "@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
130 "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
131 "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
132 "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
133 "colonButNoPort@127.0.0.1:",
36049
bffbd724134d Fix CWE-252 coverity issues
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35297
diff changeset
134 "",
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
135 /* "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
136 ".localStartsWithDot@domain.com",
d871c3fd6637 Catch some more invalid email addresses, thanks to Mark for additional
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 30442
diff changeset
137 /* "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
138 /* "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
139 "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
140 "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
141 /* "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
142 /* "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
143 "! \"#$%(),/;<>[]`|@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
144 "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
145 /* "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
146 };
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
147
37600
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
148 static void
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
149 test_util_email_is_invalid(void) {
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
150 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
151
4ec59d547bff Expand our test for purple_email_is_valid(). I stumbled across a large list
Mark Doliner <markdoliner@pidgin.im>
parents: 30149
diff changeset
152 for (i = 0; i < G_N_ELEMENTS(invalid_emails); i++)
37600
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
153 g_assert_false(purple_email_is_valid(invalid_emails[i]));
15104
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
154 }
37600
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
155
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
156 /******************************************************************************
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
157 * str_to_time tests
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
158 *****************************************************************************/
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
159 static void
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
160 test_util_str_to_time(void) {
35181
e5c1b7f9486d Fix purple_str_to_time() again.
Richard Laager <rlaager@pidgin.im>
parents: 32014
diff changeset
161 struct tm tm;
37600
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
162 glong tz_off;
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
163 const gchar *rest;
35181
e5c1b7f9486d Fix purple_str_to_time() again.
Richard Laager <rlaager@pidgin.im>
parents: 32014
diff changeset
164 time_t timestamp;
e5c1b7f9486d Fix purple_str_to_time() again.
Richard Laager <rlaager@pidgin.im>
parents: 32014
diff changeset
165
37600
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
166 g_assert_cmpint(377182200, ==, purple_str_to_time("19811214T12:50:00", TRUE, NULL, NULL, NULL));
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
167 g_assert_cmpint(1175919261, ==, purple_str_to_time("20070407T04:14:21", TRUE, NULL, NULL, NULL));
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
168 g_assert_cmpint(1282941722, ==, purple_str_to_time("2010-08-27.204202", TRUE, NULL, NULL, NULL));
35181
e5c1b7f9486d Fix purple_str_to_time() again.
Richard Laager <rlaager@pidgin.im>
parents: 32014
diff changeset
169
e5c1b7f9486d Fix purple_str_to_time() again.
Richard Laager <rlaager@pidgin.im>
parents: 32014
diff changeset
170 timestamp = purple_str_to_time("2010-08-27.134202-0700PDT", FALSE, &tm, &tz_off, &rest);
37600
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
171 g_assert_cmpint(1282941722, ==, timestamp);
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
172 g_assert_cmpint((-7 * 60 * 60), ==, tz_off);
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
173 g_assert_cmpstr("PDT", ==, rest);
16065
85316ed3bcc4 fix our string-to-time function, and add a couple tests for it
Nathan Walp <nwalp@pidgin.im>
parents: 15950
diff changeset
174 }
85316ed3bcc4 fix our string-to-time function, and add a couple tests for it
Nathan Walp <nwalp@pidgin.im>
parents: 15950
diff changeset
175
37600
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
176 /******************************************************************************
38619
2121337626ee Add purple_str_to_date_time.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38341
diff changeset
177 * str_to_date_time tests
2121337626ee Add purple_str_to_date_time.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38341
diff changeset
178 *****************************************************************************/
2121337626ee Add purple_str_to_date_time.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38341
diff changeset
179 static void
2121337626ee Add purple_str_to_date_time.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38341
diff changeset
180 test_util_str_to_date_time(void)
20293
81d324f460bd applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16065
diff changeset
181 {
38619
2121337626ee Add purple_str_to_date_time.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38341
diff changeset
182 GDateTime *dt;
2121337626ee Add purple_str_to_date_time.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38341
diff changeset
183
2121337626ee Add purple_str_to_date_time.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38341
diff changeset
184 dt = purple_str_to_date_time("19811214T12:50:00", TRUE);
2121337626ee Add purple_str_to_date_time.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38341
diff changeset
185 g_assert_cmpint(377182200, ==, g_date_time_to_unix(dt));
2121337626ee Add purple_str_to_date_time.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38341
diff changeset
186 g_assert_cmpint(0, ==, g_date_time_get_utc_offset(dt));
2121337626ee Add purple_str_to_date_time.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38341
diff changeset
187 g_date_time_unref(dt);
2121337626ee Add purple_str_to_date_time.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38341
diff changeset
188
38624
dcd42461c1a8 Fix parsing of date time microseconds.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38619
diff changeset
189 dt = purple_str_to_date_time("20070407T04:14:21.1234", TRUE);
38619
2121337626ee Add purple_str_to_date_time.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38341
diff changeset
190 g_assert_cmpint(1175919261, ==, g_date_time_to_unix(dt));
2121337626ee Add purple_str_to_date_time.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38341
diff changeset
191 g_assert_cmpint(0, ==, g_date_time_get_utc_offset(dt));
38624
dcd42461c1a8 Fix parsing of date time microseconds.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38619
diff changeset
192 g_assert_cmpint(123400, ==, g_date_time_get_microsecond(dt));
38619
2121337626ee Add purple_str_to_date_time.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38341
diff changeset
193 g_date_time_unref(dt);
2121337626ee Add purple_str_to_date_time.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38341
diff changeset
194
2121337626ee Add purple_str_to_date_time.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38341
diff changeset
195 dt = purple_str_to_date_time("2010-08-27.204202", TRUE);
2121337626ee Add purple_str_to_date_time.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38341
diff changeset
196 g_assert_cmpint(1282941722, ==, g_date_time_to_unix(dt));
2121337626ee Add purple_str_to_date_time.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38341
diff changeset
197 g_assert_cmpint(0, ==, g_date_time_get_utc_offset(dt));
2121337626ee Add purple_str_to_date_time.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38341
diff changeset
198 g_date_time_unref(dt);
29227
3e9734bf4422 Fix a corner case where purple_markup_html_to_xhtml generated malformed XHTML.
Paul Aurich <darkrain42@pidgin.im>
parents: 27727
diff changeset
199
38624
dcd42461c1a8 Fix parsing of date time microseconds.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38619
diff changeset
200 dt = purple_str_to_date_time("2010-08-27.204202.123456", TRUE);
dcd42461c1a8 Fix parsing of date time microseconds.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38619
diff changeset
201 g_assert_cmpint(1282941722, ==, g_date_time_to_unix(dt));
dcd42461c1a8 Fix parsing of date time microseconds.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38619
diff changeset
202 g_assert_cmpint(0, ==, g_date_time_get_utc_offset(dt));
dcd42461c1a8 Fix parsing of date time microseconds.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38619
diff changeset
203 g_assert_cmpint(123456, ==, g_date_time_get_microsecond(dt));
dcd42461c1a8 Fix parsing of date time microseconds.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38619
diff changeset
204 g_date_time_unref(dt);
dcd42461c1a8 Fix parsing of date time microseconds.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38619
diff changeset
205
38619
2121337626ee Add purple_str_to_date_time.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38341
diff changeset
206 dt = purple_str_to_date_time("2010-08-27.134202-0700PDT", FALSE);
2121337626ee Add purple_str_to_date_time.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38341
diff changeset
207 g_assert_cmpint(1282941722, ==, g_date_time_to_unix(dt));
2121337626ee Add purple_str_to_date_time.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38341
diff changeset
208 g_assert_cmpint((-7LL * 60 * 60 * G_USEC_PER_SEC), ==, g_date_time_get_utc_offset(dt));
38624
dcd42461c1a8 Fix parsing of date time microseconds.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38619
diff changeset
209
dcd42461c1a8 Fix parsing of date time microseconds.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38619
diff changeset
210 dt = purple_str_to_date_time("2010-08-27.134202.1234-0700PDT", FALSE);
dcd42461c1a8 Fix parsing of date time microseconds.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38619
diff changeset
211 g_assert_cmpint(1282941722, ==, g_date_time_to_unix(dt));
dcd42461c1a8 Fix parsing of date time microseconds.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38619
diff changeset
212 g_assert_cmpint(123400, ==, g_date_time_get_microsecond(dt));
dcd42461c1a8 Fix parsing of date time microseconds.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38619
diff changeset
213 g_assert_cmpint((-7LL * 60 * 60 * G_USEC_PER_SEC), ==, g_date_time_get_utc_offset(dt));
38619
2121337626ee Add purple_str_to_date_time.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38341
diff changeset
214 }
2121337626ee Add purple_str_to_date_time.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38341
diff changeset
215
2121337626ee Add purple_str_to_date_time.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38341
diff changeset
216 /******************************************************************************
37600
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
217 * Markup tests
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
218 *****************************************************************************/
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
219 typedef struct {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
220 gchar *markup;
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
221 gchar *xhtml;
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
222 gchar *plaintext;
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
223 } MarkupTestData;
29227
3e9734bf4422 Fix a corner case where purple_markup_html_to_xhtml generated malformed XHTML.
Paul Aurich <darkrain42@pidgin.im>
parents: 27727
diff changeset
224
37600
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
225 static void
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
226 test_util_markup_html_to_xhtml(void) {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
227 gint i;
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
228 MarkupTestData data[] = {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
229 {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
230 "<a>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
231 "<a href=\"\"></a>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
232 "",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
233 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
234 "<A href='URL'>ABOUT</a>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
235 "<a href=\"URL\">ABOUT</a>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
236 "ABOUT <URL>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
237 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
238 "<a href='URL'>URL</a>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
239 "<a href=\"URL\">URL</a>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
240 "URL",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
241 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
242 "<a href='mailto:mail'>mail</a>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
243 "<a href=\"mailto:mail\">mail</a>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
244 "mail",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
245 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
246 "<A href='\"U&apos;R&L'>ABOUT</a>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
247 "<a href=\"&quot;U&apos;R&amp;L\">ABOUT</a>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
248 "ABOUT <\"U'R&L>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
249 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
250 "<img src='SRC' alt='ALT'/>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
251 "<img src='SRC' alt='ALT' />",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
252 "ALT",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
253 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
254 "<img src=\"'S&apos;R&C\" alt=\"'A&apos;L&T\"/>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
255 "<img src='&apos;S&apos;R&amp;C' alt='&apos;A&apos;L&amp;T' />",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
256 "'A'L&T",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
257 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
258 "<unknown>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
259 "&lt;unknown>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
260 "<unknown>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
261 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
262 "&eacute;&amp;",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
263 "&eacute;&amp;",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
264 "&eacute;&",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
265 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
266 "<h1>A<h2>B</h2>C</h1>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
267 "<h1>A<h2>B</h2>C</h1>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
268 "ABC",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
269 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
270 "<h1><h2><h3><h4>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
271 "<h1><h2><h3><h4></h4></h3></h2></h1>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
272 "",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
273 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
274 "<italic/>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
275 "<em/>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
276 "",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
277 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
278 "</",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
279 "&lt;/",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
280 "</",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
281 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
282 "</div>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
283 "",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
284 "",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
285 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
286 "<hr/>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
287 "<br/>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
288 "\n",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
289 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
290 "<hr>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
291 "<br/>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
292 "\n",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
293 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
294 "<br />",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
295 "<br/>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
296 "\n",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
297 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
298 "<br>INSIDE</br>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
299 "<br/>INSIDE",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
300 "\nINSIDE",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
301 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
302 "<div></div>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
303 "<div></div>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
304 "",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
305 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
306 "<div/>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
307 "<div/>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
308 "",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
309 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
310 "<div attr='\"&<>'/>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
311 "<div attr='&quot;&amp;&lt;&gt;'/>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
312 "",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
313 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
314 "<div attr=\"'\"/>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
315 "<div attr=\"&apos;\"/>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
316 "",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
317 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
318 "<div/> < <div/>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
319 "<div/> &lt; <div/>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
320 " < ",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
321 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
322 "<div>x</div>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
323 "<div>x</div>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
324 "x",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
325 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
326 "<b>x</b>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
327 "<span style='font-weight: bold;'>x</span>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
328 "x",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
329 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
330 "<bold>x</bold>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
331 "<span style='font-weight: bold;'>x</span>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
332 "x",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
333 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
334 "<strong>x</strong>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
335 "<span style='font-weight: bold;'>x</span>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
336 "x",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
337 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
338 "<u>x</u>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
339 "<span style='text-decoration: underline;'>x</span>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
340 "x",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
341 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
342 "<underline>x</underline>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
343 "<span style='text-decoration: underline;'>x</span>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
344 "x",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
345 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
346 "<s>x</s>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
347 "<span style='text-decoration: line-through;'>x</span>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
348 "x",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
349 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
350 "<strike>x</strike>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
351 "<span style='text-decoration: line-through;'>x</span>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
352 "x",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
353 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
354 "<sub>x</sub>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
355 "<span style='vertical-align:sub;'>x</span>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
356 "x",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
357 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
358 "<sup>x</sup>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
359 "<span style='vertical-align:super;'>x</span>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
360 "x",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
361 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
362 "<FONT>x</FONT>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
363 "x",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
364 "x",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
365 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
366 "<font face=\"'Times&gt;New & Roman'\">x</font>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
367 "<span style='font-family: \"Times&gt;New &amp; Roman\";'>x</span>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
368 "x",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
369 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
370 "<font back=\"'color&gt;blue&red'\">x</font>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
371 "<span style='background: \"color&gt;blue&amp;red\";'>x</span>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
372 "x",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
373 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
374 "<font color=\"'color&gt;blue&red'\">x</font>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
375 "<span style='color: \"color&gt;blue&amp;red\";'>x</span>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
376 "x",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
377 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
378 "<font size=1>x</font>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
379 "<span style='font-size: xx-small;'>x</span>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
380 "x",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
381 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
382 "<font size=432>x</font>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
383 "<span style='font-size: medium;'>x</span>",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
384 "x",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
385 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
386 "<!--COMMENT-->",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
387 "<!--COMMENT-->",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
388 "COMMENT-->",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
389 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
390 "<br />",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
391 "&lt;br />",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
392 "<br />",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
393 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
394 "<hr />",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
395 "&lt;hr />",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
396 "<hr />"
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
397 }, {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
398 NULL, NULL, NULL,
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
399 }
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
400 };
20293
81d324f460bd applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16065
diff changeset
401
37600
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
402 for(i = 0; data[i].markup; i++) {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
403 gchar *xhtml = NULL, *plaintext = NULL;
33380
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
404
37600
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
405 purple_markup_html_to_xhtml(data[i].markup, &xhtml, &plaintext);
33380
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
406
37600
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
407 g_assert_cmpstr(data[i].xhtml, ==, xhtml);
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
408 g_free(xhtml);
33380
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
409
37600
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
410 g_assert_cmpstr(data[i].plaintext, ==, plaintext);
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
411 g_free(plaintext);
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
412 }
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
413 }
33380
c600a505402d patch from loic to fix some bad html -> xhtml conversion
Nathan Walp <nwalp@pidgin.im>
parents: 32014
diff changeset
414
37601
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
415 /******************************************************************************
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
416 * UTF8 tests
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
417 *****************************************************************************/
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
418 typedef struct {
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
419 gchar *input;
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
420 gchar *output;
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
421 } UTF8TestData;
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
422
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
423 static void
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
424 test_util_utf8_strip_unprintables(void) {
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
425 gint i;
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
426 UTF8TestData data[] = {
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
427 {
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
428 /* \t, \n, \r, space */
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
429 "ab \tcd\nef\r ",
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
430 "ab \tcd\nef\r ",
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
431 }, {
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
432 /* ASCII control characters (stripped) */
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
433 "\x01\x02\x03\x04\x05\x06\x07\x08\x0B\x0C\x0E\x0F\x10 aaaa "
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
434 "\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F",
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
435 " aaaa ",
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
436 }, {
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
437 /* Basic ASCII */
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
438 "Foobar",
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
439 "Foobar",
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
440 }, {
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
441 /* 0xE000 - 0xFFFD (UTF-8 encoded) */
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
442 /* U+F1F7 */
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
443 "aaaa\xef\x87\xb7",
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
444 "aaaa\xef\x87\xb7",
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
445 }, {
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
446 /* U+FEFF (should not be stripped) */
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
447 "aaaa\xef\xbb\xbf",
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
448 "aaaa\xef\xbb\xbf",
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
449 }, {
38813
9506fb3fe6a2 Remove #if 0's from libpurple
Gary Kramlich <grim@reaperworld.com>
parents: 38748
diff changeset
450 /* U+FFFE (should be stripped) */
9506fb3fe6a2 Remove #if 0's from libpurple
Gary Kramlich <grim@reaperworld.com>
parents: 38748
diff changeset
451 "aaaa\xef\xbf\xbe",
9506fb3fe6a2 Remove #if 0's from libpurple
Gary Kramlich <grim@reaperworld.com>
parents: 38748
diff changeset
452 "aaaa",
9506fb3fe6a2 Remove #if 0's from libpurple
Gary Kramlich <grim@reaperworld.com>
parents: 38748
diff changeset
453 }, {
37601
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
454 NULL,
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
455 NULL,
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
456 }
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
457 };
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
458
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
459 for(i = 0; ; i++) {
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
460 gchar *result = purple_utf8_strip_unprintables(data[i].input);
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
461
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
462 g_assert_cmpstr(data[i].output, ==, result);
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
463
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
464 g_free(result);
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
465
38813
9506fb3fe6a2 Remove #if 0's from libpurple
Gary Kramlich <grim@reaperworld.com>
parents: 38748
diff changeset
466 /* NULL as input is a valid test, but it's the last test, so we break
9506fb3fe6a2 Remove #if 0's from libpurple
Gary Kramlich <grim@reaperworld.com>
parents: 38748
diff changeset
467 * after it.
9506fb3fe6a2 Remove #if 0's from libpurple
Gary Kramlich <grim@reaperworld.com>
parents: 38748
diff changeset
468 */
37601
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
469 if(data[i].input == NULL)
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
470 break;
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
471 }
30143
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
472 }
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
473
37601
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
474 /******************************************************************************
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
475 * strdup_withhtml tests
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
476 *****************************************************************************/
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
477 static void
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
478 test_util_strdup_withhtml(void) {
32014
daedb1559529 A unit test check from the EFF
Mark Doliner <markdoliner@pidgin.im>
parents: 31484
diff changeset
479 gchar *result = purple_strdup_withhtml("hi\r\nthere\n");
37601
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
480
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
481 g_assert_cmpstr("hi<BR>there<BR>", ==, result);
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
482
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
483 g_free(result);
32014
daedb1559529 A unit test check from the EFF
Mark Doliner <markdoliner@pidgin.im>
parents: 31484
diff changeset
484 }
daedb1559529 A unit test check from the EFF
Mark Doliner <markdoliner@pidgin.im>
parents: 31484
diff changeset
485
37601
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
486 /******************************************************************************
38748
17f8a2a8ccba Merged release-2.x.y into default
Gary Kramlich <grim@reaperworld.com>
parents: 38624 38737
diff changeset
487 * URI Escaping
17f8a2a8ccba Merged release-2.x.y into default
Gary Kramlich <grim@reaperworld.com>
parents: 38624 38737
diff changeset
488 *****************************************************************************/
17f8a2a8ccba Merged release-2.x.y into default
Gary Kramlich <grim@reaperworld.com>
parents: 38624 38737
diff changeset
489 static void
17f8a2a8ccba Merged release-2.x.y into default
Gary Kramlich <grim@reaperworld.com>
parents: 38624 38737
diff changeset
490 test_uri_escape_for_open(void) {
38737
d85c241e3183 Add unit tests for xdg-open URI escaping
Daniel Kamil Kozar <dkk089@gmail.com>
parents: 35181
diff changeset
491 /* make sure shell stuff is escaped... */
d85c241e3183 Add unit tests for xdg-open URI escaping
Daniel Kamil Kozar <dkk089@gmail.com>
parents: 35181
diff changeset
492 gchar *result = purple_uri_escape_for_open("https://$(xterm)");
38748
17f8a2a8ccba Merged release-2.x.y into default
Gary Kramlich <grim@reaperworld.com>
parents: 38624 38737
diff changeset
493 g_assert_cmpstr("https://%24%28xterm%29", ==, result);
17f8a2a8ccba Merged release-2.x.y into default
Gary Kramlich <grim@reaperworld.com>
parents: 38624 38737
diff changeset
494 g_free(result);
38737
d85c241e3183 Add unit tests for xdg-open URI escaping
Daniel Kamil Kozar <dkk089@gmail.com>
parents: 35181
diff changeset
495
d85c241e3183 Add unit tests for xdg-open URI escaping
Daniel Kamil Kozar <dkk089@gmail.com>
parents: 35181
diff changeset
496 result = purple_uri_escape_for_open("https://`xterm`");
38748
17f8a2a8ccba Merged release-2.x.y into default
Gary Kramlich <grim@reaperworld.com>
parents: 38624 38737
diff changeset
497 g_assert_cmpstr("https://%60xterm%60", ==, result);
17f8a2a8ccba Merged release-2.x.y into default
Gary Kramlich <grim@reaperworld.com>
parents: 38624 38737
diff changeset
498 g_free(result);
38737
d85c241e3183 Add unit tests for xdg-open URI escaping
Daniel Kamil Kozar <dkk089@gmail.com>
parents: 35181
diff changeset
499
d85c241e3183 Add unit tests for xdg-open URI escaping
Daniel Kamil Kozar <dkk089@gmail.com>
parents: 35181
diff changeset
500 result = purple_uri_escape_for_open("https://$((25 + 13))");
38748
17f8a2a8ccba Merged release-2.x.y into default
Gary Kramlich <grim@reaperworld.com>
parents: 38624 38737
diff changeset
501 g_assert_cmpstr("https://%24%28%2825%20+%2013%29%29", ==, result);
17f8a2a8ccba Merged release-2.x.y into default
Gary Kramlich <grim@reaperworld.com>
parents: 38624 38737
diff changeset
502 g_free(result);
38737
d85c241e3183 Add unit tests for xdg-open URI escaping
Daniel Kamil Kozar <dkk089@gmail.com>
parents: 35181
diff changeset
503
d85c241e3183 Add unit tests for xdg-open URI escaping
Daniel Kamil Kozar <dkk089@gmail.com>
parents: 35181
diff changeset
504 /* ...but keep brackets so that ipv6 links can be opened. */
d85c241e3183 Add unit tests for xdg-open URI escaping
Daniel Kamil Kozar <dkk089@gmail.com>
parents: 35181
diff changeset
505 result = purple_uri_escape_for_open("https://[123:4567:89a::::]");
38748
17f8a2a8ccba Merged release-2.x.y into default
Gary Kramlich <grim@reaperworld.com>
parents: 38624 38737
diff changeset
506 g_assert_cmpstr("https://[123:4567:89a::::]", ==, result);
17f8a2a8ccba Merged release-2.x.y into default
Gary Kramlich <grim@reaperworld.com>
parents: 38624 38737
diff changeset
507 g_free(result);
38737
d85c241e3183 Add unit tests for xdg-open URI escaping
Daniel Kamil Kozar <dkk089@gmail.com>
parents: 35181
diff changeset
508 }
d85c241e3183 Add unit tests for xdg-open URI escaping
Daniel Kamil Kozar <dkk089@gmail.com>
parents: 35181
diff changeset
509
38748
17f8a2a8ccba Merged release-2.x.y into default
Gary Kramlich <grim@reaperworld.com>
parents: 38624 38737
diff changeset
510 /******************************************************************************
37601
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
511 * MANE
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
512 *****************************************************************************/
37600
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
513 gint
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
514 main(gint argc, gchar **argv) {
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
515 g_test_init(&argc, &argv, NULL);
15104
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
516
37600
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
517 g_test_add_func("/util/base/16/encode",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
518 test_util_base_16_encode);
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
519 g_test_add_func("/util/base/16/decode",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
520 test_util_base_16_decode);
15104
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
521
37600
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
522 g_test_add_func("/util/filename/escape",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
523 test_util_filename_escape);
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
524 g_test_add_func("/util/filename/unescape",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
525 test_util_filename_unescape);
15104
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
526
37600
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
527 g_test_add_func("/util/mnemonic/strip",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
528 test_util_text_strip_mnemonic);
15104
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
529
37600
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
530 g_test_add_func("/util/email/is valid",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
531 test_util_email_is_valid);
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
532 g_test_add_func("/util/email/is invalid",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
533 test_util_email_is_invalid);
15104
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
534
37600
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
535 g_test_add_func("/util/str to time",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
536 test_util_str_to_time);
16065
85316ed3bcc4 fix our string-to-time function, and add a couple tests for it
Nathan Walp <nwalp@pidgin.im>
parents: 15950
diff changeset
537
38619
2121337626ee Add purple_str_to_date_time.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38341
diff changeset
538 g_test_add_func("/util/str to date time",
2121337626ee Add purple_str_to_date_time.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38341
diff changeset
539 test_util_str_to_date_time);
2121337626ee Add purple_str_to_date_time.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38341
diff changeset
540
37600
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
541 g_test_add_func("/util/markup/html to xhtml",
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
542 test_util_markup_html_to_xhtml);
20293
81d324f460bd applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16065
diff changeset
543
37601
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
544 g_test_add_func("/util/utf8/strip unprintables",
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
545 test_util_utf8_strip_unprintables);
30143
468e3b69fd10 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <darkrain42@pidgin.im>
parents: 29227
diff changeset
546
37601
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
547 g_test_add_func("/util/test_strdup_withhtml",
bf18c71d8508 Finish up the util unit tests
Gary Kramlich <grim@reaperworld.com>
parents: 37600
diff changeset
548 test_util_strdup_withhtml);
32014
daedb1559529 A unit test check from the EFF
Mark Doliner <markdoliner@pidgin.im>
parents: 31484
diff changeset
549
38748
17f8a2a8ccba Merged release-2.x.y into default
Gary Kramlich <grim@reaperworld.com>
parents: 38624 38737
diff changeset
550 g_test_add_func("/util/test_uri_escape_for_open",
17f8a2a8ccba Merged release-2.x.y into default
Gary Kramlich <grim@reaperworld.com>
parents: 38624 38737
diff changeset
551 test_uri_escape_for_open);
38737
d85c241e3183 Add unit tests for xdg-open URI escaping
Daniel Kamil Kozar <dkk089@gmail.com>
parents: 35181
diff changeset
552
37600
fce4d896285e Add a bunch of util tests
Gary Kramlich <grim@reaperworld.com>
parents: 36049
diff changeset
553 return g_test_run();
15104
d71bd6517e5e [gaim-migrate @ 17825]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
554 }

mercurial