update repo address
[p5sagit/Config-Any.git] / t / 54-xml.t
CommitLineData
5a2e0210 1use strict;
2use warnings;
f0e3c221 3
5a2e0210 4use Test::More;
f0e3c221 5use Config::Any::XML;
6
5a2e0210 7if ( !Config::Any::XML->is_supported ) {
8 plan skip_all => 'XML format not supported';
9}
10else {
bb941906 11 plan tests => 6;
5a2e0210 12}
f0e3c221 13
5a2e0210 14{
15 my $config = Config::Any::XML->load( 't/conf/conf.xml' );
f0e3c221 16 ok( $config );
17 is( $config->{ name }, 'TestApp' );
18}
5770ffc0 19
20# test invalid config
9d569cf0 21SKIP: {
dcfb1d1d 22 my $broken_libxml
23 = eval { require XML::LibXML; XML::LibXML->VERSION lt '1.59'; };
9d569cf0 24 skip 'XML::LibXML < 1.58 has issues', 2 if $broken_libxml;
25
dcfb1d1d 26 local $SIG{ __WARN__ } = sub { }; # squash warnings from XML::Simple
77f14cda 27 my $file = 't/invalid/conf.xml';
5770ffc0 28 my $config = eval { Config::Any::XML->load( $file ) };
29
30 ok( !$config, 'config load failed' );
dcfb1d1d 31 ok( $@, "error thrown ($@)" );
5770ffc0 32}
bb941906 33
34# test conf file with array ref
35{
36 my $file = 't/conf/conf_arrayref.xml';
37 my $config = eval { Config::Any::XML->load( $file ) };
38
39 ok( $config, 'config loaded' );
40 ok( !$@, 'no error thrown' );
41}