use strict; use warnings; use Test::More tests => 16; use HTML::FormFu; my $form = HTML::FormFu->new; $form->element('Text')->name('foo'); $form->element('Text')->name('bar'); $form->constraint('Word'); # Valid { $form->process( { foo => 'aaa', bar => 'bbbbbbb', } ); ok( $form->valid('foo'), 'foo valid' ); ok( $form->valid('bar'), 'bar valid' ); ok( grep { $_ eq 'foo' } $form->valid ); ok( grep { $_ eq 'bar' } $form->valid ); } # [space] - Invalid { $form->process( { foo => 'a', bar => 'b c', } ); ok( $form->valid('foo'), 'foo valid' ); ok( !$form->valid('bar'), 'foo valid' ); ok( grep { $_ eq 'foo' } $form->valid ); ok( !grep { $_ eq 'bar' } $form->valid ); } # [newline] - Invalid { $form->process( { foo => 'a', bar => "b\nc", } ); ok( $form->valid('foo'), 'foo valid' ); ok( !$form->valid('bar'), 'foo 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 ); }