70
* Many of the valid and invalid email addresses lised below are from
71
* http://fightingforalostcause.net/misc/2006/compare-email-regex.php
73
const char *valid_emails[] = {
74
"purple-devel@lists.sf.net",
75
"l3tt3rsAndNumb3rs@domain.com",
76
"has-dash@domain.com",
77
"hasApostrophe.o'leary@domain.org",
78
"uncommonTLD@domain.museum",
79
"uncommonTLD@domain.travel",
80
"uncommonTLD@domain.mobi",
81
"countryCodeTLD@domain.uk",
82
"countryCodeTLD@domain.rw",
83
"lettersInDomain@911.com",
84
"underscore_inLocal@domain.net",
85
"IPInsteadOfDomain@127.0.0.1",
86
/* "IPAndPort@127.0.0.1:25", */
87
"subdomain@sub.domain.com",
88
"local@dash-inDomain.com",
89
"dot.inLocal@foo.com",
90
"a@singleLetterLocal.org",
91
"singleLetterDomain@x.org",
92
"&*=?^+{}'~@validCharsInLocal.net",
96
const char *invalid_emails[] = {
97
"purple-devel@@lists.sf.net",
98
"purple@devel@lists.sf.net",
99
"purple-devel@list..sf.net",
104
"missingDomain@.com",
109
"colonButNoPort@127.0.0.1:",
111
/* "someone-else@127.0.0.1.26", */
112
".localStartsWithDot@domain.com",
113
/* "localEndsWithDot.@domain.com", */ /* I don't think this is invalid -- Stu */
114
/* "two..consecutiveDots@domain.com", */ /* I don't think this is invalid -- Stu */
115
"domainStartsWithDash@-domain.com",
116
"domainEndsWithDash@domain-.com",
117
/* "numbersInTLD@domain.c0m", */
118
/* "missingTLD@domain.", */ /* This certainly isn't invalid -- Stu */
119
"! \"#$%(),/;<>[]`|@invalidCharsInLocal.org",
120
"invalidCharsInDomain@! \"#$%(),/;<>_[]`|.org",
121
/* "local@SecondLevelDomainNamesAreInvalidIfTheyAreLongerThan64Charactersss.org" */
69
124
START_TEST(test_util_email_is_valid)
71
fail_unless(purple_email_is_valid("purple-devel@lists.sf.net"));
72
fail_if(purple_email_is_valid("purple-devel@@lists.sf.net"));
73
fail_if(purple_email_is_valid("purple@devel@lists.sf.net"));
74
fail_if(purple_email_is_valid("purple-devel@list..sf.net"));
75
fail_if(purple_email_is_valid("purple-devel"));
76
fail_if(purple_email_is_valid("purple-devel@"));
77
fail_if(purple_email_is_valid("@lists.sf.net"));
78
fail_if(purple_email_is_valid(""));
79
fail_if(purple_email_is_valid("totally bogus"));
128
for (i = 0; i < G_N_ELEMENTS(valid_emails); i++)
129
fail_unless(purple_email_is_valid(valid_emails[i]), "Email address was: %s", valid_emails[i]);
131
for (i = 0; i < G_N_ELEMENTS(invalid_emails); i++)
132
fail_if(purple_email_is_valid(invalid_emails[i]), "Email address was: %s", invalid_emails[i]);