2013-09-08 14:06:48 -07:00
|
|
|
#! /usr/bin/env perl
|
|
|
|
|
|
|
|
use strict;
|
|
|
|
use warnings;
|
|
|
|
use Test::More;
|
2016-05-16 06:07:57 -07:00
|
|
|
use Test::Deep;
|
2013-09-08 14:06:48 -07:00
|
|
|
use DDG::Test::Goodie;
|
|
|
|
|
2014-09-27 06:42:57 -07:00
|
|
|
zci answer_type => 'email_validation';
|
|
|
|
zci is_cached => 1;
|
2013-09-08 14:06:48 -07:00
|
|
|
|
2016-05-30 11:13:01 -07:00
|
|
|
sub build_test {
|
2016-05-30 12:33:43 -07:00
|
|
|
my ($answer, $input, $ignore) = @_;
|
|
|
|
my $subtitle = $ignore ? ignore() : "Email address validation: $input";
|
2016-06-09 13:30:21 -07:00
|
|
|
return test_zci(re($answer), structured_answer => {
|
2016-05-30 11:13:01 -07:00
|
|
|
data => {
|
|
|
|
title => re($answer),
|
2016-05-30 12:33:43 -07:00
|
|
|
subtitle => $subtitle
|
2016-05-30 11:13:01 -07:00
|
|
|
},
|
|
|
|
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'],
|
2016-05-30 12:33:43 -07:00
|
|
|
'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'
|
2016-05-30 12:33:43 -07:00
|
|
|
=> 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'),
|
|
|
|
'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;
|