/XML-TreePP/t/38_cdata_cdsect.t
http://xml-treepp.googlecode.com/ · Raku · 62 lines · 49 code · 8 blank · 5 comment · 4 complexity · 3dd7d9501a7db885657e2e2c51ff2330 MD5 · raw file
- # ----------------------------------------------------------------
- use strict;
- use Test::More tests => 161;
- BEGIN { use_ok('XML::TreePP') };
- # ----------------------------------------------------------------
- {
- my $test = {
- '<cdata><![CDATA[]]></cdata>' => '',
- '<cdata><![CDATA[]]]></cdata>' => ']',
- '<cdata><![CDATA[>]]></cdata>' => '>',
- '<cdata><![CDATA[]]]]></cdata>' => ']]',
- '<cdata><![CDATA[]]]><![CDATA[]]]></cdata>' => ']]',
- '<cdata><![CDATA[]>]]></cdata>' => ']>',
- '<cdata><![CDATA[]]]><![CDATA[>]]></cdata>' => ']>',
- '<cdata>]<![CDATA[]]]>></cdata>' => ']]>',
- '<cdata>]<![CDATA[]>]]></cdata>' => ']]>',
- '<cdata><![CDATA[]]]]>></cdata>' => ']]>',
- '<cdata><![CDATA[]]]]><![CDATA[>]]></cdata>' => ']]>',
- '<cdata><![CDATA[]]]><![CDATA[]>]]></cdata>' => ']]>',
- '<cdata>]<![CDATA[]]]><![CDATA[>]]></cdata>' => ']]>',
- '<cdata><![CDATA[]]]><![CDATA[]]]>></cdata>' => ']]>',
- '<cdata><![CDATA[]]]>]<![CDATA[>]]></cdata>' => ']]>',
- '<cdata><![CDATA[]]]><![CDATA[]]]><![CDATA[>]]></cdata>' => ']]>',
- '<cdata><![CDATA[]]]><![CDATA[]>]]]]><![CDATA[>]]></cdata>' => ']]>]]>',
- '<cdata><![CDATA[]]]><![CDATA[]>]]]><![CDATA[]>]]></cdata>' => ']]>]]>',
- '<cdata><![CDATA[]]]><![CDATA[]>]]><![CDATA[]]]]><![CDATA[>]]></cdata>' => ']]>]]>',
- '<cdata><![CDATA[]]]]><![CDATA[>]]><![CDATA[]]]><![CDATA[]>]]></cdata>' => ']]>]]>',
- };
- &cdata_cdsect( $test );
- &cdata_cdsect( $test, { cdata_scalar_ref=>1 } );
- }
- # ----------------------------------------------------------------
- sub cdata_cdsect {
- my $list = shift;
- my $opt = shift;
- my $tpp = XML::TreePP->new( %$opt );
- foreach my $src ( keys %$list ) {
- my $val = $list->{$src};
- my $tree = $tpp->parse( $src );
- ok( exists $tree->{cdata}, 'exists' );
- my $cdata = $tree->{cdata};
- $cdata = $$cdata if ( ref $cdata eq 'SCALAR' );
- ok( ! ref $cdata, 'invalid ref' );
- is( $cdata, $val, $val );
- my $xml = $tpp->write( $tree );
- my $again = $tpp->parse( $xml );
- my $cdat2 = $again->{cdata};
- $cdat2 = $$cdat2 if ( ref $cdat2 eq 'SCALAR' );
- is( $cdat2, $cdata, 'round trip' );
- }
- }
- # ----------------------------------------------------------------
- ;1;
- # ----------------------------------------------------------------