use strict; use warnings; use Test::More; use HTML::FormHandler::Test; use HTML::FormHandler::Field::Text; my $field = HTML::FormHandler::Field::Text->new( name => 'test' ); my $string = '"J.Doe" '; my $output = $field->html_filter($string); is( $output, '"J.Doe" <jdoe@gmail.com>', 'output ok' ); { package Test::RenderFilter; use HTML::FormHandler::Moose; extends 'HTML::FormHandler'; has_field 'foo'; has_field 'bar'; sub render_filter { my $string = shift; $string =~ s/my/MY/g; return $string; } } my $form = Test::RenderFilter->new; ok( $form, 'form builds' ); $form->process( params => { foo => 'This is my test' } ); like( $form->field('foo')->render, qr/MY/, 'rendering was filters' ); { package Test::FieldFilter; use HTML::FormHandler::Moose; extends 'HTML::FormHandler'; has_field 'foo' => ( render_filter => \&foo_render ); has_field 'bar' => ( render_filter => sub { shift } ); sub foo_render { my $string = shift; $string =~ s/yours/YOURS/g; return $string; } } $form = Test::FieldFilter->new; $form->process( params => { foo => "What's mine is yours", bar => '' } ); is_html( $form->field('bar')->render, '
', 'renders ok' ); is_html( $form->field('foo')->render, '
', 'renders ok' ); done_testing;