ignore if attr doesn't exist.
[catagits/HTML-Zoom.git] / t / actions.t
index dbfda0b..d1dcc54 100644 (file)
@@ -58,9 +58,9 @@ is(
 ($expect = $tmpl) =~ s/name="cow" class="main"/name="bar" class="foo"/;
 
 is(
-  run_for { $_->set_attribute({ 'class' => 'foo', 'name' => 'bar'}) },
+  run_for { $_->set_attr({ 'class' => 'foo', 'name' => 'bar'}) },
   $expect,
-  'set attributes using hashref form'
+  'set attributes using hashref form (shorthand)'
 );
 
 ($expect = $tmpl) =~ s/class="main"/class="main" foo="bar"/;
@@ -79,6 +79,22 @@ is(
   'add attribute on existing attribute'
 );
 
+($expect = $tmpl) =~ s/class="main"/class="main foo"/;
+
+is(
+  run_for { $_->add_class('foo') },
+  $expect,
+  'add attribute on existing attribute (shorthand)'
+);
+
+($expect = $tmpl) =~ s/class="main"/class="main" id="foo"/;
+
+is(
+  run_for { $_->set_id('foo') },
+  $expect,
+  'set_id (shorthand)'
+);
+
 ($expect = $tmpl) =~ s/class="main"/class="main" foo="bar"/;
 
 is(
@@ -101,6 +117,28 @@ is(
   'remove attribute on non existing attribute'
 );
 
+($expect = $tmpl) =~ s/class="main"/class=""/;
+
+is(
+  run_for { $_->remove_from_attribute({ class => 'main' }) },
+  $expect,
+  'remove name from attribute'
+);
+
+is(
+  run_for { $_->remove_from_attribute({ madeup => 'main' }) },
+  $tmpl,
+  'remove name from non existing attribute (ignored)'
+);
+
+($expect = $tmpl) =~ s/class="main"/class=""/;
+
+is(
+  run_for { $_->remove_class( 'main' ) },
+  $expect,
+  'remove_class'
+);
+
 ($expect = $tmpl) =~ s/ class="main"//;
 
 is(