#============================================================= -*-perl-*- # # t/file.t # # Test the XML::File plugin. # # Written by Andy Wardley # # Copyright (C) 1996-2006 Andy Wardley. All Rights Reserved. # # This is free software; you can redistribute it and/or modify it # under the same terms as Perl itself. # # $Id: dom.t,v 2.8 2002/08/12 11:07:14 abw Exp $ # #======================================================================== use strict; use warnings; use lib qw( ./lib ../lib ); use Template; use Template::Test; use Cwd qw( abs_path ); local *FP; my $dir = abs_path( -d 't' ? 't/xml' : 'xml' ); my $file = 'example.xml'; my $path = File::Spec->catfile($dir, $file); open(FP, $path) || die "cannot open $path: $!"; my $vars = { dir => $dir, file => $file, path => $path, debug_on => sub { $Template::Plugin::XML::File::DEBUG = 1 }, debug_off => sub { $Template::Plugin::XML::File::DEBUG = 0 }, handle => \*FP, }; test_expect(\*DATA, undef, $vars); close(FP); __END__ #------------------------------------------------------------------------ # test the $DEBUG package variable sets debugging on/off by default # unless overridden by a debug named parameter #------------------------------------------------------------------------ -- test -- [% CALL debug_on; USE xf = XML.File('foo'); 'debugging is '; xf.debug ? 'on' : 'off' -%] -- expect -- debugging is on -- test -- [% CALL debug_off; USE xf = XML.File('foo'); 'debugging is '; xf.debug ? 'on' : 'off' -%] -- expect -- debugging is off -- test -- [% USE xf = XML.File('foo', debug=1); 'debugging is '; xf.debug ? 'on' : 'off' %] -- expect -- debugging is on -- test -- [% CALL debug_on; USE xf=XML('foo', debug=0); 'debugging is '; xf.debug ? 'on' : 'off' %] -- expect -- debugging is off #------------------------------------------------------------------------ # test the use of the positional argument to specify file name or handle #------------------------------------------------------------------------ -- test -- [% USE xf = XML.File(file) -%] type: [% xf.type or 'no type' %] name: [% xf.name or 'no name' %] handle: [% xf.handle or 'no handle' %] -- expect -- -- process -- type: name name: [% file %] handle: no handle -- test -- [% USE xf = XML.File(handle) -%] type: [% xf.type or 'no type' %] name: [% xf.name or 'no name' %] handle: [% xf.handle or 'no handle' %] -- expect -- -- process -- type: handle name: no name handle: [% handle %] #------------------------------------------------------------------------ # test the use of named parameters for file name #------------------------------------------------------------------------ -- test -- [% USE xf = XML.File(file=file) -%] [% xf.type %]: [% xf.name %] -- expect -- -- process -- name: [% file %] -- test -- [% USE xf = XML.File(name=file) -%] [% xf.type %]: [% xf.name %] -- expect -- -- process -- name: [% file %] -- test -- [% USE xf = XML.File(xml_file=file) -%] [% xf.type %]: [% xf.name %] -- expect -- -- process -- name: [% file %] #------------------------------------------------------------------------ # test the use of named parameters for file handle #------------------------------------------------------------------------ -- test -- [% USE xf = XML.File(fh=handle) -%] [% xf.type %]: [% xf.handle %] -- expect -- -- process -- handle: [% handle %] -- test -- [% USE xf = XML.File(handle=handle) -%] [% xf.type %]: [% xf.handle %] -- expect -- -- process -- handle: [% handle %] -- test -- [% USE xf = XML.File(xml_fh=handle) -%] [% xf.type %]: [% xf.handle %] -- expect -- -- process -- handle: [% handle %] #------------------------------------------------------------------------ # test file() method #------------------------------------------------------------------------ -- test -- [% USE XML; file = XML.file(file) -%] file: [% file.name %] -- expect -- -- process -- file: [% file %] #------------------------------------------------------------------------ # TODO: dom(), xpath() and other methods. #------------------------------------------------------------------------