form tests
Simon Elliott [Mon, 13 Jun 2011 12:16:44 +0000 (13:16 +0100)]
remove warning

lib/HTML/Zoom/FilterBuilder.pm
t/form_helpers.t

index 6a6e413..bfb8f66 100644 (file)
@@ -42,9 +42,6 @@ sub set_attribute {
 sub _parse_attribute_args {
   my $self = shift;
 
-  warn "WARNING: Long form arg (name => 'class', value => 'x') is deprecated. This may not do what you originally intended..."
-    if(@_ == 1 && $_[0]->{'name'} && $_[0]->{'value'});
-    
   my $opts = ref($_[0]) eq 'HASH' ? $_[0] : {$_[0] => $_[1]};
   for (values %{$opts}) { $self->_zconfig->parser->html_escape($_); }
   return $opts;
@@ -387,6 +384,15 @@ sub validate_form {
   });
 }
 
+sub val {
+  my ($self, $value) = @_;
+  #set value on an element. if its a select select its option
+  #if it's a checkbox check it otherwise set attr value
+  sub {
+    return $self->set_attribute(value => $value);
+  }
+}
+
 sub validate_and_fill {
   my ($self, $to, $fill) = @_;
   sub {
index 4423af3..d19f728 100644 (file)
@@ -1,5 +1,6 @@
 use strictures 1;
 use Test::More;
+use Test::More;
 
 use HTML::Zoom;
 
@@ -35,13 +36,31 @@ END
 
 my $z = HTML::Zoom->from_html($tmpl);
 
-my %rules;
-my $validate_and_fill = sub {
- $_ = $_->set_attribute("test" => "test");
- #use Devel::Dwarn;Dwarn \@_;
- $_;
-};
+my ($expect);
+
+($expect = $tmpl) =~ s/name="input_field" /name="input_field" value="testval" /;
+
+is(
+  $z->select('input[name="input_field"]')->val('testval')->to_html,
+  $expect,
+  'set value on input=text'
+);
+
+($expect = $tmpl) =~ s/name="input_field" /name="input_field" value="testval" /;
+
+is(
+  $z->select('input[name="input_check"]')->val(1)->to_html,
+  $expect,
+  'set value on input=checkbox'
+);
 
-print $z->select('form')->validate_form(\%rules, {input_field => "Test", input_field2 => "Moo"})->to_html;
-use Devel::Dwarn;Dwarn \%rules;
+# my %rules;
+# my $validate_and_fill = sub {
+#  $_ = $_->set_attribute("test" => "test");
+#  #use Devel::Dwarn;Dwarn \@_;
+#  $_;
+# };
+# 
+# print $z->select('form')->validate_form(\%rules, {input_field => "Test", input_field2 => "Moo"})->to_html;
+# use Devel::Dwarn;Dwarn \%rules;