#!/usr/bin/perl use Test::More qw(no_plan); use Email::Valid; print "Email::Valid version: $Email::Valid::VERSION\n"; sub diag_and_return { my ($addr, $ok) = @_; print "# failed: $addr\n" unless $ok; $ok } sub isvalid { diag_and_return($_[0], Email::Valid->address($_[0])); } sub isinvalid { diag_and_return($_[0], !Email::Valid->address($_[0])); } ok isvalid q{l3tt3rsAndNumb3rs@domain.com}; ok isvalid q{has-dash@domain.com}; ok isvalid q{hasApostrophe.o'leary@domain.org}; ok isvalid q{uncommonTLD@domain.museum}; ok isvalid q{uncommonTLD@domain.travel}; ok isvalid q{uncommonTLD@domain.mobi}; ok isvalid q{countryCodeTLD@domain.uk}; ok isvalid q{countryCodeTLD@domain.rw}; ok isvalid q{lettersInDomain@911.com}; ok isvalid q{underscore_inLocal@domain.net}; # ok isvalid q{IPInsteadOfDomain@127.0.0.1}; # NOT VALID # ok isvalid q{IPAndPort@127.0.0.1:25}; # NOT VALID ok isvalid q{subdomain@sub.domain.com}; ok isvalid q{local@dash-inDomain.com}; ok isvalid q{dot.inLocal@foo.com}; ok isvalid q{a@singleLetterLocal.org}; ok isvalid q{singleLetterDomain@x.org}; ok isvalid q{&*=?^+\{\}'~@validCharsInLocal.net}; ok isvalid q{foor@bar.newTLD}; ok isinvalid q{missingDomain@.com}; ok isinvalid q{@missingLocal.org}; ok isinvalid q{missingatSign.net}; ok isinvalid q{missingDot@com}; ok isinvalid q{two@@signs.com}; ok isinvalid q{colonButNoPort@127.0.0.1:}; ok isinvalid q{}; ok isinvalid q{someone-else@127.0.0.1.26}; ok isinvalid q{.localStartsWithDot@domain.com}; ok isinvalid q{localEndsWithDot.@domain.com}; ok isinvalid q{two..consecutiveDots@domain.com}; ok isinvalid q{domainStartsWithDash@-domain.com}; ok isinvalid q{domainEndsWithDash@domain-.com}; ok isinvalid q{numbersInTLD@domain.c0m}; ok isinvalid q{missingTLD@domain.}; ok isinvalid q{! "#$%(),/;<>[]`|@invalidCharsInLocal.org}; ok isinvalid q{invalidCharsInDomain@! "#$%(),/;<>_[]`|.org}; ok isinvalid q{local@SecondLevelDomainNamesAreInvalidIfTheyAreLongerThan64Charactersss.org}; # correcting the bugs in the original test suite, see http://taint.org/2010/06/01/165656a.html ok isinvalid q{IPInsteadOfDomain@127.0.0.1}; ok isinvalid q{IPAndPort@127.0.0.1:25}; ok isvalid q{IPInsteadOfDomain@[127.0.0.1]};