Merge remote-tracking branch 'origin/new/bug_929'
[koha.git] / xt / author / valid-templates.t
1 #!/usr/bin/perl
2
3 # Copyright 2011 Catalyst IT
4
5 # This file is part of Koha.
6 #
7 # Koha is free software; you can redistribute it and/or modify it under the
8 # terms of the GNU General Public License as published by the Free Software
9 # Foundation; either version 2 of the License, or (at your option) any later
10 # version.
11 #
12 # Koha is distributed in the hope that it will be useful, but WITHOUT ANY
13 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
14 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
15 #
16 # You should have received a copy of the GNU General Public License along
17 # with Koha; if not, write to the Free Software Foundation, Inc.,
18 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19
20 use strict;
21 use warnings;
22
23 =head1 NAME
24
25 valid-templates.t
26
27 =head1 DESCRIPTION
28
29 This test checks all staff and OPAC templates and includes for syntax errors 
30
31 =cut
32
33
34 use File::Find;
35 use File::Spec;
36 use Template;
37 use Test::More;
38 # use FindBin;
39 # use IPC::Open3;
40
41 foreach my $type qw(intranet opac) {
42     my $template_dir = File::Spec->rel2abs("koha-tmpl/$type-tmpl/prog/en/modules");
43     my $include_dir  = File::Spec->rel2abs("koha-tmpl/$type-tmpl/prog/en/includes");
44     my $template_test = create_template_test($include_dir);
45     find({ wanted => $template_test, no_chdir => 1 }, $template_dir, $include_dir);
46 }
47
48 done_testing();
49
50 sub create_template_test {
51     my $includes = shift;
52     return sub {
53         my $tt = Template->new(
54             {
55                 ABSOLUTE     => 1,
56                 INCLUDE_PATH => $includes,
57                 PLUGIN_BASE  => 'Koha::Template::Plugin',
58             }
59         );
60         my $vars;
61         my $output;
62         if ( !ok( $tt->process( $_, $vars, \$output ), $_ ) ) {
63             diag( $tt->error );
64         }
65     }
66 }
67
68 =head1 AUTHOR
69
70 Koha Developement Team <http://koha-community.org>
71
72 Chris Cormack <chrisc@catalyst.net.nz>
73
74 =cut