use strict; use warnings; our $count; BEGIN { $count = 14 } use Test::More tests => $count; use HTML::FormFu; use lib 't/lib'; SKIP: { eval "use MyApp::Schema"; skip 'DBIx::Class needed', $count if $@; my $form = HTML::FormFu->new; $form->element( { name => 'title' } ); $form->element( { name => 'name' } ); $form->element( { name => 'age' } ); $form->element( { name => 'dongle' } ); $form->constraints_from_dbic( 'MyApp::Schema::Person', { dongle => 'MyApp::Schema::Dongle', } ); is( @{ $form->get_field('title')->get_constraints }, 1 ); is( @{ $form->get_field('name')->get_constraints }, 1 ); is( @{ $form->get_field('age')->get_constraints }, 2 ); is( @{ $form->get_field('dongle')->get_constraints }, 1 ); is( @{ $form->get_constraints }, 5 ); # title - set { $form->process( { title => 'Mr' } ); ok( $form->submitted_and_valid ); } { $form->process( { title => 'Mz' } ); ok( $form->has_errors ); } # name - string length { $form->process( { name => 'carl' } ); ok( $form->submitted_and_valid ); } { $form->process( { name => 'a' x 300 } ); ok( $form->has_errors ); } # age - int { $form->process( { age => 1 } ); ok( $form->submitted_and_valid ); } { $form->process( { age => 'a' } ); ok( $form->has_errors ); } # age - unsigned { $form->process( { age => -1 } ); ok( $form->has_errors ); } # dongle - string length { $form->process( { dongle => 'carl' } ); ok( $form->submitted_and_valid ); } { $form->process( { dongle => 'a' x 11 } ); ok( $form->has_errors ); } }