X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit%2FConfig-Any.git;a=blobdiff_plain;f=t%2F54-xml.t;h=e2badee400cf7174eecb5cccf083c89c843dd155;hp=4ddba3cf82d70823328e30cfa802c92edd9ce053;hb=1d172fc510f2ed15a00d475073f6df964b398484;hpb=f0e3c2214342d0d8a8839009b8b9c7e6bfbc7ab2 diff --git a/t/54-xml.t b/t/54-xml.t index 4ddba3c..e2badee 100644 --- a/t/54-xml.t +++ b/t/54-xml.t @@ -1,11 +1,32 @@ -use Test::More tests => 2; +use strict; +use warnings; +use Test::More; use Config::Any::XML; -my $config = eval { Config::Any::XML->load( 't/conf/conf.xml' ) }; +if ( !Config::Any::XML->is_supported ) { + plan skip_all => 'XML format not supported'; +} +else { + plan tests => 4; +} -SKIP: { - skip "Couldn't Load XML plugin", 2 if $@; +{ + my $config = Config::Any::XML->load( 't/conf/conf.xml' ); ok( $config ); is( $config->{ name }, 'TestApp' ); } + +# test invalid config +SKIP: { + my $broken_libxml + = eval { require XML::LibXML; XML::LibXML->VERSION lt '1.59'; }; + skip 'XML::LibXML < 1.58 has issues', 2 if $broken_libxml; + + local $SIG{ __WARN__ } = sub { }; # squash warnings from XML::Simple + my $file = 't/invalid/conf.xml'; + my $config = eval { Config::Any::XML->load( $file ) }; + + ok( !$config, 'config load failed' ); + ok( $@, "error thrown ($@)" ); +}