74 |
#return Whatpm::Charset::UnicodeChecker->new_handle ($_[0], 'html5'); |
#return Whatpm::Charset::UnicodeChecker->new_handle ($_[0], 'html5'); |
75 |
}; # $chk |
}; # $chk |
76 |
|
|
77 |
|
my $p = Whatpm::XML::Parser->new; |
78 |
my $result; |
my $result; |
79 |
unless (defined $test->{element}) { |
unless (defined $test->{element}) { |
80 |
Whatpm::XML::Parser->parse_char_string |
$p->parse_char_string ($test->{data}->[0] => $doc, $onerror, $chk); |
|
($test->{data}->[0] => $doc, $onerror, $chk); |
|
81 |
$result = dumptree ($doc); |
$result = dumptree ($doc); |
82 |
} else { |
} else { |
83 |
## TODO: ... |
## TODO: ... |
115 |
$test->{'xml-standalone'}->[1]->[0] eq 'true' ? 1 : 0, |
$test->{'xml-standalone'}->[1]->[0] eq 'true' ? 1 : 0, |
116 |
'XML standalone: ' . Data::Dumper::qquote ($test->{data}->[0]); |
'XML standalone: ' . Data::Dumper::qquote ($test->{data}->[0]); |
117 |
} |
} |
118 |
|
|
119 |
|
if ($test->{entities}) { |
120 |
|
my @e; |
121 |
|
for (keys %{$p->{ge}}) { |
122 |
|
my $ent = $p->{ge}->{$_}; |
123 |
|
my $v = '<!ENTITY ' . $ent->{name} . ' "'; |
124 |
|
$v .= $ent->{value} if defined $ent->{value}; |
125 |
|
$v .= '" "'; |
126 |
|
$v .= $ent->{pubid} if defined $ent->{pubid}; |
127 |
|
$v .= '" "'; |
128 |
|
$v .= $ent->{sysid} if defined $ent->{sysid}; |
129 |
|
$v .= '" '; |
130 |
|
$v .= $ent->{notation} if defined $ent->{notation}; |
131 |
|
$v .= '>'; |
132 |
|
push @e, $v; |
133 |
|
} |
134 |
|
for (keys %{$p->{pe}}) { |
135 |
|
my $ent = $p->{pe}->{$_}; |
136 |
|
my $v = '<!ENTITY % ' . $ent->{name} . ' "'; |
137 |
|
$v .= $ent->{value} if defined $ent->{value}; |
138 |
|
$v .= '" "'; |
139 |
|
$v .= $ent->{pubid} if defined $ent->{pubid}; |
140 |
|
$v .= '" "'; |
141 |
|
$v .= $ent->{sysid} if defined $ent->{sysid}; |
142 |
|
$v .= '" '; |
143 |
|
$v .= $ent->{notation} if defined $ent->{notation}; |
144 |
|
$v .= '>'; |
145 |
|
push @e, $v; |
146 |
|
} |
147 |
|
ok join ("\x0A", @e), $test->{entities}->[0], |
148 |
|
'Entities: ' . Data::Dumper::qquote ($test->{data}->[0]); |
149 |
|
} |
150 |
|
|
151 |
$test->{document}->[0] .= "\x0A" if length $test->{document}->[0]; |
$test->{document}->[0] .= "\x0A" if length $test->{document}->[0]; |
152 |
ok $result, $test->{document}->[0], |
ok $result, $test->{document}->[0], |
168 |
${test_dir_name}ns-attrs-1.dat |
${test_dir_name}ns-attrs-1.dat |
169 |
${test_dir_name}doctypes-1.dat |
${test_dir_name}doctypes-1.dat |
170 |
${test_dir_name}doctypes-2.dat |
${test_dir_name}doctypes-2.dat |
171 |
|
${test_dir_name}eldecls-1.dat |
172 |
${test_dir_name}attlists-1.dat |
${test_dir_name}attlists-1.dat |
173 |
|
${test_dir_name}entities-1.dat |
174 |
|
${test_dir_name}entities-2.dat |
175 |
|
${test_dir_name}notations-1.dat |
176 |
|
${test_dir_name}entrefs-1.dat |
177 |
]; |
]; |
178 |
|
|
179 |
require 't/testfiles.pl'; |
require 't/testfiles.pl'; |
181 |
errors => {is_list => 1}, |
errors => {is_list => 1}, |
182 |
document => {is_prefixed => 1}, |
document => {is_prefixed => 1}, |
183 |
'document-fragment' => {is_prefixed => 1}, |
'document-fragment' => {is_prefixed => 1}, |
184 |
|
entities => {is_prefixed => 1}, |
185 |
}, \&test) for @FILES; |
}, \&test) for @FILES; |
186 |
|
|
187 |
## License: Public Domain. |
## License: Public Domain. |