# ---------------------------------------------------------------- use strict; use Test::More; # ---------------------------------------------------------------- { plan tests => 73; use_ok('XML::TreePP'); &test_indent( undef ); &test_indent( 1 ); &test_indent( 4 ); } # ---------------------------------------------------------------- sub test_indent { my $indent = shift; my $order = [qw( one two three four five six seven eight nine )]; my $tpp = XML::TreePP->new( first_out => $order, indent => $indent ); my $nine = '9'; my $tree = { root => { one => '1', two => { '#text' => '2', three => undef, }, four => [{ five => '5', six => { '#text' => '6', }, }, { seven => { '#text' => '7', -eight => '8', }, }], nine => \$nine, }, }; my $xml = $tpp->write( $tree ); my $space = $indent ? '\040' x $indent : ''; $indent ||= 0; like( $xml, qr{ 1 }x, "[$indent] text node" ); like( $xml, qr{ 2 }x, "[$indent] text node after empty node" ); like( $xml, qr{ 6 }x, "[$indent] explicit text node" ); like( $xml, qr{ >7 }x, "[$indent] text node after attribute" ); like( $xml, qr{ }x, "[$indent] cdata node" ); like( $xml, qr{ ^ }mx, "[$indent] no-indent root" ); like( $xml, qr{ ^$space }mx, "[$indent] indent one" ); like( $xml, qr{ ^$space }mx, "[$indent] indent two" ); like( $xml, qr{ ^$space }mx, "[$indent] indent four" ); like( $xml, qr{ ^$space }mx, "[$indent] indent four end" ); like( $xml, qr{ ^$space$space }mx, "[$indent] indent five" ); like( $xml, qr{ ^$space$space }mx, "[$indent] indent six" ); like( $xml, qr{ ^$space$space }mx, "[$indent] indent nine" ); like( $xml, qr{ ^ }mx, "[$indent] no-indent root end" ); like( $xml, qr{ \n }x, "[$indent] line root" ); like( $xml, qr{ \n }x, "[$indent] line one" ); like( $xml, qr{ \n }x, "[$indent] line two" ); like( $xml, qr{ \n }x, "[$indent] line five" ); like( $xml, qr{ \n }x, "[$indent] line six" ); like( $xml, qr{ \n }x, "[$indent] line four" ); like( $xml, qr{ \n }x, "[$indent] line nine" ); like( $xml, qr{ \n }x, "[$indent] line root" ); } # ---------------------------------------------------------------- =example 1 2 5 6 7 =cut # ---------------------------------------------------------------- ;1; # ----------------------------------------------------------------