1use strict;
2use warnings;
3
4use HTML::Parser ();
5use Test::More tests => 12;
6
7my $pi;
8my $orig;
9
10my $p = HTML::Parser->new(
11    process_h => [sub { $pi = shift; $orig = shift; }, "token0,text"]);
12
13$p->parse("<a><?foo><a>");
14
15is($pi,   "foo");
16is($orig, "<?foo>");
17
18$p->parse("<a><?><a>");
19is($pi,   "");
20is($orig, "<?>");
21
22$p->parse(
23    "<a><?
24foo
25><a>"
26);
27is($pi,   "\nfoo\n");
28is($orig, "<?\nfoo\n>");
29
30for (qw(< a > < ? b a r > < a >)) {
31    $p->parse($_);
32}
33
34is($pi,   "bar");
35is($orig, "<?bar>");
36
37$p->xml_mode(1);
38
39$p->parse("<a><?foo>bar??><a>");
40is($pi,   "foo>bar?");
41is($orig, "<?foo>bar??>");
42
43$p->parse("<a><??></a>");
44is($pi,   "");
45is($orig, "<??>");
46