From: Mischa Poslawsky Date: Fri, 22 Aug 2008 18:15:46 +0000 (+0200) Subject: XXX: reverse radio options X-Git-Url: http://git.shiar.nl/perl/html-form-simple.git/commitdiff_plain/906dde920f0d0f551dda592916347b2555b4b378 XXX: reverse radio options --- diff --git a/lib/HTML/Form/Simple.pm b/lib/HTML/Form/Simple.pm index 33da2b6..59f0e4c 100644 --- a/lib/HTML/Form/Simple.pm +++ b/lib/HTML/Form/Simple.pm @@ -171,7 +171,7 @@ sub select { sub radio { my $self = shift; - my ($name, $label, $rows, $attr) = $self->_attr(3, @_); + my ($name, $rows, $label, $attr) = $self->_attr(3, @_); if (not defined $rows) { if (defined $label) { @@ -237,7 +237,7 @@ HTML::Form::Simple - Generate HTML form elements msg => 'Textarea default', {rows => 4, style => 'background:red'} ) ], [ Gender => join ' or ', $input->radio( - sex => ['m', 'f'] + sex => [qw(m f)], [qw(Male Female)] ) ], [ Colour => scalar $input->select( favcolour => [qw(Blue Green Red)], 'Green' @@ -252,12 +252,6 @@ HTML::Form::Simple - Generate HTML form elements =over -=item C|C parameter order - -Row options (hash ref details) are inconsistent: -on labels for C, on values for C. -Make behaviour more logical. - =item C method $input->hidden(foo => $input->default('foo')); diff --git a/t/html.t b/t/html.t index 89f82a1..757b248 100644 --- a/t/html.t +++ b/t/html.t @@ -5,7 +5,7 @@ use warnings; use Test::More; -plan tests => 65; +plan tests => 66; use_ok('HTML::Form::Simple'); @@ -312,14 +312,14 @@ is_deeply( is( $form->radio(foo => 'test'), - '', + '', 'radio method' ); is( - $form->radio(foo => undef, 2), - '', - 'labelless radio' + $form->radio(foo => undef, 'test'), + '', + 'labeled radio' ); is( @@ -330,15 +330,24 @@ is( is_deeply( [ $form->radio(undef, ['', '<">']) ], + [ + '', + '', + ], + 'multiple radios' +); + +is_deeply( + [ $form->radio(undef, undef, ['', '<">']) ], [ '', '', ], - 'multiple radios' + 'multiple radio labels' ); is_deeply( - [ $form->radio(foo => 'test', ['foo', ''], {value => '', id => ''}) ], + [ $form->radio(foo => ['foo', ''], 'test', {value => '', id => ''}) ], [ '', '', @@ -347,7 +356,7 @@ is_deeply( ); is_deeply( - [ $form->radio(foo => ['', 0], [0, 1, '']) ], + [ $form->radio(foo => [0, 1, ''], ['', 0]) ], [ '', '', @@ -358,8 +367,8 @@ is_deeply( { # make sure arguments aren't modified - my @args = (foo => [0, 1], [0, {value => 1}], {name => 0, value => 1}); - my @orgs = (foo => [0, 1], [0, {value => 1}], {name => 0, value => 1}); + my @args = (foo => [0, {value => 1}], [0, 1], {name => 0, value => 1}); + my @orgs = (foo => [0, {value => 1}], [0, 1], {name => 0, value => 1}); my @output = ( '', '', @@ -375,7 +384,7 @@ is_deeply( [ $form->check(@args) ], [ '', - '', + '', ], 'options var to check' ); @@ -485,7 +494,7 @@ is( ); is_deeply( - [ $defform->radio(0 => undef, [1, 0]) ], + [ $defform->radio(0 => [1, 0]) ], [ '', '',