use strict; use warnings; use Test::More; use HTML::FormHandler::Test; { package Test::Form; use HTML::FormHandler::Moose; extends 'HTML::FormHandler'; has '+name' => ( default => 'test_form' ); has_field 'fruit' => ( type => 'Select' ); has_field 'vegetables' => ( type => 'Multiple', empty_select => '-- Pick One --' ); has_field 'my_option' => ( type => 'BoolSelect' ); sub options_fruit { return ( '"apples"' => '"apples"', '' => '', '&kiwi&' => '&kiwi&', ); } sub options_vegetables { return ( '' => '', 'broccoli' => 'broccoli', 'carrots' => 'carrots', '& peas' => '& peas', ); } } my $form = Test::Form->new; my $params = { fruit => '', vegetables => [ 'broccoli', '& peas' ], }; $form->process( $params ); my $rendered = $form->field('fruit')->render; my $expected = '
'; is_html( $rendered, $expected, 'output from select field'); $rendered = $form->field('vegetables')->render; $expected = '
'; is_html( $rendered, $expected, 'output from select multiple field'); $rendered = $form->field('my_option')->render; $expected = '
'; is_html( $rendered, $expected, 'output from BoolSelect field' ); done_testing;