From e5db68e60cd11328b9d8ec9cfadcf45d3036f8e3 Mon Sep 17 00:00:00 2001 From: Galen Charlton <gmc@esilibrary.com> Date: Fri, 11 Apr 2014 18:49:07 +0000 Subject: [PATCH] [SIGNED-OFF] Bug 12076: better detect an untranslatable template construct Per bug 6458, template constructs of the form <li [% IF (foo) %]selected="selected"[% END %]... are forbidden as they can cause problems with translated templates. However, the tt_valid.t test currently doesn't catch the variation where '-' is used to suppress extra whitespace: <li [%- IF (foo) -%]selected="selected"[%- END -%]... This patch corrects the issue. To test: [1] Temporarily add the following line to a template file: <li [%- IF a -%]a="a"[%- END -%] /> [2] Run prove -v xt/tt_valid.t. Note that no error is reported. [3] Apply the patch, and rerun the tt_valid.t test. This time, an error should be reported. Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com> Works well, detects the forbidden pattern No koha-qa errors. --- xt/tt_valid.t | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xt/tt_valid.t b/xt/tt_valid.t index f71085e..e33b760 100755 --- a/xt/tt_valid.t +++ b/xt/tt_valid.t @@ -38,7 +38,7 @@ my @files_with_directive_in_tag = do { while ( my $token = $parser->next_token ) { my $attr = $token->{_attr}; next unless $attr; - push @lines, $token->{_lc} if $attr->{'[%'}; + push @lines, $token->{_lc} if $attr->{'[%'} or $attr->{'[%-'}; } ($dir) = $dir =~ /koha-tmpl\/(.*)$/; push @files, { name => "$dir/$name", lines => \@lines } if @lines; -- 1.7.9.5