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