/xt/posted.t
http://github.com/gshank/html-formhandler · Raku · 59 lines · 45 code · 14 blank · 0 comment · 2 complexity · 7d665e3bc4b4e7250948169c26a002cf MD5 · raw file
- use strict;
- use warnings;
- use Test::More;
- use HTML::FormHandler::I18N;
- $ENV{LANGUAGE_HANDLE} = 'en_en';
- {
- package Test::SingleBool;
- use HTML::FormHandler::Moose;
- extends 'HTML::FormHandler';
- has_field 'opt_in' => ( type => 'Boolean', required => 1 );
- }
- {
- my $form = Test::SingleBool->new;
- ok( $form, 'form built' );
- $form->process( params => {} );
- ok( !$form->ran_validation, 'form did not run validation' );
- my $test = 'POST';
- $form->process( posted => ($test eq 'POST'), params => {} );
- ok( $form->ran_validation, 'form did run validation' );
- ok( $form->has_errors, 'form has errors' );
- my @errors = $form->errors;
- is( scalar @errors, 1, 'form has an error' );
- is( $errors[0], 'Opt in field is required', 'error message is correct' );
- }
- {
- package Test::SingleBoolCompound;
- use HTML::FormHandler::Moose;
- extends 'HTML::FormHandler';
- has_field 'a' => ( type => 'Compound', required => 1 );
- has_field 'a.opt_in' => ( type => 'Boolean', required => 1 );
- }
- {
- my $form = Test::SingleBoolCompound->new;
- ok( $form, 'form built' );
- $form->process( params => {} );
- ok( !$form->ran_validation, 'form did not run validation' );
- my $test = 'POST';
- $form->process( posted => ($test eq 'POST'), params => {} );
- ok( $form->ran_validation, 'form did run validation' );
- ok( $form->has_errors, 'form has errors' );
- my @errors = $form->errors;
- is( scalar @errors, 1, 'form has an error' );
- is( $errors[0], 'A field is required', 'error message is correct' );
- }
- done_testing;