# Already escaped with a special filter
# We could escape it but should be safe
- or $tt_block =~ m{\s?\|\s?\$KohaDates\s?$}
- or $tt_block =~ m{\s?\|\s?\$Price\s?$}
+ or $tt_block =~ m{\s?\|\s?\$KohaDates[^\|]*$}
# Already escaped correctly with raw
or $tt_block =~ m{\|\s?\$raw}
# Assignment, maybe we should require to use SET (?)
- or $tt_block =~ m{=}
+ or ( $tt_block =~ m{=} and not $tt_block =~ m{\s\|\s} )
# Already has url or uri filter
or $tt_block =~ m{\|\s?ur(l|i)}
: q| |
: q| |;
+ if ( $tt_block =~ m{\s?\|\s?\$KohaDates[^\|]*\|.*$}
+ ) {
+ $tt_block =~
+ s/\s*\|\s*(uri|url|html)\s*$//; # Could be another filter...
+ $line =~ s{
+ \[%
+ \s*$pre_chomp\s*
+ \Q$tt_block\E\s*\|\s*(uri|url|html)
+ \s*$post_chomp\s*
+ %\]
+ }{[%$pre_chomp$tt_block$post_chomp%]}xms;
+
+ return ( $line, 'extra_filter_not_needed' );
+ }
+
if (
# Use the uri filter is needed
# If html filtered or not filtered
# along with Koha; if not, see <http://www.gnu.org/licenses>.
use Modern::Perl;
-use Test::More tests => 5;
+use Test::More tests => 6;
use t::lib::QA::TemplateFilters;
subtest 'Asset must use raw' => sub {
@missing_filters = t::lib::QA::TemplateFilters::missing_filters($input);
is_deeply( \@missing_filters, [], 'html_entity is a valid filter for href' );
};
+
+subtest 'Do not escape KohaDates output' => sub {
+ plan tests => 2;
+ my $input = <<INPUT;
+[% var | \$KohaDates %]
+[% var | \$KohaDates with_hours => 1 %]
+[% var | \$KohaDates | html %]
+[% var | \$KohaDates with_hours => 1 | html %]
+INPUT
+
+ my $expected = <<EXPECTED;
+[% var | \$KohaDates %]
+[% var | \$KohaDates with_hours => 1 %]
+[% var | \$KohaDates %]
+[% var | \$KohaDates with_hours => 1 %]
+EXPECTED
+
+ my $new_content = t::lib::QA::TemplateFilters::fix_filters($input);
+ is( $new_content . "\n", $expected, );
+
+
+ my @missing_filters = t::lib::QA::TemplateFilters::missing_filters($input);
+ is_deeply(
+ \@missing_filters,
+ [
+ {
+ error => "extra_filter_not_needed",
+ line => "[% var | \$KohaDates | html %]",
+ line_number => 3,
+ },
+ {
+ error => "extra_filter_not_needed",
+ line => "[% var | \$KohaDates with_hours => 1 | html %]",
+ line_number => 4,
+ }
+ ]
+ );
+
+};