# ----------------------------------------------------------------
use strict;
use Test::More tests => 7;
BEGIN { use_ok('XML::TreePP') };
# ----------------------------------------------------------------
my $tpp = XML::TreePP->new();
$tpp->set( cdata_scalar_ref => 1 );
my $source = '<root><text><>&><</text><cdata><![CDATA[<>&><]]></cdata><attr key="<>&><">BBB</attr></root>';
my $tree = $tpp->parse( $source );
is( $tree->{root}->{text}, '<>&><', "parse text node" );
my $cdata = $tree->{root}->{cdata};
is( $$cdata, '<>&><', "parse cdata node" );
is( $tree->{root}->{attr}->{'-key'}, '<>&><', "parse attribute" );
my $back = $tpp->write( $tree );
like( $back, qr{ <text>\s* <>&>< \s*</text> }sx, "write text node" );
like( $back, qr{ <cdata><!\[CDATA\[<>&><\]\]></cdata> }sx, "write cdata node (as cdata)" );
like( $back, qr{ <attr\s+key="<>&><" }sx, "write attribute" );
# ----------------------------------------------------------------
;1;
# ----------------------------------------------------------------