Debian lenny version packages
[pkg-perl] / deb-src / libhtml-parser-perl / libhtml-parser-perl-3.56 / t / entities2.t
1 #!perl -w
2
3 use strict;
4 use Test::More tests => 9;
5
6 use HTML::Entities qw(_decode_entities);
7
8 eval {
9     _decode_entities("<", undef);
10 };
11 like($@, qr/^Can't inline decode readonly string/);
12
13 eval {
14     my $a = "";
15     _decode_entities($a, $a);
16 };
17 like($@, qr/^2nd argument must be hash reference/);
18
19 eval {
20     my $a = "";
21     _decode_entities($a, []);
22 };
23 like($@, qr/^2nd argument must be hash reference/);
24
25 $a = "<";
26 _decode_entities($a, undef);
27 is($a, "<");
28
29 _decode_entities($a, { "lt" => "<" });
30 is($a, "<");
31
32 my $x = "x" x 20;
33
34 my $err;
35 for (":", ":a", "a:", "a:a", "a:a:a", "a:::a") {
36     my $a = $_;
37     $a =~ s/:/&a;/g;
38     my $b = $_;
39     $b =~ s/:/$x/g;
40     _decode_entities($a, { "a" => $x });
41     if ($a ne $b) {
42         diag "Something went wrong with '$_'";
43         $err++;
44     }
45 }
46 ok(!$err);
47
48 $a = "foo&nbsp;bar";
49 _decode_entities($a, \%HTML::Entities::entity2char);
50 is($a, "foo\xA0bar");
51
52 $a = "foo&nbspbar";
53 _decode_entities($a, \%HTML::Entities::entity2char);
54 is($a, "foo&nbspbar");
55
56 _decode_entities($a, \%HTML::Entities::entity2char, 1);
57 is($a, "foo\xA0bar");