Mercurial > pidgin
comparison libpurple/tests/test_util.c @ 30186:d93865ec84d9
Expand our test for purple_email_is_valid(). I stumbled across a large list
of valid and invalid email address and thought it'd make a good test. The
ones that are commented out belong in their respective list, but our validate
function doesn't catch them. I don't plan on changing our validate function,
though. If anyone else wants to... more power to ya
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Mon, 14 Jun 2010 21:05:47 +0000 |
parents | 702ea988070c |
children | 72d9caae4406 |
comparison
equal
deleted
inserted
replaced
30185:cd891a88a8fb | 30186:d93865ec84d9 |
---|---|
64 assert_string_equal_free("foo", purple_text_strip_mnemonic("_foo")); | 64 assert_string_equal_free("foo", purple_text_strip_mnemonic("_foo")); |
65 | 65 |
66 } | 66 } |
67 END_TEST | 67 END_TEST |
68 | 68 |
69 /* | |
70 * Lists of valid and invalid email addresses comes from | |
71 * http://fightingforalostcause.net/misc/2006/compare-email-regex.php | |
72 */ | |
73 const char *valid_emails[] = { | |
74 "l3tt3rsAndNumb3rs@domain.com", | |
75 "has-dash@domain.com", | |
76 "hasApostrophe.o'leary@domain.org", | |
77 "uncommonTLD@domain.museum", | |
78 "uncommonTLD@domain.travel", | |
79 "uncommonTLD@domain.mobi", | |
80 "countryCodeTLD@domain.uk", | |
81 "countryCodeTLD@domain.rw", | |
82 "lettersInDomain@911.com", | |
83 "underscore_inLocal@domain.net", | |
84 "IPInsteadOfDomain@127.0.0.1", | |
85 /* "IPAndPort@127.0.0.1:25", */ | |
86 "subdomain@sub.domain.com", | |
87 "local@dash-inDomain.com", | |
88 "dot.inLocal@foo.com", | |
89 "a@singleLetterLocal.org", | |
90 "singleLetterDomain@x.org", | |
91 "&*=?^+{}'~@validCharsInLocal.net", | |
92 "foor@bar.newTLD" | |
93 }; | |
94 | |
95 const char *invalid_emails[] = { | |
96 "missingDomain@.com", | |
97 "@missingLocal.org", | |
98 "missingatSign.net", | |
99 "missingDot@com", | |
100 "two@@signs.com", | |
101 "colonButNoPort@127.0.0.1:", | |
102 "" | |
103 /* "someone-else@127.0.0.1.26", */ | |
104 /* ".localStartsWithDot@domain.com", */ | |
105 /* "localEndsWithDot.@domain.com", */ | |
106 /* "two..consecutiveDots@domain.com", */ | |
107 /* "domainStartsWithDash@-domain.com", */ | |
108 "domainEndsWithDash@domain-.com", | |
109 /* "numbersInTLD@domain.c0m", */ | |
110 /* "missingTLD@domain.", */ | |
111 "! \"#$%(),/;<>[]`|@invalidCharsInLocal.org", | |
112 "invalidCharsInDomain@! \"#$%(),/;<>_[]`|.org", | |
113 /* "local@SecondLevelDomainNamesAreInvalidIfTheyAreLongerThan64Charactersss.org" */ | |
114 }; | |
115 | |
69 START_TEST(test_util_email_is_valid) | 116 START_TEST(test_util_email_is_valid) |
70 { | 117 { |
118 size_t i; | |
119 | |
71 fail_unless(purple_email_is_valid("purple-devel@lists.sf.net")); | 120 fail_unless(purple_email_is_valid("purple-devel@lists.sf.net")); |
72 fail_if(purple_email_is_valid("purple-devel@@lists.sf.net")); | 121 fail_if(purple_email_is_valid("purple-devel@@lists.sf.net")); |
73 fail_if(purple_email_is_valid("purple@devel@lists.sf.net")); | 122 fail_if(purple_email_is_valid("purple@devel@lists.sf.net")); |
74 fail_if(purple_email_is_valid("purple-devel@list..sf.net")); | 123 fail_if(purple_email_is_valid("purple-devel@list..sf.net")); |
75 fail_if(purple_email_is_valid("purple-devel")); | 124 fail_if(purple_email_is_valid("purple-devel")); |
76 fail_if(purple_email_is_valid("purple-devel@")); | 125 fail_if(purple_email_is_valid("purple-devel@")); |
77 fail_if(purple_email_is_valid("@lists.sf.net")); | 126 fail_if(purple_email_is_valid("@lists.sf.net")); |
78 fail_if(purple_email_is_valid("")); | 127 fail_if(purple_email_is_valid("")); |
79 fail_if(purple_email_is_valid("totally bogus")); | 128 fail_if(purple_email_is_valid("totally bogus")); |
129 | |
130 for (i = 0; i < G_N_ELEMENTS(valid_emails); i++) | |
131 fail_unless(purple_email_is_valid(valid_emails[i]), "Email address was: %s", valid_emails[i]); | |
132 | |
133 for (i = 0; i < G_N_ELEMENTS(invalid_emails); i++) | |
134 fail_if(purple_email_is_valid(invalid_emails[i]), "Email address was: %s", invalid_emails[i]); | |
80 } | 135 } |
81 END_TEST | 136 END_TEST |
82 | 137 |
83 START_TEST(test_util_ipv6_is_valid) | 138 START_TEST(test_util_ipv6_is_valid) |
84 { | 139 { |