Form-Sensible
view release on metacpan or search on metacpan
t/fields/number.t view on Meta::CPAN
},
],
} );
## first, success
$form->set_values({
string => 'a2z0to9',
numeric_integer => -10,
numeric_step => 25,
numeric_nostep => 122.7
});
my $validation_result = $form->validate();
ok( $validation_result->is_valid(), "valid numbers values are considered valid");
$form->set_values({
string => 'a2z0to9',
numeric_integer => -10,
numeric_step => 25,
numeric_nostep => 122.7,
exponent => '1.72e22',
});
$validation_result = $form->validate();
ok( $validation_result->is_valid(), "exponential notation is considered valid");
## fail on numeric_step
$form->set_values({
string => 'a2z0to9',
numeric_integer => 1,
numeric_step => 26,
numeric_nostep => 122.7,
exponent => '1.72e22',
});
$validation_result = $form->validate();
ok( !$validation_result->is_valid(), "Form is invalid with invalid field");
like( $validation_result->error_fields->{numeric_step}[0], qr/multiple of/, "Number field value is invalid based on step");
## fail on fraction
$form->set_values({
string => 'a2z0to9',
numeric_integer => 1.6,
numeric_step => 25.7,
numeric_nostep => 122.7,
exponent => '1.72e22',
});
$validation_result = $form->validate();
like( $validation_result->error_fields->{numeric_integer}[0], qr/an integer/, "Number field value is invalid: fraction in integer only field");
## fail on fraction
$form->set_values({
string => 'a2z0to9',
numeric_integer => 'NaN',
numeric_step => 25.7,
numeric_nostep => 122.7,
exponent => '1.72e22',
});
$validation_result = $form->validate();
like( $validation_result->error_fields->{numeric_integer}[0], qr/not a number/, "Number field value is invalid: non-number in number field");
## fail on too high
$form->set_values({
string => 'a2z0to9',
numeric_integer => 1,
numeric_step => 126,
numeric_nostep => 122.7,
exponent => '1.72e22',
});
$validation_result = $form->validate();
like( $validation_result->error_fields->{numeric_step}[0], qr/maximum allowed value/, "Number field value is invalid: over maximum value");
## fail on too low
$form->set_values({
string => 'a2z0to9',
numeric_step => 6,
numeric_integer => 1,
numeric_nostep => 122.7,
exponent => '1.72e22',
});
$validation_result = $form->validate();
like( $validation_result->error_fields->{numeric_step}[0], qr/minimum allowed value/, "Number field value is invalid: under minimum value");
done_testing();
( run in 0.823 second using v1.01-cache-2.11-cpan-39bf76dae61 )