use strict; use Test; plan tests => 8; use File::Path; use Fatal qw(open close chdir mkpath); use XML::SAX; use vars qw(*FILE); ok(@{XML::SAX->parsers}, 0); ok(XML::SAX->add_parser(q(XML::SAX::PurePerl))); ok(@{XML::SAX->parsers}, 1); rmtree('t/lib', 0, 0); mkpath('t/lib', 0, 0777); push @INC, 't/lib'; write_file('t/lib/TestParserPackage.pm', <parser(); ok(ref($parser), "TestParserPackage", "Parser was not TestParserPackage"); # Test we can get XML::SAX::PurePerl out write_file('t/lib/SAX.ini', 'ParserPackage = XML::SAX::PurePerl'); $parser = XML::SAX::ParserFactory->parser(); ok(ref($parser), "XML::SAX::PurePerl", "Parser was not XML::SAX::PurePerl"); # Test we can ask for a frobnosticating parser, but not get it write_file('t/lib/SAX.ini', 'http://axkit.org/sax/frobnosticating = 1'); $parser = XML::SAX::ParserFactory->parser(); ok(ref($parser), "XML::SAX::PurePerl", "Parser was not PurePerl (frobnosticating)"); # Test we can ask for a frobnosticating parser, and get it XML::SAX->add_parser('TestParserPackage'); $parser = XML::SAX::ParserFactory->parser(); ok(ref($parser), "TestParserPackage", "Parser was not TestParserPackage (frobnosticating)"); # Test we can get a namespaces parser write_file('t/lib/SAX.ini', 'http://xml.org/sax/features/namespaces = 1'); $parser = XML::SAX::ParserFactory->parser(); ok(ref($parser), "XML::SAX::PurePerl", "Parser was not PurePerl (namespaces)"); sub write_file { my ($file, $data) = @_; open(FILE, ">$file"); print FILE $data, "\n"; close FILE; }