EmailValidator: use structured answer.
parent
191b2779cc
commit
142cce16af
|
@ -35,22 +35,28 @@ handle remainder => sub {
|
||||||
return if !$address;
|
return if !$address;
|
||||||
|
|
||||||
my $email_valid = Email::Valid->new(
|
my $email_valid = Email::Valid->new(
|
||||||
-tldcheck => 1,
|
-tldcheck => 1,
|
||||||
);
|
);
|
||||||
|
|
||||||
# Danger: address returns possible modified string!
|
# Danger: address returns possible modified string!
|
||||||
my $result = $email_valid->address($address);
|
my $result = $email_valid->address($address);
|
||||||
|
|
||||||
|
my $message;
|
||||||
if (!$result) {
|
if (!$result) {
|
||||||
my $message = '';
|
if (defined $message_part->{$email_valid->details}) {
|
||||||
if(defined $message_part->{$email_valid->details}) {
|
$message = "$address is invalid. Please check the " . $message_part->{$email_valid->details} . ".";
|
||||||
$message = "$address is invalid. Please check the " . $message_part->{$email_valid->details} . ".";
|
}
|
||||||
}
|
$message ||= 'E-mail address $address is invalid.';
|
||||||
|
} else {
|
||||||
return $message || "E-mail address $address is invalid."
|
$message = "$address appears to be valid.";
|
||||||
}
|
}
|
||||||
|
|
||||||
return "$address is valid.";
|
return $message,
|
||||||
|
structured_answer => {
|
||||||
|
input => [html_enc($address)],
|
||||||
|
operation => 'email address validation',
|
||||||
|
result => html_enc($message),
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|
|
@ -5,22 +5,69 @@ use warnings;
|
||||||
use Test::More;
|
use Test::More;
|
||||||
use DDG::Test::Goodie;
|
use DDG::Test::Goodie;
|
||||||
|
|
||||||
|
|
||||||
zci answer_type => 'email_validation';
|
zci answer_type => 'email_validation';
|
||||||
zci is_cached => 1;
|
zci is_cached => 1;
|
||||||
|
|
||||||
ddg_goodie_test(
|
ddg_goodie_test(
|
||||||
[
|
['DDG::Goodie::EmailValidator'],
|
||||||
'DDG::Goodie::EmailValidator'
|
'validate my email foo@example.com' => test_zci(
|
||||||
],
|
qr/appears to be valid/,
|
||||||
'validate foo' => undef,
|
structured_answer => {
|
||||||
'validate my email foo@example.com' => test_zci (qr/is valid/),
|
input => ['foo@example.com'],
|
||||||
'validate my email foo+abc@example.com' => test_zci (qr/is valid/),
|
operation => 'email address validation',
|
||||||
'validate my email foo.bar@example.com' => test_zci (qr/is valid/),
|
result => qr/appears to be valid/
|
||||||
'validate user@exampleaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.com' => test_zci (qr/Please check the address/),
|
}
|
||||||
'validate foo@example.com' => test_zci (qr/is valid/),
|
),
|
||||||
'validate foo@!!!.com' => test_zci(qr/Please check the fully qualified domain name/),
|
'validate my email foo+abc@example.com' => test_zci(
|
||||||
'validate foo@example.lmnop' => test_zci(qr/Please check the top-level domain/),
|
qr/appears to be valid/,
|
||||||
|
structured_answer => {
|
||||||
|
input => ['foo+abc@example.com'],
|
||||||
|
operation => 'email address validation',
|
||||||
|
result => qr/appears to be valid/
|
||||||
|
}
|
||||||
|
),
|
||||||
|
'validate my email foo.bar@example.com' => test_zci(
|
||||||
|
qr/appears to be valid/,
|
||||||
|
structured_answer => {
|
||||||
|
input => ['foo.bar@example.com'],
|
||||||
|
operation => 'email address validation',
|
||||||
|
result => qr/appears to be valid/
|
||||||
|
}
|
||||||
|
),
|
||||||
|
'validate user@exampleaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.com'
|
||||||
|
=> test_zci(
|
||||||
|
qr/Please check the address/,
|
||||||
|
structured_answer => {
|
||||||
|
input => '-ANY-',
|
||||||
|
operation => 'email address validation',
|
||||||
|
result => qr/Please check the address/,
|
||||||
|
}
|
||||||
|
),
|
||||||
|
'validate foo@example.com' => test_zci(
|
||||||
|
qr/appears to be valid/,
|
||||||
|
structured_answer => {
|
||||||
|
input => ['foo@example.com'],
|
||||||
|
operation => 'email address validation',
|
||||||
|
result => qr/appears to be valid/
|
||||||
|
}
|
||||||
|
),
|
||||||
|
'validate foo@!!!.com' => test_zci(
|
||||||
|
qr/Please check the fully qualified domain name/,
|
||||||
|
structured_answer => {
|
||||||
|
input => ['foo@!!!.com'],
|
||||||
|
operation => 'email address validation',
|
||||||
|
result => qr/Please check the fully qualified domain name/,
|
||||||
|
}
|
||||||
|
),
|
||||||
|
'validate foo@example.lmnop' => test_zci(
|
||||||
|
qr/Please check the top-level domain/,
|
||||||
|
structured_answer => {
|
||||||
|
input => ['foo@example.lmnop'],
|
||||||
|
operation => 'email address validation',
|
||||||
|
result => qr/Please check the top-level domain/,
|
||||||
|
}
|
||||||
|
),
|
||||||
|
'validate foo' => undef,
|
||||||
);
|
);
|
||||||
|
|
||||||
done_testing;
|
done_testing;
|
||||||
|
|
Loading…
Reference in New Issue