process.t   [plain text]


use strict;

print "1..6\n";

my $pi;
my $orig;

use HTML::Parser ();
my $p = HTML::Parser->new(process_h => [sub { $pi = shift; $orig = shift; },
				        "token0,text"]
	                 );

$p->parse("<a><?foo><a>");

print "not " unless $pi eq "foo" && $orig eq "<?foo>";
print "ok 1\n";

$p->parse("<a><?><a>");
print "not " unless $pi eq "" && $orig eq "<?>";
print "ok 2\n";

$p->parse("<a><?
foo
><a>");
print "not "  unless $pi eq "\nfoo\n" && $orig eq "<?\nfoo\n>";
print "ok 3\n";

for (qw(< a > < ? b a r > < a >)) {
   $p->parse($_);
}

print "not " unless $pi eq "bar" && $orig eq "<?bar>";
print "ok 4\n";

$p->xml_mode(1);

$p->parse("<a><?foo>bar??><a>");
print "not " unless $pi eq "foo>bar?" && $orig eq "<?foo>bar??>";
print "ok 5\n";

$p->parse("<a><??></a>");
print "not " unless $pi eq "" && $orig eq "<??>";
print "ok 6\n";