annotate libpurple/tests/test_util.c @ 29852:5bac51b394e6

util: Better validation of the allowed character values in XML 1.0 From http://www.w3.org/TR/2000/REC-xml-20001006#NT-Char. Refs #11257 This doesn't actually make a difference, because I think all the invalid ranges aren't valid UTF-8 and so g_utf8_validate catches them.
author Paul Aurich <paul@darkrain42.org>
date Thu, 29 Apr 2010 17:17:00 +0000
parents 68bc7c617fa0
children 702ea988070c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15888
6577b292e7b4 Fix compiler warnings and errors in tests resulting from using DEBUG_CFLAGS
Stu Tomlinson <stu@nosnilmot.com>
parents: 15822
diff changeset
1 #include <string.h>
6577b292e7b4 Fix compiler warnings and errors in tests resulting from using DEBUG_CFLAGS
Stu Tomlinson <stu@nosnilmot.com>
parents: 15822
diff changeset
2
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3 #include "tests.h"
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4 #include "../util.h"
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6 START_TEST(test_util_base16_encode)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7 {
26219
ba1799f21383 Cast away a few compile warnings in our "make check" tests, and add
Mark Doliner <mark@kingant.net>
parents: 22199
diff changeset
8 assert_string_equal_free("68656c6c6f2c20776f726c642100", purple_base16_encode((const unsigned char *)"hello, world!", 14));
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
9 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
10 END_TEST
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
11
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
12 START_TEST(test_util_base16_decode)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
13 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
14 gsize sz = 0;
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15373
diff changeset
15 guchar *out = purple_base16_decode("21646c726f77202c6f6c6c656800", &sz);
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
16 fail_unless(sz == 14, NULL);
27450
7bdad85c5fed Use assert_string_equal_free() instead of just assert_string_equal()
Mark Doliner <mark@kingant.net>
parents: 27248
diff changeset
17 assert_string_equal_free("!dlrow ,olleh", (char *)out);
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
18 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
19 END_TEST
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
20
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
21 START_TEST(test_util_base64_encode)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
22 {
26219
ba1799f21383 Cast away a few compile warnings in our "make check" tests, and add
Mark Doliner <mark@kingant.net>
parents: 22199
diff changeset
23 assert_string_equal_free("Zm9ydHktdHdvAA==", purple_base64_encode((const unsigned char *)"forty-two", 10));
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
24 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
25 END_TEST
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
26
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
27 START_TEST(test_util_base64_decode)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
28 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
29 gsize sz;
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15373
diff changeset
30 guchar *out = purple_base64_decode("b3d0LXl0cm9mAA==", &sz);
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
31 fail_unless(sz == 10, NULL);
27450
7bdad85c5fed Use assert_string_equal_free() instead of just assert_string_equal()
Mark Doliner <mark@kingant.net>
parents: 27248
diff changeset
32 assert_string_equal_free("owt-ytrof", (char *)out);
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
33 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
34 END_TEST
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
35
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
36 START_TEST(test_util_escape_filename)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
37 {
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15373
diff changeset
38 assert_string_equal("foo", purple_escape_filename("foo"));
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15373
diff changeset
39 assert_string_equal("@oo", purple_escape_filename("@oo"));
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15373
diff changeset
40 assert_string_equal("#oo", purple_escape_filename("#oo"));
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15373
diff changeset
41 assert_string_equal("-oo", purple_escape_filename("-oo"));
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15373
diff changeset
42 assert_string_equal("_oo", purple_escape_filename("_oo"));
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15373
diff changeset
43 assert_string_equal(".oo", purple_escape_filename(".oo"));
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15373
diff changeset
44 assert_string_equal("%25oo", purple_escape_filename("%oo"));
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15373
diff changeset
45 assert_string_equal("%21oo", purple_escape_filename("!oo"));
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
46 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
47 END_TEST
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
48
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
49 START_TEST(test_util_unescape_filename)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
50 {
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15373
diff changeset
51 assert_string_equal("bar", purple_unescape_filename("bar"));
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15373
diff changeset
52 assert_string_equal("@ar", purple_unescape_filename("@ar"));
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15373
diff changeset
53 assert_string_equal("!ar", purple_unescape_filename("!ar"));
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15373
diff changeset
54 assert_string_equal("!ar", purple_unescape_filename("%21ar"));
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15373
diff changeset
55 assert_string_equal("%ar", purple_unescape_filename("%25ar"));
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
56 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
57 END_TEST
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
58
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
59
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
60 START_TEST(test_util_text_strip_mnemonic)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
61 {
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15373
diff changeset
62 assert_string_equal_free("", purple_text_strip_mnemonic(""));
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15373
diff changeset
63 assert_string_equal_free("foo", purple_text_strip_mnemonic("foo"));
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15373
diff changeset
64 assert_string_equal_free("foo", purple_text_strip_mnemonic("_foo"));
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
65
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
66 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
67 END_TEST
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
68
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
69 START_TEST(test_util_email_is_valid)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
70 {
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15373
diff changeset
71 fail_unless(purple_email_is_valid("purple-devel@lists.sf.net"));
22197
a67c0aa4db9c Add a few tets to make sure we're catching some invalid email formats
Mark Doliner <mark@kingant.net>
parents: 21612
diff changeset
72 fail_if(purple_email_is_valid("purple-devel@@lists.sf.net"));
a67c0aa4db9c Add a few tets to make sure we're catching some invalid email formats
Mark Doliner <mark@kingant.net>
parents: 21612
diff changeset
73 fail_if(purple_email_is_valid("purple@devel@lists.sf.net"));
a67c0aa4db9c Add a few tets to make sure we're catching some invalid email formats
Mark Doliner <mark@kingant.net>
parents: 21612
diff changeset
74 fail_if(purple_email_is_valid("purple-devel@list..sf.net"));
a67c0aa4db9c Add a few tets to make sure we're catching some invalid email formats
Mark Doliner <mark@kingant.net>
parents: 21612
diff changeset
75 fail_if(purple_email_is_valid("purple-devel"));
22199
5aacf801f6b6 One more test. This is actually the one I cared about. It passes,
Mark Doliner <mark@kingant.net>
parents: 22197
diff changeset
76 fail_if(purple_email_is_valid("purple-devel@"));
22197
a67c0aa4db9c Add a few tets to make sure we're catching some invalid email formats
Mark Doliner <mark@kingant.net>
parents: 21612
diff changeset
77 fail_if(purple_email_is_valid("@lists.sf.net"));
a67c0aa4db9c Add a few tets to make sure we're catching some invalid email formats
Mark Doliner <mark@kingant.net>
parents: 21612
diff changeset
78 fail_if(purple_email_is_valid(""));
a67c0aa4db9c Add a few tets to make sure we're catching some invalid email formats
Mark Doliner <mark@kingant.net>
parents: 21612
diff changeset
79 fail_if(purple_email_is_valid("totally bogus"));
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
80 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
81 END_TEST
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
82
27469
8c41a23e6b44 Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <paul@darkrain42.org>
parents: 27450
diff changeset
83 START_TEST(test_util_ipv6_is_valid)
8c41a23e6b44 Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <paul@darkrain42.org>
parents: 27450
diff changeset
84 {
8c41a23e6b44 Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <paul@darkrain42.org>
parents: 27450
diff changeset
85 fail_unless(purple_ipv6_address_is_valid("2001:0db8:85a3:0000:0000:8a2e:0370:7334"));
8c41a23e6b44 Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <paul@darkrain42.org>
parents: 27450
diff changeset
86 fail_unless(purple_ipv6_address_is_valid("2001:db8:85a3:0:0:8a2e:370:7334"));
8c41a23e6b44 Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <paul@darkrain42.org>
parents: 27450
diff changeset
87 fail_unless(purple_ipv6_address_is_valid("2001:db8:85a3::8a2e:370:7334"));
8c41a23e6b44 Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <paul@darkrain42.org>
parents: 27450
diff changeset
88 fail_unless(purple_ipv6_address_is_valid("2001:0db8:0:0::1428:57ab"));
8c41a23e6b44 Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <paul@darkrain42.org>
parents: 27450
diff changeset
89 fail_unless(purple_ipv6_address_is_valid("::1"));
8c41a23e6b44 Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <paul@darkrain42.org>
parents: 27450
diff changeset
90 fail_unless(purple_ipv6_address_is_valid("1::"));
8c41a23e6b44 Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <paul@darkrain42.org>
parents: 27450
diff changeset
91 fail_unless(purple_ipv6_address_is_valid("1::1"));
8c41a23e6b44 Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <paul@darkrain42.org>
parents: 27450
diff changeset
92 fail_unless(purple_ipv6_address_is_valid("::"));
8c41a23e6b44 Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <paul@darkrain42.org>
parents: 27450
diff changeset
93 fail_if(purple_ipv6_address_is_valid(""));
8c41a23e6b44 Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <paul@darkrain42.org>
parents: 27450
diff changeset
94 fail_if(purple_ipv6_address_is_valid(":"));
8c41a23e6b44 Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <paul@darkrain42.org>
parents: 27450
diff changeset
95 fail_if(purple_ipv6_address_is_valid("1.2.3.4"));
8c41a23e6b44 Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <paul@darkrain42.org>
parents: 27450
diff changeset
96 fail_if(purple_ipv6_address_is_valid("2001::FFD3::57ab"));
8c41a23e6b44 Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <paul@darkrain42.org>
parents: 27450
diff changeset
97 fail_if(purple_ipv6_address_is_valid("200000000::1"));
8c41a23e6b44 Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <paul@darkrain42.org>
parents: 27450
diff changeset
98 fail_if(purple_ipv6_address_is_valid("QWERTY::1"));
8c41a23e6b44 Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <paul@darkrain42.org>
parents: 27450
diff changeset
99 }
8c41a23e6b44 Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <paul@darkrain42.org>
parents: 27450
diff changeset
100 END_TEST
8c41a23e6b44 Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <paul@darkrain42.org>
parents: 27450
diff changeset
101
16004
b4593c886933 fix our string-to-time function, and add a couple tests for it
Nathan Walp <nwalp@pidgin.im>
parents: 15888
diff changeset
102 START_TEST(test_util_str_to_time)
b4593c886933 fix our string-to-time function, and add a couple tests for it
Nathan Walp <nwalp@pidgin.im>
parents: 15888
diff changeset
103 {
21612
18fb032a602a Fix the bug in purple_str_to_time() that was causing 'make check' to fail.
Stu Tomlinson <stu@nosnilmot.com>
parents: 21152
diff changeset
104 fail_unless(377182200 == purple_str_to_time("19811214T12:50:00", TRUE, NULL, NULL, NULL));
16004
b4593c886933 fix our string-to-time function, and add a couple tests for it
Nathan Walp <nwalp@pidgin.im>
parents: 15888
diff changeset
105 fail_unless(1175919261 == purple_str_to_time("20070407T04:14:21", TRUE, NULL, NULL, NULL));
b4593c886933 fix our string-to-time function, and add a couple tests for it
Nathan Walp <nwalp@pidgin.im>
parents: 15888
diff changeset
106 }
b4593c886933 fix our string-to-time function, and add a couple tests for it
Nathan Walp <nwalp@pidgin.im>
parents: 15888
diff changeset
107 END_TEST
b4593c886933 fix our string-to-time function, and add a couple tests for it
Nathan Walp <nwalp@pidgin.im>
parents: 15888
diff changeset
108
21152
1dd6704cd187 Add a test for the html markup parsing to try to prevent a repeat of 2.2.2
Stu Tomlinson <stu@nosnilmot.com>
parents: 16004
diff changeset
109 START_TEST(test_markup_html_to_xhtml)
1dd6704cd187 Add a test for the html markup parsing to try to prevent a repeat of 2.2.2
Stu Tomlinson <stu@nosnilmot.com>
parents: 16004
diff changeset
110 {
1dd6704cd187 Add a test for the html markup parsing to try to prevent a repeat of 2.2.2
Stu Tomlinson <stu@nosnilmot.com>
parents: 16004
diff changeset
111 gchar *xhtml = NULL;
1dd6704cd187 Add a test for the html markup parsing to try to prevent a repeat of 2.2.2
Stu Tomlinson <stu@nosnilmot.com>
parents: 16004
diff changeset
112 gchar *plaintext = NULL;
1dd6704cd187 Add a test for the html markup parsing to try to prevent a repeat of 2.2.2
Stu Tomlinson <stu@nosnilmot.com>
parents: 16004
diff changeset
113 purple_markup_html_to_xhtml("<a>", &xhtml, &plaintext);
27450
7bdad85c5fed Use assert_string_equal_free() instead of just assert_string_equal()
Mark Doliner <mark@kingant.net>
parents: 27248
diff changeset
114 assert_string_equal_free("<a href=\"\"></a>", xhtml);
7bdad85c5fed Use assert_string_equal_free() instead of just assert_string_equal()
Mark Doliner <mark@kingant.net>
parents: 27248
diff changeset
115 assert_string_equal_free("", plaintext);
28906
68bc7c617fa0 Fix a corner case where purple_markup_html_to_xhtml generated malformed XHTML.
Paul Aurich <paul@darkrain42.org>
parents: 27469
diff changeset
116
68bc7c617fa0 Fix a corner case where purple_markup_html_to_xhtml generated malformed XHTML.
Paul Aurich <paul@darkrain42.org>
parents: 27469
diff changeset
117
68bc7c617fa0 Fix a corner case where purple_markup_html_to_xhtml generated malformed XHTML.
Paul Aurich <paul@darkrain42.org>
parents: 27469
diff changeset
118 purple_markup_html_to_xhtml("<FONT>x</FONT>", &xhtml, &plaintext);
68bc7c617fa0 Fix a corner case where purple_markup_html_to_xhtml generated malformed XHTML.
Paul Aurich <paul@darkrain42.org>
parents: 27469
diff changeset
119 assert_string_equal_free("x", xhtml);
68bc7c617fa0 Fix a corner case where purple_markup_html_to_xhtml generated malformed XHTML.
Paul Aurich <paul@darkrain42.org>
parents: 27469
diff changeset
120 assert_string_equal_free("x", plaintext);
21152
1dd6704cd187 Add a test for the html markup parsing to try to prevent a repeat of 2.2.2
Stu Tomlinson <stu@nosnilmot.com>
parents: 16004
diff changeset
121 }
1dd6704cd187 Add a test for the html markup parsing to try to prevent a repeat of 2.2.2
Stu Tomlinson <stu@nosnilmot.com>
parents: 16004
diff changeset
122 END_TEST
1dd6704cd187 Add a test for the html markup parsing to try to prevent a repeat of 2.2.2
Stu Tomlinson <stu@nosnilmot.com>
parents: 16004
diff changeset
123
29852
5bac51b394e6 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <paul@darkrain42.org>
parents: 28906
diff changeset
124 START_TEST(test_utf8_strip_unprintables)
5bac51b394e6 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <paul@darkrain42.org>
parents: 28906
diff changeset
125 {
5bac51b394e6 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <paul@darkrain42.org>
parents: 28906
diff changeset
126 fail_unless(NULL == purple_utf8_strip_unprintables(NULL));
5bac51b394e6 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <paul@darkrain42.org>
parents: 28906
diff changeset
127 /* invalid UTF-8 */
5bac51b394e6 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <paul@darkrain42.org>
parents: 28906
diff changeset
128 #if 0
5bac51b394e6 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <paul@darkrain42.org>
parents: 28906
diff changeset
129 /* disabled because make check fails on an assertion */
5bac51b394e6 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <paul@darkrain42.org>
parents: 28906
diff changeset
130 fail_unless(NULL == purple_utf8_strip_unprintables("abc\x80\x7f"));
5bac51b394e6 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <paul@darkrain42.org>
parents: 28906
diff changeset
131 #endif
5bac51b394e6 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <paul@darkrain42.org>
parents: 28906
diff changeset
132 /* \t, \n, \r, space */
5bac51b394e6 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <paul@darkrain42.org>
parents: 28906
diff changeset
133 assert_string_equal_free("ab \tcd\nef\r ", purple_utf8_strip_unprintables("ab \tcd\nef\r "));
5bac51b394e6 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <paul@darkrain42.org>
parents: 28906
diff changeset
134 /* Basic ASCII */
5bac51b394e6 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <paul@darkrain42.org>
parents: 28906
diff changeset
135 assert_string_equal_free("Foobar", purple_utf8_strip_unprintables("Foobar"));
5bac51b394e6 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <paul@darkrain42.org>
parents: 28906
diff changeset
136 /* 0xE000 - 0xFFFD (UTF-8 encoded) */
5bac51b394e6 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <paul@darkrain42.org>
parents: 28906
diff changeset
137 /* U+F1F7 */
5bac51b394e6 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <paul@darkrain42.org>
parents: 28906
diff changeset
138 assert_string_equal_free("aaaa\xef\x87\xb7", purple_utf8_strip_unprintables("aaaa\xef\x87\xb7"));
5bac51b394e6 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <paul@darkrain42.org>
parents: 28906
diff changeset
139 #if 0
5bac51b394e6 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <paul@darkrain42.org>
parents: 28906
diff changeset
140 /* disabled because make check fails on an assertion */
5bac51b394e6 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <paul@darkrain42.org>
parents: 28906
diff changeset
141 /* U+DB80 (Private Use High Surrogate, First) -- should be stripped */
5bac51b394e6 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <paul@darkrain42.org>
parents: 28906
diff changeset
142 assert_string_equal_free("aaaa", purple_utf8_strip_unprintables("aaaa\xed\xa0\x80"));
5bac51b394e6 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <paul@darkrain42.org>
parents: 28906
diff changeset
143 /* U+FFFE (should be stripped) */
5bac51b394e6 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <paul@darkrain42.org>
parents: 28906
diff changeset
144 assert_string_equal_free("aaaa", purple_utf8_strip_unprintables("aaaa\xef\xbf\xbe"));
5bac51b394e6 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <paul@darkrain42.org>
parents: 28906
diff changeset
145 #endif
5bac51b394e6 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <paul@darkrain42.org>
parents: 28906
diff changeset
146 /* U+FEFF (should not be stripped) */
5bac51b394e6 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <paul@darkrain42.org>
parents: 28906
diff changeset
147 assert_string_equal_free("aaaa\xef\xbb\xbf", purple_utf8_strip_unprintables("aaaa\xef\xbb\xbf"));
5bac51b394e6 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <paul@darkrain42.org>
parents: 28906
diff changeset
148 }
5bac51b394e6 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <paul@darkrain42.org>
parents: 28906
diff changeset
149 END_TEST
5bac51b394e6 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <paul@darkrain42.org>
parents: 28906
diff changeset
150
27248
6271a72ba4f6 * Use our assert_string_equal() macro instead of fail_unless(strcmp(), NULL)
Mark Doliner <mark@kingant.net>
parents: 26219
diff changeset
151 START_TEST(test_mime_decode_field)
6271a72ba4f6 * Use our assert_string_equal() macro instead of fail_unless(strcmp(), NULL)
Mark Doliner <mark@kingant.net>
parents: 26219
diff changeset
152 {
6271a72ba4f6 * Use our assert_string_equal() macro instead of fail_unless(strcmp(), NULL)
Mark Doliner <mark@kingant.net>
parents: 26219
diff changeset
153 gchar *result = purple_mime_decode_field("=?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?=");
27450
7bdad85c5fed Use assert_string_equal_free() instead of just assert_string_equal()
Mark Doliner <mark@kingant.net>
parents: 27248
diff changeset
154 assert_string_equal_free("Keld Jørn Simonsen", result);
27248
6271a72ba4f6 * Use our assert_string_equal() macro instead of fail_unless(strcmp(), NULL)
Mark Doliner <mark@kingant.net>
parents: 26219
diff changeset
155 }
6271a72ba4f6 * Use our assert_string_equal() macro instead of fail_unless(strcmp(), NULL)
Mark Doliner <mark@kingant.net>
parents: 26219
diff changeset
156 END_TEST
6271a72ba4f6 * Use our assert_string_equal() macro instead of fail_unless(strcmp(), NULL)
Mark Doliner <mark@kingant.net>
parents: 26219
diff changeset
157
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
158 Suite *
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
159 util_suite(void)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
160 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
161 Suite *s = suite_create("Utility Functions");
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
162
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
163 TCase *tc = tcase_create("Base16");
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
164 tcase_add_test(tc, test_util_base16_encode);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
165 tcase_add_test(tc, test_util_base16_decode);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
166 suite_add_tcase(s, tc);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
167
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
168 tc = tcase_create("Base64");
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
169 tcase_add_test(tc, test_util_base64_encode);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
170 tcase_add_test(tc, test_util_base64_decode);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
171 suite_add_tcase(s, tc);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
172
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
173 tc = tcase_create("Filenames");
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
174 tcase_add_test(tc, test_util_escape_filename);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
175 tcase_add_test(tc, test_util_unescape_filename);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
176 suite_add_tcase(s, tc);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
177
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
178 tc = tcase_create("Strip Mnemonic");
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
179 tcase_add_test(tc, test_util_text_strip_mnemonic);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
180 suite_add_tcase(s, tc);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
181
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
182 tc = tcase_create("Email");
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
183 tcase_add_test(tc, test_util_email_is_valid);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
184 suite_add_tcase(s, tc);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
185
27469
8c41a23e6b44 Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <paul@darkrain42.org>
parents: 27450
diff changeset
186 tc = tcase_create("IPv6");
8c41a23e6b44 Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <paul@darkrain42.org>
parents: 27450
diff changeset
187 tcase_add_test(tc, test_util_ipv6_is_valid);
8c41a23e6b44 Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <paul@darkrain42.org>
parents: 27450
diff changeset
188 suite_add_tcase(s, tc);
8c41a23e6b44 Add purple_ipv6_address_is_valid; guess what it does?
Paul Aurich <paul@darkrain42.org>
parents: 27450
diff changeset
189
16004
b4593c886933 fix our string-to-time function, and add a couple tests for it
Nathan Walp <nwalp@pidgin.im>
parents: 15888
diff changeset
190 tc = tcase_create("Time");
b4593c886933 fix our string-to-time function, and add a couple tests for it
Nathan Walp <nwalp@pidgin.im>
parents: 15888
diff changeset
191 tcase_add_test(tc, test_util_str_to_time);
b4593c886933 fix our string-to-time function, and add a couple tests for it
Nathan Walp <nwalp@pidgin.im>
parents: 15888
diff changeset
192 suite_add_tcase(s, tc);
b4593c886933 fix our string-to-time function, and add a couple tests for it
Nathan Walp <nwalp@pidgin.im>
parents: 15888
diff changeset
193
21152
1dd6704cd187 Add a test for the html markup parsing to try to prevent a repeat of 2.2.2
Stu Tomlinson <stu@nosnilmot.com>
parents: 16004
diff changeset
194 tc = tcase_create("Markup");
1dd6704cd187 Add a test for the html markup parsing to try to prevent a repeat of 2.2.2
Stu Tomlinson <stu@nosnilmot.com>
parents: 16004
diff changeset
195 tcase_add_test(tc, test_markup_html_to_xhtml);
1dd6704cd187 Add a test for the html markup parsing to try to prevent a repeat of 2.2.2
Stu Tomlinson <stu@nosnilmot.com>
parents: 16004
diff changeset
196 suite_add_tcase(s, tc);
1dd6704cd187 Add a test for the html markup parsing to try to prevent a repeat of 2.2.2
Stu Tomlinson <stu@nosnilmot.com>
parents: 16004
diff changeset
197
29852
5bac51b394e6 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <paul@darkrain42.org>
parents: 28906
diff changeset
198 tc = tcase_create("Stripping Unparseables");
5bac51b394e6 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <paul@darkrain42.org>
parents: 28906
diff changeset
199 tcase_add_test(tc, test_utf8_strip_unprintables);
5bac51b394e6 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <paul@darkrain42.org>
parents: 28906
diff changeset
200 suite_add_tcase(s, tc);
5bac51b394e6 util: Better validation of the allowed character values in XML 1.0
Paul Aurich <paul@darkrain42.org>
parents: 28906
diff changeset
201
27248
6271a72ba4f6 * Use our assert_string_equal() macro instead of fail_unless(strcmp(), NULL)
Mark Doliner <mark@kingant.net>
parents: 26219
diff changeset
202 tc = tcase_create("MIME");
6271a72ba4f6 * Use our assert_string_equal() macro instead of fail_unless(strcmp(), NULL)
Mark Doliner <mark@kingant.net>
parents: 26219
diff changeset
203 tcase_add_test(tc, test_mime_decode_field);
6271a72ba4f6 * Use our assert_string_equal() macro instead of fail_unless(strcmp(), NULL)
Mark Doliner <mark@kingant.net>
parents: 26219
diff changeset
204 suite_add_tcase(s, tc);
6271a72ba4f6 * Use our assert_string_equal() macro instead of fail_unless(strcmp(), NULL)
Mark Doliner <mark@kingant.net>
parents: 26219
diff changeset
205
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
206 return s;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
207 }