The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use Test;
BEGIN { $tests = 0;
    if ($] >= 5.007002) { $tests = 9 }
    plan tests => $tests;
}
if ($tests) {
use XML::SAX::PurePerl;

my $handler = TestHandler->new(); # see below for the TestHandler class
ok($handler);

my $parser = XML::SAX::PurePerl->new(Handler => $handler);
ok($parser);

# warn("utf-16\n");
# verify that the first element is correctly decoded
$handler->{test_elements} = [ "\x{9031}\x{5831}" ];
$parser->parse_uri("testfiles/utf-16.xml");
ok(1);

# warn("utf-16le\n");
$handler->{test_elements} = [ "foo" ];
$parser->parse_uri("testfiles/utf-16le.xml");
ok(1);

# warn("koi8_r\n");
$parser->parse_uri("testfiles/koi8_r.xml");
ok(1);

# warn("8859-1\n");
$parser->parse_uri("testfiles/iso8859_1.xml");
ok(1);

# warn("8859-2\n");
$parser->parse_uri("testfiles/iso8859_2.xml");
ok(1);
}

package TestHandler;
use XML::SAX::PurePerl::DebugHandler;
use base qw(XML::SAX::PurePerl::DebugHandler);
use Test;

sub start_element {
    my $self = shift;
    if ($self->{test_elements} and
        my $value = pop @{$self->{test_elements}}) {
        ok($_[0]->{Name}, $value);
    }
    $self->SUPER::start_element(@_);
}

1;