diff options
Diffstat (limited to 't/declaration.t')
-rw-r--r-- | t/declaration.t | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/t/declaration.t b/t/declaration.t new file mode 100644 index 0000000..17de561 --- /dev/null +++ b/t/declaration.t @@ -0,0 +1,62 @@ +use Test::More tests => 2; + +use HTML::Parser; +my $res = ""; + +sub decl +{ + my $t = shift; + $res .= "[" . join("\n", map "<$_>", @$t) . "]"; +} + +sub text +{ + $res .= shift; +} + +my $p = HTML::Parser->new(declaration_h => [\&decl, "tokens"], + default_h => [\&text, "text"], + ); + +$p->parse(<<EOT)->eof; +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" --<comment>-- + "http://www.w3.org/TR/html40/strict.dtd"> + +<!ENTITY foo "<!-- foo -->"> +<!Entity foo "<!-- foo -->"> + +<!row --> foo +EOT + +is($res, <<EOT); +[<DOCTYPE> +<HTML> +<PUBLIC> +<"-//W3C//DTD HTML 4.01//EN"> +<--<comment>--> +<"http://www.w3.org/TR/html40/strict.dtd">] + +[<ENTITY> +<foo> +<"<!-- foo -->">] +[<Entity> +<foo> +<"<!-- foo -->">] + +<!row --> foo +EOT + +$res = ""; +$p->parse(<<EOT)->eof; +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"[]> +EOT +is($res, <<EOT); +[<DOCTYPE> +<html> +<PUBLIC> +<"-//W3C//DTD XHTML 1.0 Strict//EN"> +<"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<[]>] +EOT + |