use strict;
use warnings;
use Test::More 'no_plan';
use HTML::FormFu;
my $form = HTML::FormFu->new;
$form->load_config_file('t/constraints/constraint_when_fields.yml');
# Valid
{
$form->process( {
a => '',
b => '',
c => '',
} );
ok( $form->submitted_and_valid );
ok( $form->valid('a'), 'a valid' );
ok( $form->valid('b'), 'b valid' );
ok( $form->valid('c'), 'c valid' );
}
# Valid
{
$form->process( {
a => '1',
b => '',
c => '',
} );
ok( $form->submitted_and_valid );
ok( $form->valid('a'), 'a valid' );
ok( $form->valid('b'), 'b valid' );
ok( $form->valid('c'), 'c valid' );
}
# Valid
{
# Bool constraint doesn't run because b & c don't both have values
$form->process( {
a => 'a',
b => '',
c => '',
} );
ok( $form->submitted_and_valid );
ok( $form->valid('a'), 'a valid' );
ok( $form->valid('b'), 'b valid' );
ok( $form->valid('c'), 'c valid' );
}
# Valid
{
# Bool constraint doesn't run because b & c don't both have values
$form->process( {
a => 'a',
b => '',
c => '1',
} );
ok( $form->submitted_and_valid );
ok( $form->valid('a'), 'a valid' );
ok( $form->valid('b'), 'b valid' );
ok( $form->valid('c'), 'c valid' );
}
# Valid
{
$form->process( {
a => '1',
b => '1',
c => '1',
} );
ok( $form->submitted_and_valid );
ok( $form->valid('a'), 'a valid' );
ok( $form->valid('b'), 'b valid' );
ok( $form->valid('c'), 'c valid' );
}
# Valid
{
# Empty is valid
$form->process( {
a => '',
b => '1',
c => '1',
} );
ok( $form->submitted_and_valid );
ok( $form->valid('a'), 'a valid' );
ok( $form->valid('b'), 'b valid' );
ok( $form->valid('c'), 'c valid' );
}
# Invalid
{
$form->process( {
a => 'a',
b => '1',
c => '1',
} );
ok( !$form->submitted_and_valid );
ok( !$form->valid('a'), 'a not valid' );
ok( $form->valid('b'), 'b valid' );
ok( $form->valid('c'), 'c valid' );
}