/t/render_table.t

http://github.com/gshank/html-formhandler · Raku · 72 lines · 61 code · 11 blank · 0 comment · 3 complexity · f515b402f99dd56fb3944d65e8a6e971 MD5 · raw file

  1. use strict;
  2. use warnings;
  3. use Test::More;
  4. use HTML::FormHandler::Field::Text;
  5. {
  6. package Test::Form;
  7. use HTML::FormHandler::Moose;
  8. extends 'HTML::FormHandler';
  9. with 'HTML::FormHandler::Render::Table';
  10. has '+name' => ( default => 'renderform' );
  11. has_field 'test_field' => (
  12. type => 'Text',
  13. label => 'TEST',
  14. id => 'f99',
  15. );
  16. has_field 'number';
  17. has_field 'fruit' => ( type => 'Select' );
  18. has_field 'vegetables' => ( type => 'Multiple' );
  19. has_field 'opt_in' => ( type => 'Select', widget => 'radio_group',
  20. options => [{ value => 0, label => 'No'}, { value => 1, label => 'Yes'} ] );
  21. has_field 'active' => ( type => 'Checkbox' );
  22. has_field 'comments' => ( type => 'TextArea' );
  23. has_field 'hidden' => ( type => 'Hidden' );
  24. has_field 'selected' => ( type => 'Boolean' );
  25. has_field 'start_date' => ( type => 'DateTime' );
  26. has_field 'start_date.month' => ( type => 'Integer', range_start => 1,
  27. range_end => 12 );
  28. has_field 'start_date.day' => ( type => 'Integer', range_start => 1,
  29. range_end => 31 );
  30. has_field 'start_date.year' => ( type => 'Integer', range_start => 2000,
  31. range_end => 2020 );
  32. has_field 'two_errors' => (
  33. apply => [
  34. { check => [ ], message => 'First constraint error' },
  35. { check => [ ], message => 'Second constraint error' }
  36. ]
  37. );
  38. has_field 'submit' => ( type => 'Submit', value => 'Update' );
  39. has '+dependency' => ( default => sub { [ ['start_date.month',
  40. 'start_date.day', 'start_date.year'] ] } );
  41. has_field 'no_render' => ( widget => 'no_render' );
  42. sub options_fruit {
  43. return (
  44. 1 => 'apples',
  45. 2 => 'oranges',
  46. 3 => 'kiwi',
  47. );
  48. }
  49. sub options_vegetables {
  50. return (
  51. 1 => 'lettuce',
  52. 2 => 'broccoli',
  53. 3 => 'carrots',
  54. 4 => 'peas',
  55. );
  56. }
  57. }
  58. my $form = Test::Form->new;
  59. ok( $form, 'create form');
  60. ok( $form->render, 'get table rendered output from form');
  61. done_testing;