Bug 12279: Diacritics in system preference editor broken
[koha.git] / xt / author / valid-templates.t
blobe02b6f3b6289e0a082ae2349f4fe061d9b00a1aa
1 #!/usr/bin/perl
3 # Copyright 2011 Catalyst IT
4 #
5 # This file is part of Koha.
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.
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.
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.
20 use strict;
21 use warnings;
23 =head1 NAME
25 valid-templates.t
27 =head1 DESCRIPTION
29 This test checks all staff and OPAC templates and includes for syntax errors
31 =cut
34 use File::Find;
35 use File::Spec;
36 use Template;
37 use Test::More;
38 # use FindBin;
39 # use IPC::Open3;
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'
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 # templates to exclude from testing because
52 # they cannot stand alone
53 'doc-head-close.inc',
54 'opac-bottom.inc',
57 print "Testing opac prog templates\n";
58 run_template_test(
59 'koha-tmpl/opac-tmpl/prog/en/modules',
60 'koha-tmpl/opac-tmpl/prog/en/includes'
63 # TODO add test of opac ccsr templates
65 done_testing();
67 sub run_template_test {
68 my $template_path = shift;
69 my $include_path = shift;
70 my @exclusions = @_;
71 my $template_dir = File::Spec->rel2abs($template_path);
72 my $include_dir = File::Spec->rel2abs($include_path);
73 my $template_test = create_template_test($include_dir, @exclusions);
74 find( { wanted => $template_test, no_chdir => 1 },
75 $template_dir, $include_dir );
78 sub create_template_test {
79 my $includes = shift;
80 my @exclusions = @_;
81 return sub {
82 my $tt = Template->new(
84 ABSOLUTE => 1,
85 INCLUDE_PATH => $includes,
86 PLUGIN_BASE => 'Koha::Template::Plugin',
89 foreach my $exclusion (@exclusions) {
90 if ($_ =~ /${exclusion}$/) {
91 diag("excluding template $_ because it cannot stand on its own");
92 return;
95 my $vars;
96 my $output;
97 if ( !ok( $tt->process( $_, $vars, \$output ), $_ ) ) {
98 diag( $tt->error );
103 =head1 AUTHOR
105 Koha Developement Team <http://koha-community.org>
107 Chris Cormack <chrisc@catalyst.net.nz>
109 =cut