Frédéric Demians
a41100a445
This test validate Template Toolkit (TT) Koha files. For the time being an unique validation is done: Test if TT files contain TT directive within HTML tag. For example: <li[% IF This kind of constuction MUST be avoided because it break Koha translation process. This patch transform also translation specific modules into C4 modules in order to be able to use them in test case: C4::TTPaser C4::TmplToken C4::TmplTokenType This patch is a Perl adaptation of a Haskell script from Frère Sébastien Marie. Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de> Notes on testing: - translate install de-DE - worked ok - translate update de-DE > translate install de-DE - worked ok - running the test xt/tt_valid.t - worked ok and pointed out lots of problems. Found no problems. Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de> Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
84 lines
2.2 KiB
Perl
Executable file
84 lines
2.2 KiB
Perl
Executable file
#!/usr/bin/perl
|
|
|
|
# Copyright (C) 2011 Tamil s.a.r.l.
|
|
#
|
|
# This file is part of Koha.
|
|
#
|
|
# Koha is free software; you can redistribute it and/or modify it under the
|
|
# terms of the GNU General Public License as published by the Free Software
|
|
# Foundation; either version 2 of the License, or (at your option) any later
|
|
# version.
|
|
#
|
|
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License along
|
|
# with Koha; if not, write to the Free Software Foundation, Inc.,
|
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
|
|
use warnings;
|
|
use strict;
|
|
use Test::More tests => 1;
|
|
use File::Find;
|
|
use Cwd;
|
|
use C4::TTParser;
|
|
|
|
|
|
my @files_with_directive_in_tag = do {
|
|
my @files;
|
|
find( sub {
|
|
my $dir = getcwd();
|
|
return if $dir =~ /blib/;
|
|
return unless /\.(tt|inc)$/;
|
|
my $name = $_;
|
|
my $parser = C4::TTParser->new;
|
|
$parser->build_tokens( $name );
|
|
my @lines;
|
|
while ( my $token = $parser->next_token ) {
|
|
my $attr = $token->{_attr};
|
|
next unless $attr;
|
|
push @lines, $token->{_lc} if $attr->{'[%'};
|
|
}
|
|
($dir) = $dir =~ /koha-tmpl\/(.*)$/;
|
|
push @files, { name => "$dir/$name", lines => \@lines } if @lines;
|
|
}, ( "./koha-tmpl/opac-tmpl/prog/en",
|
|
"./koha-tmpl/intranet-tmpl/prog/en" )
|
|
);
|
|
@files;
|
|
};
|
|
|
|
|
|
ok( !@files_with_directive_in_tag, "TT syntax: not using TT directive within HTML tag" )
|
|
or diag(
|
|
"Files list: \n",
|
|
join( "\n", map { $_->{name} . ': ' . join(', ', @{$_->{lines}})
|
|
} @files_with_directive_in_tag )
|
|
);
|
|
|
|
|
|
|
|
=head1 NAME
|
|
|
|
tt_valid.t
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
This test validate Template Toolkit (TT) Koha files.
|
|
|
|
For the time being an unique validation is done: Test if TT files contain TT
|
|
directive within HTML tag. For example:
|
|
|
|
<li[% IF
|
|
|
|
This kind of constuction MUST be avoided because it break Koha translation
|
|
process.
|
|
|
|
=head1 USAGE
|
|
|
|
From Koha root directory:
|
|
|
|
prove -v xt/tt_valid.t
|
|
|
|
=cut
|
|
|