/t/formhandlerx.t

http://github.com/gshank/html-formhandler · Raku · 52 lines · 40 code · 12 blank · 0 comment · 1 complexity · 2ef82ed9e54c4cbe17c6ea60d30ccdee MD5 · raw file

  1. use strict;
  2. use warnings;
  3. use Test::More;
  4. use Test::Exception;
  5. {
  6. package HTML::FormHandlerX::Widget::Field::TesT;
  7. use Moose::Role;
  8. sub render { '<p>field rendered...</p>' }
  9. }
  10. {
  11. package HTML::FormHandlerX::Field::TesT;
  12. use Moose;
  13. extends 'HTML::FormHandler::Field::Text';
  14. has '+widget' => ( default => 'TesT' );
  15. }
  16. {
  17. package Test::HTML::FormHandler::TextFormHandlerX;
  18. use HTML::FormHandler::Moose;
  19. extends 'HTML::FormHandler';
  20. has_field 'field_name' => (
  21. type => 'TesT',
  22. required => 1,
  23. );
  24. }
  25. my $form = Test::HTML::FormHandler::TextFormHandlerX->new;
  26. ok( $form, 'created Form' );
  27. my %params = (
  28. field_name => 'This is a field',
  29. );
  30. $form->process(params=>\%params);
  31. is( $form->field('field_name')->widget, 'TesT', 'got right widget name' );
  32. is( $form->field('field_name')->render, '<p>field rendered...</p>', 'field rendered' );
  33. {
  34. package Test::Fail;
  35. use HTML::FormHandler::Moose;
  36. extends 'HTML::FormHandler';
  37. has_field 'foo' => ( type => 'Fail' );
  38. }
  39. dies_ok( sub { Test::Fail->new }, 'form dies with invalid field' );
  40. done_testing;