use strict;
use warnings;
use HTML::Shakan;
use Test::More tests => 2;
use CGI;
my $RESERVED_ID = {
'root' => 1,
'admin' => 1,
};
sub gen_form {
my $q = shift;
HTML::Shakan->new(
request => $q,
fields => [
TextField(
name => 'id',
custom_validation => sub {
my ($form, $field) = @_;
if ($RESERVED_ID->{$form->param($field->name)}) {
$form->set_error($field->name() => 'reserved');
}
},
),
],
);
}
{
my $f1 = gen_form(
CGI->new({
id => 'foo',
})
);
ok $f1->is_valid(), 'valid';
}
{
my $f2 = gen_form(
CGI->new({
id => 'admin',
})
);
ok ! $f2->is_valid(), 'invalid';
}