/xt/multiple_forms.t
Unknown | 76 lines | 63 code | 13 blank | 0 comment | 0 complexity | 7ace6c23be4b1242dfce4398e88b56cc MD5 | raw file
- use Test::More tests => 9;
- use_ok( 'HTML::FormHandler' );
- {
- package My::Form::One;
- use HTML::FormHandler::Moose;
- extends 'HTML::FormHandler';
- # this form specifies the form name
- has '+name' => ( default => 'One' );
- has '+html_prefix' => ( default => 1 );
- has_field 'field_one';
- has_field 'field_two';
- has_field 'field_three';
- }
- my $form1 = My::Form::One->new;
- ok( $form1, 'get first form' );
- {
- package My::Form::Two;
- use Moose;
- extends 'HTML::FormHandler';
- # this form uses the default random form name generation
- has '+html_prefix' => ( default => 1 );
- sub field_list {
- [
- field_one => 'Text',
- field_two => 'Text',
- field_three => 'Text',
- ]
- }
- }
- my $form2 = My::Form::Two->new;
- ok( $form2, 'get second form' );
- my $params = {
- 'One.field_one' => 'First field in first form',
- 'One.field_two' => 'Second field in first form',
- 'One.field_three' => 'Third field in first form',
- $form2->field('field_one')->html_name =>
- 'First field in second form',
- $form2->field('field_two')->html_name =>
- 'Second field in second form',
- $form2->field('field_three')->html_name =>
- 'Third field in second form',
- };
- $form1->process( $params );
- ok( $form1->validated, 'validated first form' );
- is( $form1->field('field_one')->value, 'First field in first form',
- 'value of field in first form is correct' );
- my $fif_params = $form1->fif;
- is_deeply( $fif_params, {
- 'One.field_one' => 'First field in first form',
- 'One.field_two' => 'Second field in first form',
- 'One.field_three' => 'Third field in first form',
- }, 'fif params correct');
- $form2->process( $params );
- ok( $form2->validated, 'validated second form' );
- is( $form2->field('field_three')->value, 'Third field in second form',
- 'value of field in second form is correct' );
- $params = {
- 'One.field_one' => 'First field in first form',
- 'One.field_two' => 'Second field in first form',
- 'One.field_three' => 'Third field in first form',
- };
- $form2 = My::Form::Two->new( params => $params );
- ok( !$form2->has_params, 'has_params checks only params intented for the form');