#!/usr/bin/perl -w
$Test::Harness::verbose
=1;
use_ok(
'XML::Bare'
);
my
$data
= {
hash
=>
"#"
,
oo
=>
"\x{f6}"
,
iso_a
=>
"\x{c4}"
,
iso_oo
=>
"\x{d6}"
,
aa
=>
"\x{e4}"
,
euro
=>
"\x{20ac}"
,
};
my
$xmldata
=
"<data>\n"
;
foreach
(
keys
%{
$data
} ) {
$xmldata
.=
" <$_>"
;
$xmldata
.=
$data
->{
$_
};
$xmldata
.=
"</$_>\n"
;
}
$xmldata
.=
"</data>\n"
;
my
$obj
= new XML::Bare(
text
=>
$xmldata
);
my
$root
=
$obj
->parse;
my
$roundtrip
=
$obj
->xml(
$root
);
is(
$roundtrip
,
$xmldata
,
'Round trip XML identical'
);
while
(
my
(
$name
,
$char
) =
each
%{
$data
} ) {
my
$str
=
$root
->{data}{
$name
}{value};
ok( utf8::is_utf8(
$str
),
"Character $name is correct encoding"
)
if
( utf8::is_utf8(
$char
) );
ok( utf8::valid(
$str
),
"Character $name is Valid"
);
ok( (
length
(
$str
) == 1 ),
"String returned for $name is 1 char long"
);
is(
$str
,
$char
,
"Character $name OK"
);
}