#!/usr/bin/perl
use Test::More tests => 8;


use XML::DT;
use strict;

# 1

my %h1=( c => sub { father->{batatas} .= $c ; toxml } );

my $str = dtstring("<a>
 <b>
  <c>Aaeiou</c>
  <c>Baeiou</c>
 </b>
</a>
",%h1);

$str =~ s/\s//g;
my $rs = '<a><bbatatas="AaeiouBaeiou"><c>Aaeiou</c><c>Baeiou</c></b></a>';
is($str, $rs);

# 2

%h1=( c => sub {father('batatas', (father('batatas')||"").$c); toxml } );

$str = dtstring("<a>
 <b>
  <c>Aaeiou</c>
  <c>Baeiou</c>
 </b>
</a>
",%h1);

$str =~ s/\s//g;
$rs = '<a><bbatatas="AaeiouBaeiou"><c>Aaeiou</c><c>Baeiou</c></b></a>';
is($str, $rs);


# 3

%h1=( c => sub { root->{batatas} .= $c ; toxml } );

$str = dtstring("<a>
 <b>
  <c>Aaeiou</c>
  <c>Baeiou</c>
 </b>
</a>
",%h1);

$str =~ s/\s//g;
$rs = '<abatatas="AaeiouBaeiou"><b><c>Aaeiou</c><c>Baeiou</c></b></a>';
is($str, $rs);


# 4

%h1=( c => sub { root('batatas', (root('batatas')||"").$c) ; toxml } );

$str = dtstring("<a>
 <b>
  <c>Aaeiou</c>
  <c>Baeiou</c>
 </b>
</a>
",%h1);

$str =~ s/\s//g;
$rs = '<abatatas="AaeiouBaeiou"><b><c>Aaeiou</c><c>Baeiou</c></b></a>';
is($str, $rs);


# 5

%h1=( c => sub { gfather->{batatas} .= $c ; toxml } );

$str = dtstring("<a>
 <b>
  <c>Aaeiou</c>
  <c>Baeiou</c>
 </b>
</a>
",%h1);

$str =~ s/\s//g;
$rs = '<abatatas="AaeiouBaeiou"><b><c>Aaeiou</c><c>Baeiou</c></b></a>';
is($str, $rs);


# 6

%h1=( c => sub { gfather('batatas', (gfather('batatas')||"").$c) ; toxml } );

$str = dtstring("<a>
 <b>
  <c>Aaeiou</c>
  <c>Baeiou</c>
 </b>
</a>
",%h1);

$str =~ s/\s//g;
$rs = '<abatatas="AaeiouBaeiou"><b><c>Aaeiou</c><c>Baeiou</c></b></a>';
is($str, $rs);


# 7

%h1=( c => sub { ggfather->{batatas} .= $c ; toxml } );

$str = dtstring("<a>
 <b><d>
  <c>Aaeiou</c>
  <c>Baeiou</c>
 </d></b>
</a>
",%h1);

$str =~ s/\s//g;
$rs = '<abatatas="AaeiouBaeiou"><b><d><c>Aaeiou</c><c>Baeiou</c></d></b></a>';
is($str, $rs);


# 8

%h1=( c => sub { ggfather('batatas', (ggfather('batatas')||"").$c) ; toxml } );

$str = dtstring("<a>
 <b><d>
  <c>Aaeiou</c>
  <c>Baeiou</c>
 </d></b>
</a>
",%h1);

$str =~ s/\s//g;
$rs = '<abatatas="AaeiouBaeiou"><b><d><c>Aaeiou</c><c>Baeiou</c></d></b></a>';
is($str, $rs);





__END__

<?xml version="1.0"?>
<a>
 <b title="zbr">
  <c>aeiou</c>
  <c>aeiou</c>
 </b>
 <b>
  <c>aeiou</c>
  <c>aeiou</c>
 </b>
 <b>
  <c title="zbr">aeiou</c>
  <c>aeiou</c>
 </b>
</a>
