From: Kirrily R. <sk...@us...> - 2002-01-31 22:16:09
|
Update of /cvsroot/formmagick/formmagick/lib/CGI In directory usw-pr-cvs1:/tmp/cvs-serv27672/lib/CGI Modified Files: FormMagick.pm Log Message: OPTION hashes now sort by value rather than key. However, the tests are b0rked. I suspect something in Test::More is at fault... possibly the documentation ;) Index: FormMagick.pm =================================================================== RCS file: /cvsroot/formmagick/formmagick/lib/CGI/FormMagick.pm,v retrieving revision 1.90 retrieving revision 1.91 diff -C2 -r1.90 -r1.91 *** FormMagick.pm 2002/01/29 20:47:26 1.90 --- FormMagick.pm 2002/01/31 22:05:07 1.91 *************** *** 656,660 **** Arrays will result in options being sorted in the same order they were ! listed. Hashes will be sorted by key using the default Perl C<sort()>. =item * --- 656,661 ---- Arrays will result in options being sorted in the same order they were ! listed. Hashes will be sorted by value using the Perl's cmp() function ! (ASCIIbetical sort, in other words). =item * *************** *** 783,794 **** { labels => \@options_labels, $vals => \@option_values } ! =for testing ! TODO: { ! local $TODO = "writeme"; ! local $^W = 0; # Until these tests are happy ! ok($fm->get_option_labels_and_values($f), "get option labels and values"); ! ok($fm->get_option_labels_and_values($f), "fail gracefully with empty/no options attribute"); ! } =cut --- 784,805 ---- { labels => \@options_labels, $vals => \@option_values } ! =begin testing + my $fieldinfo = { + options => "'foo', 'bar', 'baz'", + }; + my $result = $fm->get_option_labels_and_values($fieldinfo); + eq_array($result->{labels}, [qw(foo bar baz)], "Picked up labels from array"); + eq_array($result->{vals}, [qw(foo bar baz)], "Picked up vals from array"); + + $fieldinfo = { + options => "'foo' => 'zzz', 'bar' => 'yyy', 'baz' => 'xxx'", + }; + my $result = $fm->get_option_labels_and_values($fieldinfo); + eq_array($result->{labels}, [qw(xxx yyy zzz)]); + eq_array($result->{vals}, [qw(baz bar foo)]); + + =end testing + =cut *************** *** 808,816 **** my $options_ref = $self->parse_options_attribute($options_attribute); ! # DWIM with the data that came in from the XML file or the options function, # since we may have gotten an array or a hash for those values. if (ref($options_ref) eq "HASH") { ! foreach my $k (sort keys %$options_ref) { # the keys are the option field values, the values are the option text push @option_values, $k; --- 819,829 ---- my $options_ref = $self->parse_options_attribute($options_attribute); ! # DWIM with the data that came in from the XML file or the options function, # since we may have gotten an array or a hash for those values. if (ref($options_ref) eq "HASH") { ! foreach my $k (sort { ! $options_ref->{$a} cmp $options_ref->{$b} ! } keys %$options_ref) { # the keys are the option field values, the values are the option text push @option_values, $k; *************** *** 829,832 **** --- 842,846 ---- return {labels => \@option_labels, vals => \@option_values}; } + =pod |