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 {