Rewriting the valid templates test to test template toolkit
[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({ABSOLUTE => 1,
54                                    INCLUDE_PATH => $includes });
55         my $vars;
56         my $output;
57         if ( ! ok($tt->process($_,$vars,\$output), $_) ){
58             diag($tt->error);
59         }
60     }
61 }
62
63 =head1 AUTHOR
64
65 Koha Developement Team <http://koha-community.org>
66
67 Chris Cormack <chrisc@catalyst.net.nz>
68
69 =cut