Bug 12271: add Bootstrap templates to valid-templates.t tests
[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 print "Testing intranet prog templates\n";
42 run_template_test(
43     'koha-tmpl/intranet-tmpl/prog/en/modules',
44     'koha-tmpl/intranet-tmpl/prog/en/includes'
45 );
46
47 print "Testing opac bootstrap templates\n";
48 run_template_test(
49     'koha-tmpl/opac-tmpl/bootstrap/en/modules',
50     'koha-tmpl/opac-tmpl/bootstrap/en/includes'
51 );
52
53 print "Testing opac prog templates\n";
54 run_template_test(
55     'koha-tmpl/opac-tmpl/prog/en/modules',
56     'koha-tmpl/opac-tmpl/prog/en/includes'
57 );
58
59 # TODO add test of opac ccsr templates
60
61 done_testing();
62
63 sub run_template_test {
64     my $template_path = shift;
65     my $include_path  = shift;
66     my $template_dir  = File::Spec->rel2abs($template_path);
67     my $include_dir   = File::Spec->rel2abs($include_path);
68     my $template_test = create_template_test($include_dir);
69     find( { wanted => $template_test, no_chdir => 1 },
70         $template_dir, $include_dir );
71 }
72
73 sub create_template_test {
74     my $includes = shift;
75     return sub {
76         my $tt = Template->new(
77             {
78                 ABSOLUTE     => 1,
79                 INCLUDE_PATH => $includes,
80                 PLUGIN_BASE  => 'Koha::Template::Plugin',
81             }
82         );
83         my $vars;
84         my $output;
85         if ( !ok( $tt->process( $_, $vars, \$output ), $_ ) ) {
86             diag( $tt->error );
87         }
88     }
89 }
90
91 =head1 AUTHOR
92
93 Koha Developement Team <http://koha-community.org>
94
95 Chris Cormack <chrisc@catalyst.net.nz>
96
97 =cut