my
$tests
= 25;
plan
tests
=>
$tests
;
use_ok(
'HTML::FormHandler'
);
{
has
'+name'
=> (
default
=>
'testform_'
);
has_field
'optname'
=> (
temp
=>
'First'
);
has_field
'reqname'
=> (
required
=> 1 );
has_field
'somename'
;
has_field
'my_selected'
=> (
type
=>
'Checkbox'
);
sub
field_list {
return
{
fields
=> {
fruit
=>
'Select'
,
optname
=> {
temp
=>
'Second'
}
},
};
}
sub
options_fruit {
return
(
1
=>
'apples'
,
2
=>
'oranges'
,
3
=>
'kiwi'
,
);
}
}
my
$form
= My::Form->new;
is(
$form
->field(
'optname'
)->temp,
'Second'
,
'got second optname field'
);
ok( !
$form
->validate,
'Empty data'
);
my
$good
= {
reqname
=>
'hello'
,
optname
=>
'not req'
,
fruit
=> 2,
};
ok(
$form
->validate(
$good
),
'Good data'
);
is(
$form
->field(
'somename'
)->value,
undef
,
'no value for somename'
);
ok( !
$form
->field(
'somename'
)->has_value,
'predicate no value'
);
$form
->field(
'somename'
)->input(
'testing'
);
$form
->validate;
is(
$form
->field(
'somename'
)->value,
'testing'
,
'use input for extra data'
);
is(
$form
->field(
'my_selected'
)->value, 0,
'correct value for unselected checkbox'
);
ok( !
$form
->validate( {} ),
'form doesn\'t validate with empty params'
);
is(
$form
->num_errors, 0,
'form doesn\'t have errors with empty params'
);
my
$bad_1
= {
reqname
=>
''
,
optname
=>
'not req'
,
fruit
=> 4,
};
ok( !
$form
->validate(
$bad_1
),
'bad 1'
);
ok(
$form
->field(
'fruit'
)->has_errors,
'fruit has error'
);
ok(
$form
->field(
'reqname'
)->has_errors,
'reqname has error'
);
ok( !
$form
->field(
'optname'
)->has_errors,
'optname has no error'
);
is(
$form
->field(
'fruit'
)->id,
"testform_fruit"
,
'field has id'
);
is(
$form
->field(
'fruit'
)->label,
'Fruit'
,
'field label'
);
ok( !
$form
->validate( {} ),
'no leftover params'
);
is(
$form
->num_errors, 0,
'no leftover errors'
);
ok( !
$form
->field(
'reqname'
)->has_errors,
'no leftover error in field'
);
ok( !
$form
->field(
'optname'
)->fif,
'no lefover fif values'
);
my
$init_object
= {
reqname
=>
'Starting Perl'
,
optname
=>
'Over Again'
};
$form
= My::Form->new(
init_object
=>
$init_object
);
is(
$form
->field(
'optname'
)->value,
'Over Again'
,
'get right value from form'
);
$form
->validate({});
ok( !
$form
->validated,
'form validated'
);
is_deeply(
$form
->fif,
$init_object
,
'get right fif with init_object'
);
is_deeply(
$form
->
values
,
$init_object
,
'get right values from form'
);
ok(
$form
->validate(
$init_object
),
'form validates with params'
);