1use strict; 2use warnings; 3 4use Test::More tests => 26; 5 6use HTML::FormFu; 7 8my $form = HTML::FormFu->new; 9 10$form->element('Text')->name('foo')->constraint('MinMaxFields') 11 ->others( [qw/ bar baz boz/] )->min(1)->max(2)->force_errors(1); 12$form->element('Text')->name('bar'); 13$form->element('Text')->name('baz'); 14$form->element('Text')->name('boz'); 15 16# valid 17{ 18 $form->process( 19 { foo => 1, 20 bar => '', 21 baz => [2], 22 boz => '', 23 } ); 24 25 ok( !$form->has_errors, 'no real errors' ); 26 27 ok( !$form->has_errors('foo') ); 28 ok( !$form->has_errors('bar') ); 29 ok( !$form->has_errors('baz') ); 30 ok( !$form->has_errors('boz') ); 31 32 ok( @{ $form->get_errors( { name => 'foo', forced => 1 } ) } ); 33 ok( !@{ $form->get_errors( { name => 'bar', forced => 1 } ) } ); 34 ok( !@{ $form->get_errors( { name => 'baz', forced => 1 } ) } ); 35 ok( !@{ $form->get_errors( { name => 'boz', forced => 1 } ) } ); 36} 37 38# valid 39{ 40 $form->process( 41 { foo => 1, 42 bar => '', 43 baz => '', 44 boz => '', 45 } ); 46 47 ok( !$form->has_errors, 'no real errors' ); 48 49 ok( !$form->has_errors('foo') ); 50 ok( !$form->has_errors('bar') ); 51 ok( !$form->has_errors('baz') ); 52 ok( !$form->has_errors('boz') ); 53 54 ok( @{ $form->get_errors( { name => 'foo', forced => 1 } ) } ); 55 ok( !@{ $form->get_errors( { name => 'bar', forced => 1 } ) } ); 56 ok( !@{ $form->get_errors( { name => 'baz', forced => 1 } ) } ); 57 ok( !@{ $form->get_errors( { name => 'boz', forced => 1 } ) } ); 58} 59 60# invalid 61{ 62 $form->process( 63 { foo => 1, 64 bar => '', 65 baz => 2, 66 boz => '22', 67 } ); 68 69 ok( $form->has_errors ); 70 71 ok( $form->has_errors('foo') ); 72 ok( !$form->has_errors('bar') ); 73 ok( !$form->has_errors('baz') ); 74 ok( !$form->has_errors('boz') ); 75 76 ok( !@{ $form->get_errors( { name => 'bar', forced => 1 } ) } ); 77 ok( !@{ $form->get_errors( { name => 'baz', forced => 1 } ) } ); 78 ok( !@{ $form->get_errors( { name => 'boz', forced => 1 } ) } ); 79} 80