diff options
Diffstat (limited to 't/argspec-bad.t')
-rw-r--r-- | t/argspec-bad.t | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/t/argspec-bad.t b/t/argspec-bad.t new file mode 100644 index 0000000..8c0b199 --- /dev/null +++ b/t/argspec-bad.t @@ -0,0 +1,40 @@ +use Test::More tests => 6; + +use strict; +use HTML::Parser (); + +my $p = HTML::Parser->new(api_version => 3); + +eval { + $p->handler(end => "end", q(xyzzy)); +}; +like($@, qr/^Unrecognized identifier xyzzy in argspec/); + + +eval { + $p->handler(end => "end", q(tagname text)); +}; +like($@, qr/^Missing comma separator in argspec/); + + +eval { + $p->handler(end => "end", q(tagname, "text)); +}; +like($@, qr/^Unterminated literal string in argspec/); + + +eval { + $p->handler(end => "end", q(tagname, "t\\t")); +}; +like($@, qr/^Backslash reserved for literal string in argspec/); + +eval { + $p->handler(end => "end", '"' . ("x" x 256) . '"'); +}; +like($@, qr/^Literal string is longer than 255 chars in argspec/); + +$p->handler(end => sub { is(length(shift), 255) }, + '"' . ("x" x 255) . '"'); +$p->parse("</x>"); + + |