use strict;
use warnings;
use Test::More tests => 8;
use HTML::FormFu::MultiForm;
# submit form 1
my $yaml_file = 't/multiform/multiform.yml';
my $form2_hidden_value;
{
my $multi = HTML::FormFu::MultiForm->new;
$multi->load_config_file($yaml_file);
$multi->process( {
foo => 'abc',
submit => 'Submit',
} );
ok( $multi->current_form->submitted_and_valid );
my $form2 = $multi->next_form;
my $hidden_field = $form2->get_field(
{ name => $multi->default_multiform_hidden_name } );
$form2_hidden_value = $hidden_field->default;
}
# submit form 2
my $form3_hidden_value;
{
my $multi = HTML::FormFu::MultiForm->new;
$multi->load_config_file($yaml_file);
$multi->process( {
$multi->default_multiform_hidden_name => $form2_hidden_value,
bar => 'def',
submit => 'Submit',
} );
my $form = $multi->current_form;
ok( $form->submitted_and_valid );
my $form3 = $multi->next_form;
my $hidden_field = $form3->get_field(
{ name => $multi->default_multiform_hidden_name } );
$form3_hidden_value = $hidden_field->default;
}
# submit form 3
{
my $multi = HTML::FormFu::MultiForm->new;
$multi->load_config_file($yaml_file);
$multi->process( {
$multi->default_multiform_hidden_name => $form3_hidden_value,
baz => 'ghi',
submit => 'Submit',
} );
ok( $multi->complete );
my $form = $multi->current_form;
ok( $form->submitted_and_valid );
my $params = $form->params;
is( $params->{foo}, 'abc' );
is( $params->{bar}, 'def' );
is( $params->{baz}, 'ghi' );
is( $params->{submit}, 'Submit' );
}