use strict;
use warnings;
use Test::More tests => 16;
use HTML::FormFu;
use lib 't/lib';
use HTMLFormFu::TestLib;
my $form = HTML::FormFu->new;
$form->element('Text')->name('foo');
$form->element('Text')->name('bar');
$form->constraint('Required');
# Valid
{
$form->process( {
foo => 'yada',
bar => 'nada',
} );
ok( $form->valid('foo'), 'foo valid' );
ok( $form->valid('bar'), 'bar valid' );
ok( grep { $_ eq 'foo' } $form->valid );
ok( grep { $_ eq 'bar' } $form->valid );
}
# Missing - Invalid
{
$form->process( { foo => 'yada', } );
ok( $form->valid('foo'), 'foo value' );
ok( !$form->valid('bar'), 'bar not valid' );
ok( grep { $_ eq 'foo' } $form->valid );
ok( !grep { $_ eq 'bar' } $form->valid );
}
# Empty string - Invalid
{
$form->process( {
foo => '',
bar => 2,
} );
ok( !$form->valid('foo'), 'foo not valid' );
ok( $form->valid('bar'), 'bar valid' );
ok( !grep { $_ eq 'foo' } $form->valid );
ok( grep { $_ eq 'bar' } $form->valid );
}
# "0" is valid
{
$form->process( {
foo => 0,
bar => 2,
} );
ok( $form->valid('foo'), 'foo valid' );
ok( $form->valid('bar'), 'foo valid' );
ok( grep { $_ eq 'foo' } $form->valid );
ok( grep { $_ eq 'bar' } $form->valid );
}