print "1..6\n"; use strict; use HTML::Parser (); my $p = HTML::Parser->new(api_version => 3); eval { $p->handler(end => "end", q(xyzzy)); }; print $@; print "not " unless $@ && $@ =~ /^Unrecognized identifier xyzzy in argspec/; print "ok 1\n"; eval { $p->handler(end => "end", q(tagname text)); }; print $@; print "not " unless $@ && $@ =~ /^Missing comma separator in argspec/; print "ok 2\n"; eval { $p->handler(end => "end", q(tagname, "text)); }; print $@; print "not " unless $@ && $@ =~ /^Unterminated literal string in argspec/; print "ok 3\n"; eval { $p->handler(end => "end", q(tagname, "t\\t")); }; print $@; print "not " unless $@ && $@ =~ /^Backslash reserved for literal string in argspec/; print "ok 4\n"; eval { $p->handler(end => "end", '"' . ("x" x 256) . '"'); }; print $@; print "not " unless $@ && $@ =~ /^Literal string is longer than 255 chars in argspec/; print "ok 5\n"; $p->handler(end => sub { print "ok 6\n" if length(shift) eq 255 }, '"' . ("x" x 255) . '"'); $p->parse("");