X-Git-Url: http://git.shiar.net/perl/html-form-simple.git/blobdiff_plain/07e0ed545852a3c579b3475786c02d84a48eb3f2..d5415f8292000c0eba35458ce61500eaff9cd4d1:/t/html.t diff --git a/t/html.t b/t/html.t index 0535da9..b7568b0 100644 --- a/t/html.t +++ b/t/html.t @@ -5,7 +5,7 @@ use warnings; use Test::More; -plan tests => 31; +plan tests => 47; use_ok('HTML::Form::Simple'); @@ -119,15 +119,22 @@ is( ); is( - $form->input('', '', {disabled => 0, something => undef}), + $form->input('', '', { + disabled => 0, + something => undef, + class => undef, + style => '', + name => 'ignore', + value => 'overrides', + }), '', 'input with empty attributes' ); is( - $form->input(undef, undef, {name => 'override', value => 'override'}), - '', - 'ignore input overrides' + $form->input(undef, undef, {name => '0', value => '0'}), + '', + 'input overrides' ); is( @@ -176,29 +183,175 @@ is( # select -is( - $form->select, - '', # malformed html: at least 1 option required +is_deeply( + [ $form->select ], + [ qw() ], # malformed html: at least 1 option required 'empty select' ); -is( - $form->select(undef, [], '', {name => ''}), - '', +is_deeply( + [ $form->select(undef, [], '', {name => '', class => ''}) ], + [ qw() ], 'explicit empty select' ); -is( - $form->select(undef, [undef]), - '', +is_deeply( + [ $form->select(undef, [undef]) ], + [ qw() ], 'minimal select' ); -is( - $form->select(foo => [1..2]), - '', +is_deeply( + [ $form->select(foo => [1, 2]) ], + [ + '' + ], 'select contents' ); +is_deeply( + [ $form->select(foo => [1, 2], 3) ], + [ + '' + ], + 'select invalid default' +); + +is_deeply( + [ $form->select(undef, [1, 2], 2) ], + [ + '' + ], + 'select default' +); + +is_deeply( + [ + $form->select(foo => [ + '<">', {value => 2, disabled => 1, selected => 0, class => 1}, {selected => 1} + ], '2', {id => '', class => 'a 1}) + ], + [ + '' + ], + 'complex select' +); + +is( + scalar $form->select(foo => [1, 2]), + '', + 'select scalar' +); + +# radio + +is_deeply( + [ $form->select(foo => [1], {type => 'radio'}) ], + [ '' ], + 'input select' +); + +is_deeply( + [ + $form->select(foo => [ + 1, {value => 2, name => '', label => ''}, {value => 3, id => '', type => ''} + ], {type => 'checkbox', label => {3 => 'test', 2 => 'ignore'}, value => '1'}) + ], + [ + '', + '', + '', + ], + 'input selects' +); + +is( + $form->radio(foo => 'test'), + '', + 'radio method' +); + +is( + $form->radio(foo => undef, [2]), #TODO + '', + 'labelless radio' +); + +is( + $form->radio(undef, {checked => 1}), + '', + 'simple radio button' +); + +is_deeply( + [ $form->radio(undef, ['', '<">']) ], + [ + '', + '', + ], + 'multiple radios' +); + +is_deeply( + [ $form->radio(foo => 'test', ['foo', ''], {value => '', id => ''}) ], + [ + '', + '', + ], + 'multiple radios with custom value' +); + +is_deeply( + [ $form->radio(foo => ['', 0], [0, 1, '']) ], + [ + '', + '', + '', + ], + 'multiple radios with custom values' +); + +# check + +is( + $form->check('foo'), + '', + 'check method' +); + +is( + $form->check(foo => 'test', {value => undef}), + '', + 'check parameters' +); + +is( + $form->check(undef, '', 1), + '', + 'simple checkbox' +); + +TODO: { + local $TODO = 'shorthand'; +is_deeply( + [ $form->check(undef, ['', '<">']) ], + [ + '', + '', + ], + 'multiple checkboxes' +); +}; + #TODO