/xt/posted.t

http://github.com/gshank/html-formhandler · Raku · 59 lines · 45 code · 14 blank · 0 comment · 2 complexity · 7d665e3bc4b4e7250948169c26a002cf MD5 · raw file

  1. use strict;
  2. use warnings;
  3. use Test::More;
  4. use HTML::FormHandler::I18N;
  5. $ENV{LANGUAGE_HANDLE} = 'en_en';
  6. {
  7. package Test::SingleBool;
  8. use HTML::FormHandler::Moose;
  9. extends 'HTML::FormHandler';
  10. has_field 'opt_in' => ( type => 'Boolean', required => 1 );
  11. }
  12. {
  13. my $form = Test::SingleBool->new;
  14. ok( $form, 'form built' );
  15. $form->process( params => {} );
  16. ok( !$form->ran_validation, 'form did not run validation' );
  17. my $test = 'POST';
  18. $form->process( posted => ($test eq 'POST'), params => {} );
  19. ok( $form->ran_validation, 'form did run validation' );
  20. ok( $form->has_errors, 'form has errors' );
  21. my @errors = $form->errors;
  22. is( scalar @errors, 1, 'form has an error' );
  23. is( $errors[0], 'Opt in field is required', 'error message is correct' );
  24. }
  25. {
  26. package Test::SingleBoolCompound;
  27. use HTML::FormHandler::Moose;
  28. extends 'HTML::FormHandler';
  29. has_field 'a' => ( type => 'Compound', required => 1 );
  30. has_field 'a.opt_in' => ( type => 'Boolean', required => 1 );
  31. }
  32. {
  33. my $form = Test::SingleBoolCompound->new;
  34. ok( $form, 'form built' );
  35. $form->process( params => {} );
  36. ok( !$form->ran_validation, 'form did not run validation' );
  37. my $test = 'POST';
  38. $form->process( posted => ($test eq 'POST'), params => {} );
  39. ok( $form->ran_validation, 'form did run validation' );
  40. ok( $form->has_errors, 'form has errors' );
  41. my @errors = $form->errors;
  42. is( scalar @errors, 1, 'form has an error' );
  43. is( $errors[0], 'A field is required', 'error message is correct' );
  44. }
  45. done_testing;