use XML::DoubleEncodedEntities qw(decode);
use strict;
$^W = 1;
use Test::Simple tests => 6;
$SIG{__WARN__} = sub { die("Caught a warning, making it fatal:\n\n$_[0]\n"); };
ok(XML::DoubleEncodedEntities::decode('<chocolate>Green & Blacks</chocolate>') eq '<chocolate>Green & Blacks</chocolate>',
"Kosher XML is left alone");
ok(decode(' <chocolate>Green & Blacks</chocolate>') eq ' <chocolate>Green & Blacks</chocolate>',
"Kosher XML with leading whitespace is left alone");
ok(XML::DoubleEncodedEntities::decode('<chocolate>Green &amp; Blacks</chocolate>') eq '<chocolate>Green & Blacks</chocolate>',
"Broken XML (detected by leading &amp;) is fixed");
ok(decode('<chocolate>Green & Blacks</chocolate>') eq '<chocolate>Green & Blacks</chocolate>',
"Broken XML (detected by leading <) is fixed");
ok(decode(' <chocolate>Green & Blacks</chocolate>') eq ' <chocolate>Green & Blacks</chocolate>',
"Broken XML (detected by leading < with whitespace) is fixed");
eval { decode(' <chocolate>Green & Blacks</chocolate&bogus;') };
ok($@, "Unrecognised entities are an error");