</body>
END
+my $stub = '<div class="waargh"></div>';
+
# el#id
-is( HTML::Zoom->from_html('<div id="yo"></div>')
+is( HTML::Zoom->from_html('<div id="yo"></div>'.$stub)
->select('div#yo')
->replace_content('grg')
->to_html,
- '<div id="yo">grg</div>',
+ '<div id="yo">grg</div>'.$stub,
'E#id works' );
# el.class1
-is( HTML::Zoom->from_html('<div class="yo"></div>')
+is( HTML::Zoom->from_html('<div class="yo"></div>'.$stub)
->select('div.yo')
->replace_content('grg')
->to_html,
- '<div class="yo">grg</div>',
+ '<div class="yo">grg</div>'.$stub,
'E.class works' );
# el[attr]
-is( HTML::Zoom->from_html('<div frew="yo"></div>')
+is( HTML::Zoom->from_html('<div frew="yo"></div>'.$stub)
->select('div[frew]')
->replace_content('grg')
->to_html,
- '<div frew="yo">grg</div>',
+ '<div frew="yo">grg</div>'.$stub,
'E[attr] works' );
# el[attr="foo"]
-is( HTML::Zoom->from_html('<div frew="yo"></div>')
+is( HTML::Zoom->from_html('<div frew="yo"></div>'.$stub)
->select('div[frew="yo"]')
->replace_content('grg')
->to_html,
- '<div frew="yo">grg</div>',
+ '<div frew="yo">grg</div>'.$stub,
'E[attr="val"] works' );
# el[attr=foo]
-is( HTML::Zoom->from_html('<div frew="yo"></div>')
+is( HTML::Zoom->from_html('<div frew="yo"></div>'.$stub)
->select('div[frew=yo]')
->replace_content('grg')
->to_html,
- '<div frew="yo">grg</div>',
+ '<div frew="yo">grg</div>'.$stub,
'E[attr=val] works' );
# el[attr*="foo"]
-is( HTML::Zoom->from_html('<div f="frew goog"></div>')
+is( HTML::Zoom->from_html('<div f="frew goog"></div>'.$stub)
->select('div[f*="oo"]')
->replace_content('grg')
->to_html,
- '<div f="frew goog">grg</div>',
+ '<div f="frew goog">grg</div>'.$stub,
'E[attr*="val"] works' );
# el[attr^="foo"]
-is( HTML::Zoom->from_html('<div f="foobar"></div>')
+is( HTML::Zoom->from_html('<div f="foobar"></div>'.$stub)
->select('div[f^="foo"]')
->replace_content('grg')
->to_html,
- '<div f="foobar">grg</div>',
+ '<div f="foobar">grg</div>'.$stub,
'E[attr^="val"] works' );
# el[attr$="foo"]
-is( HTML::Zoom->from_html('<div f="foobar"></div>')
+is( HTML::Zoom->from_html('<div f="foobar"></div>'.$stub)
->select('div[f$="bar"]')
->replace_content('grg')
->to_html,
- '<div f="foobar">grg</div>',
+ '<div f="foobar">grg</div>'.$stub,
'E[attr$="val"] works' );
# el[attr*="foo"]
-is( HTML::Zoom->from_html('<div f="foo bar"></div>')
+is( HTML::Zoom->from_html('<div f="foo bar"></div>'.$stub)
->select('div[f*="bar"]')
->replace_content('grg')
->to_html,
- '<div f="foo bar">grg</div>',
+ '<div f="foo bar">grg</div>'.$stub,
'E[attr*="val"] works' );
# [attr=bar]
'Multiple selectors: el[attr=bar],[attr=foo]');
+# selector parse error test:
+eval{
+ HTML::Zoom->from_html('<span att="bar"></span>')
+ ->select('[att=bar')
+ ->replace_content('cats')
+ ->to_html;
+};
+like( $@, qr/Error parsing dispatch specification/,
+ 'Malformed attribute selector ([att=bar) results in a helpful error' );
+
+=pod
+
# sel1 sel2
is( HTML::Zoom->from_html('<table><tr></tr><tr></tr></table>')
->select('table tr')
'<table><tr><td>frew</td></tr><tr><td>frew</td></tr></table>',
'sel1 sel2 sel3 works' );
+
+
+=cut
+
done_testing;
->from_html($tmpl)
->select(shift)->replace("the monkey")->to_html;
my $count = 0;
- while ( $output =~ /\G?.*the monkey/gc ){
+ while ( $output =~ /the monkey/g ){
$count++;
}
return $count;