From 205a682abdb486332a3bad9c33bec64ab6e148db Mon Sep 17 00:00:00 2001 From: Marc Schumann Date: Wed, 31 Aug 2011 15:31:58 +0200 Subject: Bug 680729 - Testing suite (runtests.pl) incorrectly plans to do its existence check on referenced templates more than once. r=dkl; a=mkanat --- t/004template.t | 44 +++++++++++++++++--------------------------- t/Support/Templates.pm | 13 +++++++++---- 2 files changed, 26 insertions(+), 31 deletions(-) (limited to 't') diff --git a/t/004template.t b/t/004template.t index d38ae37e2..3b858c0b3 100644 --- a/t/004template.t +++ b/t/004template.t @@ -38,8 +38,7 @@ use CGI qw(-no_debug); use File::Spec; use Template; -use Test::More tests => ( scalar(@referenced_files) * scalar(@languages) - + $num_actual_files ); +use Test::More tests => ( scalar(@referenced_files) + $num_actual_files ); # Capture the TESTOUT from Test::More or Test::Builder for printing errors. # This will handle verbosity for us automatically. @@ -55,24 +54,17 @@ my $fh; } } -# Checks whether one of the passed files exists -sub existOnce { - foreach my $file (@_) { - return $file if -e $file; - } - return 0; -} - -# Check to make sure all templates that are referenced in -# Bugzilla exist in the proper place. +# Check to make sure all templates that are referenced in Bugzilla +# exist in the proper place in the English template directory. +# All other languages may or may not include any template as Bugzilla will +# fall back to English if necessary. foreach my $file (@referenced_files) { - my @path = map(File::Spec->catfile($_, $file), @include_paths); - if (my $path = existOnce(@path)) { + my $path = File::Spec->catfile($english_default_include_path, $file); + if (-e $path) { ok(1, "$path exists"); } else { - ok(0, "$file cannot be located --ERROR"); - print $fh "Looked in:\n " . join("\n ", @path) . "\n"; + ok(0, "$path cannot be located --ERROR"); } } @@ -114,19 +106,17 @@ foreach my $include_path (@include_paths) { foreach my $file (@{$actual_files{$include_path}}) { my $path = File::Spec->catfile($include_path, $file); - if (-e $path) { - my ($data, $err) = $provider->fetch($file); - - if (!$err) { - ok(1, "$file syntax ok"); - } - else { - ok(0, "$file has bad syntax --ERROR"); - print $fh $data . "\n"; - } + + # These are actual files, so there's no need to check for existence. + + my ($data, $err) = $provider->fetch($file); + + if (!$err) { + ok(1, "$path syntax ok"); } else { - ok(1, "$path doesn't exist, skipping test"); + ok(0, "$path has bad syntax --ERROR"); + print $fh $data . "\n"; } } } diff --git a/t/Support/Templates.pm b/t/Support/Templates.pm index 90b63a726..81dc8cc3f 100644 --- a/t/Support/Templates.pm +++ b/t/Support/Templates.pm @@ -29,12 +29,13 @@ use strict; use lib 't'; use base qw(Exporter); @Support::Templates::EXPORT = - qw(@languages @include_paths %include_path @referenced_files - %actual_files $num_actual_files); -use vars qw(@languages @include_paths %include_path @referenced_files - %actual_files $num_actual_files); + qw(@languages @include_paths $english_default_include_path + %include_path @referenced_files %actual_files $num_actual_files); +use vars qw(@languages @include_paths $english_default_include_path + %include_path @referenced_files %actual_files $num_actual_files); use Bugzilla; +use Bugzilla::Constants; use Bugzilla::Install::Util qw(template_include_path); use Support::Files; @@ -50,6 +51,10 @@ use File::Spec; # All include paths @include_paths = (); +# English default include path +$english_default_include_path = + File::Spec->catdir(bz_locations()->{'templatedir'}, 'en', 'default'); + # Files which are referenced in the cgi files @referenced_files = (); -- cgit v1.2.3-24-g4f1b