The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#============================================================= -*-perl-*-
#
# t/xmlsimple.t
#
# Test the XML::Simple plugin.
#
# Written by Kenny Gatdula <kennyg@pobox.com>
#
# Copyright (C) 2004 Kenny Gatdula.  All Rights Reserved.
#
# This is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
#
# $Id: xmlsimple.t,v 1.2 2004/10/04 10:03:52 abw Exp $
#
#========================================================================

use strict;
use lib qw( ./lib ../lib );
use Template::Test;
use Cwd qw( abs_path );
$^W = 1;

$Template::Test::DEBUG = 0;
#$Template::Test::DEBUG = 1;
#$Template::Parser::DEBUG = 1;
#$Template::Directive::PRETTY = 1;

my $tt1 = Template->new({
    INCLUDE_PATH => [ qw( t/test/lib test/lib ) ],
    ABSOLUTE => 1,
});

ok(1);

eval "use XML::Simple";

if ($@ || $XML::Simple::VERSION < 2) {
    skip_all('XML::Simple v2.0 or later not installed');
}


# account for script being run in distribution root or 't' directory
my $file = abs_path( -d 't' ? 't/test/xml' : 'test/xml' );
$file .= '/testfile.xml';

test_expect(\*DATA, $tt1, { 'xmlfile' => $file });

__END__
-- test --
[% TRY;
     USE xmlsimple = XML.Simple('no_such_file');
   CATCH;
     error;
   END
%]
-- expect --
file error - no_such_file: not found


-- test --
[% USE xml = XML.Simple(xmlfile) -%]
[% xml.section.name -%]
-- expect --
alpha

-- test --
[% USE xs = XML.Simple -%]
[% xml = xs.XMLin(xmlfile) -%]
[% xml.section.title -%]
-- expect --
The Alpha Zone

-- test --
[% USE XML;
   xs = XML.simple
-%]
[% xml = xs.XMLin(xmlfile) -%]
[% xml.section.title -%]
-- expect --
The Alpha Zone

-- test --
[% USE xs = XML.Simple -%]
[% xml = xs.XMLin(xmlfile) -%]
[% xmlout = xs.XMLout(xml) -%]
[% xmlout -%]
-- expect --
<opt id="webzone1">
  <section name="alpha" title="The Alpha Zone">
    <page href="/foo/bar" title="The Foo Page" />
    <page href="/bar/baz" title="The Bar Page" />
    <page href="/baz/qux" title="The Baz Page" />
  </section>
</opt>