zeroclickinfo-goodies/t/EmailValidator.t

43 lines
1.6 KiB
Perl
Raw Permalink Normal View History

2013-09-08 14:06:48 -07:00
#! /usr/bin/env perl
use strict;
use warnings;
use Test::More;
use Test::Deep;
2013-09-08 14:06:48 -07:00
use DDG::Test::Goodie;
zci answer_type => 'email_validation';
zci is_cached => 1;
2013-09-08 14:06:48 -07:00
sub build_test {
my ($answer, $input, $ignore) = @_;
my $subtitle = $ignore ? ignore() : "Email address validation: $input";
return test_zci(re($answer), structured_answer => {
data => {
title => re($answer),
subtitle => $subtitle
},
templates => {
group => 'text'
}
});
}
my $valid_re = qr/appears to be valid/;
2013-09-08 14:06:48 -07:00
ddg_goodie_test(
2014-10-14 09:35:18 -07:00
['DDG::Goodie::EmailValidator'],
'validate my email foo@example.com' => build_test($valid_re, 'foo@example.com'),
'validate my email foo+abc@example.com' => build_test($valid_re, 'foo+abc@example.com'),
'validate my email foo.bar@example.com' => build_test($valid_re, 'foo.bar@example.com'),
2014-10-14 09:35:18 -07:00
'validate user@exampleaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.com'
=> build_test(qr/Please check the address/, ignore(), 1),
'validate foo@example.com' => build_test($valid_re, 'foo@example.com'),
'validate foo@!!!.com' => build_test(qr/Please check the fully qualified domain name/, 'foo@!!!.com'),
2016-11-14 07:31:04 -08:00
'validate foo@fo;o.com' => build_test(qr/E-mail address foo\@fo;o\.com is invalid/, 'foo@fo;o.com'),
'validate foo@example.lmnop' => build_test(qr/Please check the top-level domain/, 'foo@example.lmnop'),
2015-07-08 17:57:28 -07:00
'validate foo' => undef,
2013-09-08 14:06:48 -07:00
);
2016-05-16 06:18:04 -07:00
done_testing;