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