Mercurial > pidgin
changeset 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 | cd891a88a8fb |
children | 3a627563ca71 |
files | libpurple/tests/test_util.c |
diffstat | 1 files changed, 55 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/libpurple/tests/test_util.c Mon Jun 14 15:59:18 2010 +0000 +++ b/libpurple/tests/test_util.c Mon Jun 14 21:05:47 2010 +0000 @@ -66,8 +66,57 @@ } END_TEST +/* + * Lists of valid and invalid email addresses comes from + * http://fightingforalostcause.net/misc/2006/compare-email-regex.php + */ +const char *valid_emails[] = { + "l3tt3rsAndNumb3rs@domain.com", + "has-dash@domain.com", + "hasApostrophe.o'leary@domain.org", + "uncommonTLD@domain.museum", + "uncommonTLD@domain.travel", + "uncommonTLD@domain.mobi", + "countryCodeTLD@domain.uk", + "countryCodeTLD@domain.rw", + "lettersInDomain@911.com", + "underscore_inLocal@domain.net", + "IPInsteadOfDomain@127.0.0.1", + /* "IPAndPort@127.0.0.1:25", */ + "subdomain@sub.domain.com", + "local@dash-inDomain.com", + "dot.inLocal@foo.com", + "a@singleLetterLocal.org", + "singleLetterDomain@x.org", + "&*=?^+{}'~@validCharsInLocal.net", + "foor@bar.newTLD" +}; + +const char *invalid_emails[] = { + "missingDomain@.com", + "@missingLocal.org", + "missingatSign.net", + "missingDot@com", + "two@@signs.com", + "colonButNoPort@127.0.0.1:", + "" + /* "someone-else@127.0.0.1.26", */ + /* ".localStartsWithDot@domain.com", */ + /* "localEndsWithDot.@domain.com", */ + /* "two..consecutiveDots@domain.com", */ + /* "domainStartsWithDash@-domain.com", */ + "domainEndsWithDash@domain-.com", + /* "numbersInTLD@domain.c0m", */ + /* "missingTLD@domain.", */ + "! \"#$%(),/;<>[]`|@invalidCharsInLocal.org", + "invalidCharsInDomain@! \"#$%(),/;<>_[]`|.org", + /* "local@SecondLevelDomainNamesAreInvalidIfTheyAreLongerThan64Charactersss.org" */ +}; + START_TEST(test_util_email_is_valid) { + size_t i; + fail_unless(purple_email_is_valid("purple-devel@lists.sf.net")); fail_if(purple_email_is_valid("purple-devel@@lists.sf.net")); fail_if(purple_email_is_valid("purple@devel@lists.sf.net")); @@ -77,6 +126,12 @@ fail_if(purple_email_is_valid("@lists.sf.net")); fail_if(purple_email_is_valid("")); fail_if(purple_email_is_valid("totally bogus")); + + for (i = 0; i < G_N_ELEMENTS(valid_emails); i++) + fail_unless(purple_email_is_valid(valid_emails[i]), "Email address was: %s", valid_emails[i]); + + for (i = 0; i < G_N_ELEMENTS(invalid_emails); i++) + fail_if(purple_email_is_valid(invalid_emails[i]), "Email address was: %s", invalid_emails[i]); } END_TEST