From 3e8f5c0469b842a6148749564e2d173b8e3c1930 Mon Sep 17 00:00:00 2001
From: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Date: Fri, 21 Sep 2018 12:33:19 -0300
Subject: [PATCH] Bug 21393: Add line nubmers to ease fixing

Signed-off-by: Josef Moravec <josef.moravec@gmail.com>
---
 t/lib/QA/TemplateFilters.pm |  6 ++--
 t/template_filters.t        | 70 ++++++++++++++++++++++++++++-----------------
 2 files changed, 48 insertions(+), 28 deletions(-)

diff --git a/t/lib/QA/TemplateFilters.pm b/t/lib/QA/TemplateFilters.pm
index 0185565..4b4a3d2 100644
--- a/t/lib/QA/TemplateFilters.pm
+++ b/t/lib/QA/TemplateFilters.pm
@@ -30,7 +30,9 @@ sub missing_filters {
     my ($content) = @_;
     my ( $use_raw, $has_use_raw );
     my @errors;
+    my $line_number;
     for my $line ( split "\n", $content ) {
+        $line_number++;
         if ( $line =~ m{\[%[^%]+%\]} ) {
 
             # handle exceptions first
@@ -39,7 +41,7 @@ sub missing_filters {
 
             # Do we have Asset without the raw filter?
             if ( $line =~ m{^\s*\[% Asset} ) {
-                push @errors, { error => 'asset_must_be_raw', line => $line }
+                push @errors, { error => 'asset_must_be_raw', line => $line, line_number => $line_number }
                   and next
                   unless $line =~ m{\|\s*\$raw};
             }
@@ -67,7 +69,7 @@ sub missing_filters {
                   ;    # We could escape it but should be safe
                 next if $tt_block =~ m{^\#};    # Is a comment, skip it
 
-                push @errors, { error => 'missing_filter', line => $line }
+                push @errors, { error => 'missing_filter', line => $line, line_number => $line_number }
                   if $tt_block !~ m{\|\s?\$raw}   # already escaped correctly with raw
                   && $tt_block !~ m{=}            # assignment, maybe we should require to use SET (?)
                   && $tt_block !~ m{\|\s?ur(l|i)} # already has url or uri filter
diff --git a/t/template_filters.t b/t/template_filters.t
index 4131534..a36e756 100644
--- a/t/template_filters.t
+++ b/t/template_filters.t
@@ -61,56 +61,74 @@ INPUT
 
 my @expected_errors = (
     {
-        error  => q{missing_filter},
-        line   => q{        [% just_a_var %] A N D [% another_one_on_same_line %]},
+        error => q{missing_filter},
+        line =>
+q{        [% just_a_var %] A N D [% another_one_on_same_line %]},
+        line_number => 6,
     },
     {
-        error  => q{missing_filter},
-        line   => q{        [% just_a_var %] A N D [% another_one_on_same_line %]},
+        error => q{missing_filter},
+        line =>
+q{        [% just_a_var %] A N D [% another_one_on_same_line %]},
+        line_number => 6,
     },
     {
-        error  => q{missing_filter},
-        line   => q{    [% IF ( patron.othernames | html ) %]&ldquo;[% patron.othernames %]&rdquo;[% END %]},
+        error => q{missing_filter},
+        line =>
+q{    [% IF ( patron.othernames | html ) %]&ldquo;[% patron.othernames %]&rdquo;[% END %]},
+        line_number => 12,
     },
     {
-        error  => q{asset_must_be_raw},
-        line   => q{    [% Asset.css("css/datatables.css").raw %]},
+        error       => q{asset_must_be_raw},
+        line        => q{    [% Asset.css("css/datatables.css").raw %]},
+        line_number => 13,
     },
     {
-        error  => q{missing_filter},
-        line   => q{<a href="tel:[% patron.phone %]">[% patron.phone %]</a>},
+        error => q{missing_filter},
+        line  => q{<a href="tel:[% patron.phone %]">[% patron.phone %]</a>},
+        line_number => 16,
     },
     {
-        error  => q{missing_filter},
-        line   => q{<a href="tel:[% patron.phone %]">[% patron.phone %]</a>},
+        error => q{missing_filter},
+        line  => q{<a href="tel:[% patron.phone %]">[% patron.phone %]</a>},
+        line_number => 16,
     },
     {
-        error  => q{missing_filter},
-        line   => q{<a title="[% patron.emailpro %]" href="mailto:[% patron.emailpro | uri %]">[% patron.emailpro %]</a>},
+        error => q{missing_filter},
+        line =>
+q{<a title="[% patron.emailpro %]" href="mailto:[% patron.emailpro | uri %]">[% patron.emailpro %]</a>},
+        line_number => 17,
     },
     {
-        error  => q{missing_filter},
-        line   => q{<a title="[% patron.emailpro %]" href="mailto:[% patron.emailpro | uri %]">[% patron.emailpro %]</a>},
+        error => q{missing_filter},
+        line =>
+q{<a title="[% patron.emailpro %]" href="mailto:[% patron.emailpro | uri %]">[% patron.emailpro %]</a>},
+        line_number => 17,
     },
     {
-        error  => q{missing_filter},
-        line   => q{[% patron_message.get_column('manager_surname') %]},
+        error       => q{missing_filter},
+        line        => q{[% patron_message.get_column('manager_surname') %]},
+        line_number => 18,
     },
     {
-        error  => q{missing_filter},
-        line   => q{[%- var -%]},
+        error       => q{missing_filter},
+        line        => q{[%- var -%]},
+        line_number => 29,
     },
     {
-        error  => q{missing_filter},
-        line   => q{[% - var - %]},
+        error       => q{missing_filter},
+        line        => q{[% - var - %]},
+        line_number => 30,
     },
     {
-        error  => q{missing_filter},
-        line   => q{[%~ var ~%]},
+        error       => q{missing_filter},
+        line        => q{[%~ var ~%]},
+        line_number => 31,
     },
     {
-        error  => q{missing_filter},
-        line   => q{[% ~ var ~ %]},
+        error       => q{missing_filter},
+        line        => q{[% ~ var ~ %]},
+        line_number => 32,
     }
 );
 
-- 
2.1.4