getting things synced up for a release
[catagits/HTML-Zoom.git] / t / dwim-autoload.t
index 405543e..8765a99 100644 (file)
@@ -100,15 +100,6 @@ like(
 like(
   HTML::Zoom
     ->from_html(q[<p class="first">Hi!</p>])
-    ->add_to_attribute('p', {name => 'class', value => 'para'})
-    ->to_html,
-  qr/first para/,
-  'Got correct from add_to_attribute'
-);
-
-like(
-  HTML::Zoom
-    ->from_html(q[<p class="first">Hi!</p>])
     ->add_to_attribute('p', class => 'para')
     ->to_html,
   qr/first para/,
@@ -124,15 +115,6 @@ like(
   'Got correct from set_attribute'
 );
 
-like(
-  HTML::Zoom
-    ->from_html(q[<p class="first">Hi!</p>])
-    ->set_attribute('p', {name => 'class', value => 'para'})
-    ->to_html,
-  qr/class="para"/,
-  'Got correct from set_attribute'
-);
-
 is(
   HTML::Zoom
     ->from_html(q[<p class="first">Hi!</p>])
@@ -330,7 +312,7 @@ sub code_stream (&) {
       'li.bar' => ['bar'],
     })->to_html;
   is $dwim, '<ul><li class="foo">foo</li><li class="bar">bar</li></ul>',
-    'Multiple selectors from hashref (via replace_content)';
+    'Hashref selectors (via replace_content)';
 }
 
 {
@@ -341,7 +323,39 @@ sub code_stream (&) {
       'li.bar' => [ class => 'qux' ],
     })->to_html;
   is $dwim, '<ul><li class="baz"></li><li class="qux"></li></ul>',
-    'Multiple selectors from hashref (via set_attribute)';
+    'Hashref selectors (via set_attribute)';
+}
+
+{
+  ok my $dwim = HTML::Zoom
+  ->from_html(q[<ul><li class="foo"></li><li class="bar"></li></ul>])
+  ->select('ul')->collect({ 
+  passthrough => 1,
+  filter => sub {
+      $_->set_attribute({
+        'li.foo' => [ class => 'baz' ],
+        'li.bar' => [ class => 'qux' ],
+      });
+    }
+  })->to_html;
+  is $dwim, '<ul><li class="baz"></li><li class="qux"></li></ul>',
+    'Hashref selectors on codestream';
+}
+
+{
+  ok my $dwim = HTML::Zoom
+  ->from_html(q[<ul><li class="foo" name="bar"></li><li class="bar"></li></ul>])
+  ->select('ul')->collect({ 
+  passthrough => 1,
+  filter => sub {
+      $_->set_attribute({
+        'li.foo' => [{ class => 'baz', name => 'moo', }],
+        'li.bar' => [ class => 'qux' ],
+      });
+    }
+  })->to_html;
+  is $dwim, '<ul><li class="baz" name="moo"></li><li class="qux"></li></ul>',
+    'Hashref selectors with hashref attributes on codestream';
 }
 
 done_testing;