File: 18_escape_amp.t

package info (click to toggle)
libxml-treepp-perl 0.43-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 680 kB
  • sloc: perl: 810; xml: 58; sh: 41; makefile: 2
file content (41 lines) | stat: -rwxr-xr-x 1,858 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# ----------------------------------------------------------------
    use strict;
    use Test::More tests => 9;
    BEGIN { use_ok('XML::TreePP') };
# ----------------------------------------------------------------
    my $tpp = XML::TreePP->new();
    my $space0   = '   ';
    my $space1   = '   ';
    my $entref0  = '"'<>&';
    my $entref1  = '"'<>&';
    my $charref0 = "\x21\x22";
    my $charref1 = '!"';
    my $invalid0 = '&#32&#x20&#foo;&#ZZ&#&32;&x20;&bar';
    my $invalid1 = '&#32&#x20&#foo;&#ZZ&#&32;&x20;&bar';
    my $tree = {
        root    =>  {
            space   =>  $space1,
            entref  =>  $entref1,
            charref =>  $charref1,
            invalid =>  $invalid1,
        },
    };
    my $write = $tpp->write( $tree );

    my $space2   = ( $write =~ m#<space>(.*)</space># )[0];         # through
    is( $space2,   $space1, 'write space' );
    my $entref2  = ( $write =~ m#<entref>(.*)</entref># )[0];       # escaped
    is( $entref2,  $entref0, 'write entref' );
    my $charref2 = ( $write =~ m#<charref>(.*)</charref># )[0];     # through
    is( $charref2, $charref1, 'write charref' );
    my $invalid2 = ( $write =~ m#<invalid>(.*)</invalid># )[0];     # escaped
    is( $invalid2, $invalid0, 'write invalid' );

    my $parse = $tpp->parse( $write );
    is( $parse->{root}->{space},   $space0,   'write space' );      # unescaped
    is( $parse->{root}->{entref},  $entref1,  'write entref' );     # unescaped
    is( $parse->{root}->{charref}, $charref0, 'write charref' );    # unescaped
    is( $parse->{root}->{invalid}, $invalid1, 'write invalid' );
# ----------------------------------------------------------------
;1;
# ----------------------------------------------------------------