use strict;
use warnings;
use Test::More tests => 20;
use HTML::FormFu;
my $form = HTML::FormFu->new;
$form->element('Text')->name('name')->filter('LowerCase');
$form->element('Text')->name('age');
$form->filter( HTMLEscape => 'name', 'age' );
$form->filter('Whitespace');
{
my $filters = $form->get_filters;
is( @$filters, 5, '5 filters' );
is( $filters->[0]->name, 'name' );
is( $filters->[1]->name, 'name' );
is( $filters->[2]->name, 'name' );
is( $filters->[3]->name, 'age' );
is( $filters->[4]->name, 'age' );
is( $filters->[0]->type, 'LowerCase' );
is( $filters->[1]->type, 'HTMLEscape' );
is( $filters->[2]->type, 'Whitespace' );
is( $filters->[3]->type, 'HTMLEscape' );
is( $filters->[4]->type, 'Whitespace' );
}
{
my $filters = $form->get_filters('name');
is( @$filters, 3, '3 filters' );
is( $filters->[0]->type, 'LowerCase' );
is( $filters->[1]->type, 'HTMLEscape' );
is( $filters->[2]->type, 'Whitespace' );
}
{
my $filters = $form->get_filters( { name => 'age' } );
is( @$filters, 2, '2 filters' );
is( $filters->[0]->type, 'HTMLEscape' );
is( $filters->[1]->type, 'Whitespace' );
}
{
my $filters = $form->get_filters( { type => 'LowerCase' } );
is( @$filters, 1, '1 filter' );
is( $filters->[0]->name, 'name' );
}