# ---------------------------------------------------------------- use strict; use Test::More tests => 9; BEGIN { use_ok('XML::TreePP') }; # ---------------------------------------------------------------- my $tpp = XML::TreePP->new(); my $source = '<>&"'&gt;&lt;BBB'; my $tree = $tpp->parse( $source ); is( $tree->{root}->{text}, '<>&"\'><', "parse text node" ); is( $tree->{root}->{cdata}, '<>&"'&gt;&lt;', "parse cdata node" ); is( $tree->{root}->{attr}->{'-key'}, '<>&"\'><', "parse attribute" ); $tree->{root}->{text_add} = '<>&"'&gt;&lt;'; my $cdata_raw = $tree->{root}->{cdata}; $tree->{root}->{cdata_ref} = \$cdata_raw; my $back = $tpp->write( $tree ); my $text = ( $back =~ m#(.*)# )[0]; is( $text, '<>&"'&gt;&lt;', "write text node" ); my $cdata = ( $back =~ m#(.*)# )[0]; is( $cdata, '&lt;&gt;&amp;&quot;&apos;&amp;gt;&amp;lt;', "write cdata node (as text node)" ); my $attr = ( $back =~ m## )[0]; is( $attr, '<>&"'&gt;&lt;', "write attribute" ); my $tadd = ( $back =~ m#(.*)# )[0]; is( $tadd, '&lt;&gt;&amp;&quot;&apos;&amp;gt;&amp;lt;', "write new var" ); my $cref = ( $back =~ m#(.*)# )[0]; is( $cref, '', "write cdata node (as cdata)" ); # ---------------------------------------------------------------- ;1; # ----------------------------------------------------------------