From 2f585edb4cbe036b873d5e0124d008fffe3fb23c Mon Sep 17 00:00:00 2001 From: Bernardo Gonzalez Kriegel Date: Mon, 11 Aug 2014 01:19:52 -0300 Subject: [PATCH] Bug 12653: PROG/CCSR deprecation: Correct hard-coded opac-tmpl/prog path in tests This patch removes explicit references of themes from xt/single_quotes.t xt/author/valid-templates.t xt/author/icondirectories.t xt/author/translatable-templates.t xt/tt_valid.t To test: 1. Apply the patch 2. Run each test, all must pass Some have been slightly rewritten, check that intended or similar test is performed. xt/author/valid-templates.t has been touched to only test files and not dirs --- xt/author/icondirectories.t | 71 ++++++++++++++++---------------- xt/author/translatable-templates.t | 5 ++- xt/author/valid-templates.t | 78 +++++++++++++++++++++++------------- xt/single_quotes.t | 25 +++++++++--- xt/tt_valid.t | 24 +++++++++-- 5 files changed, 130 insertions(+), 73 deletions(-) diff --git a/xt/author/icondirectories.t b/xt/author/icondirectories.t index a4145fa..5d2ebf7 100644 --- a/xt/author/icondirectories.t +++ b/xt/author/icondirectories.t @@ -20,44 +20,47 @@ use lib qw( .. ); use Data::Dumper; use File::Find; -use Test::More tests => 3; - -my $opac_icon_directory = 'koha-tmpl/opac-tmpl/prog/itemtypeimg'; -my $staff_icon_directory = 'koha-tmpl/intranet-tmpl/prog/img/itemtypeimg'; - -ok( -d $opac_icon_directory, "opac_icon_directory: $opac_icon_directory exists" ); -ok( -d $staff_icon_directory, "staff_icon_directory: $staff_icon_directory exists" ); - -my $opac_icons; # hashref of filenames to sizes -sub opac_wanted { - my $file = $File::Find::name; - $file =~ s/^$opac_icon_directory//; - $opac_icons->{ $file } = -s $_; +use C4::Context; + +use Test::More tests => 8; + +my @themes; +my $dh; +# OPAC +my $htdocs = C4::Context->config('opachtdocs'); +opendir ($dh, $htdocs); +for my $theme ( grep { not /^\.|lib/ } readdir($dh) ) { + push @themes, { + theme => $theme, + icondir => "$htdocs/$theme/itemtypeimg", + }; } - -find( \&opac_wanted, $opac_icon_directory ); - -my $staff_icons; # hashref of filenames to sizes -sub staff_wanted { - my $file = $File::Find::name; - $file =~ s/^$staff_icon_directory//; - $staff_icons->{ $file } = -s $_; +close $dh; +# Intranet +$htdocs = C4::Context->config('intrahtdocs'); +opendir ($dh, $htdocs); +for my $theme ( grep { not /^\.|lib|js/ } readdir($dh) ) { + push @themes, { + theme => $theme, + icondir => "$htdocs/$theme/img/itemtypeimg", + }; } -find( \&staff_wanted, $staff_icon_directory ); - -is_deeply( $opac_icons, $staff_icons, "staff and OPAC icon directories have same contents" ) - or diag( Data::Dumper->Dump( [ $opac_icons ], [ 'opac_icons' ] ) ); - - - - - - - - - +close $dh; +my $icons; +foreach my $theme ( @themes ) { + ok( -d $theme->{'icondir'}, "$theme->{'theme'}: directory exists"); + $icons = undef; + my $where = $theme->{'icondir' }; + sub wanted { + my $file = $_; + $icons->{ $file } = -s $_; + } + find( \&wanted, $where ); + ok ( defined $icons, "Some contents in $where dir") + or diag( Data::Dumper->Dump( [ $icons ], [ 'icons' ] ) ); +} diff --git a/xt/author/translatable-templates.t b/xt/author/translatable-templates.t index 8079cd6..9f2e365 100644 --- a/xt/author/translatable-templates.t +++ b/xt/author/translatable-templates.t @@ -12,6 +12,7 @@ construct that the extractor cannot parse. =cut +use C4::Context; use Test::More tests => 2; use File::Temp qw/tempdir/; use IPC::Open3; @@ -22,8 +23,8 @@ use utf8; my $po_dir = tempdir(CLEANUP => 1); chdir "misc/translator"; # for now, tmpl_process3.pl works only if run from its directory -test_string_extraction("opac", "../../koha-tmpl/opac-tmpl/prog/en", $po_dir); -test_string_extraction("intranet", "../../koha-tmpl/intranet-tmpl/prog/en", $po_dir); +test_string_extraction("opac", "../../koha-tmpl/opac-tmpl/". C4::Context->preference('opacthemes')."/en", $po_dir); +test_string_extraction("intranet", "../../koha-tmpl/intranet-tmpl/".C4::Context->preference('template' )."/en", $po_dir); sub test_string_extraction { my $module = shift; diff --git a/xt/author/valid-templates.t b/xt/author/valid-templates.t index e02b6f3..6b181f7 100644 --- a/xt/author/valid-templates.t +++ b/xt/author/valid-templates.t @@ -35,32 +35,52 @@ use File::Find; use File::Spec; use Template; use Test::More; -# use FindBin; -# use IPC::Open3; - -print "Testing intranet prog templates\n"; -run_template_test( - 'koha-tmpl/intranet-tmpl/prog/en/modules', - 'koha-tmpl/intranet-tmpl/prog/en/includes' -); - -print "Testing opac bootstrap templates\n"; -run_template_test( - 'koha-tmpl/opac-tmpl/bootstrap/en/modules', - 'koha-tmpl/opac-tmpl/bootstrap/en/includes', - # templates to exclude from testing because - # they cannot stand alone - 'doc-head-close.inc', - 'opac-bottom.inc', -); - -print "Testing opac prog templates\n"; -run_template_test( - 'koha-tmpl/opac-tmpl/prog/en/modules', - 'koha-tmpl/opac-tmpl/prog/en/includes' -); - -# TODO add test of opac ccsr templates +use C4::Context; + +my @themes; +my $dh; +# OPAC +my $htdocs = C4::Context->config('opachtdocs'); +opendir ($dh, $htdocs); +for my $theme ( grep { not /^\.|lib/ } readdir($dh) ) { + push @themes, { + theme => $theme, + modules => "$htdocs/$theme/en/modules", + includes => "$htdocs/$theme/en/includes", + } +} +close $dh; +# Intranet +$htdocs = C4::Context->config('intrahtdocs'); +opendir ($dh, $htdocs); +for my $theme ( grep { not /^\.|lib|js/ } readdir($dh) ) { + push @themes, { + theme => $theme, + modules => "$htdocs/$theme/en/modules", + includes => "$htdocs/$theme/en/includes", + } +} +close $dh; + +foreach my $theme ( @themes ) { + print "Testing $theme->{'theme'} templates\n"; + if ( $theme->{'theme'} eq 'bootstrap' ) { + run_template_test( + $theme->{'modules'}, + $theme->{'includes'}, + # templates to exclude from testing because + # they cannot stand alone + 'doc-head-close.inc', + 'opac-bottom.inc', + ); + } + else{ + run_template_test( + $theme->{'modules'}, + $theme->{'includes'}, + ); + } +} done_testing(); @@ -94,8 +114,10 @@ sub create_template_test { } my $vars; my $output; - if ( !ok( $tt->process( $_, $vars, \$output ), $_ ) ) { - diag( $tt->error ); + if ( ! -d $_ ) { + if ( !ok( $tt->process( $_, $vars, \$output ), $_ ) ) { + diag( $tt->error ); + } } } } diff --git a/xt/single_quotes.t b/xt/single_quotes.t index 89b539c..4dc5808 100755 --- a/xt/single_quotes.t +++ b/xt/single_quotes.t @@ -21,6 +21,24 @@ use warnings; use strict; use Test::More tests => 1; use File::Find; +use C4::Context; + +my @themes; +my $dh; +# OPAC +my $htdocs = C4::Context->config('opachtdocs'); +opendir ($dh, $htdocs); +for my $theme ( grep { not /^\.|lib/ } readdir($dh) ) { + push @themes, "$htdocs/$theme"; +} +close $dh; +# Intranet +$htdocs = C4::Context->config('intrahtdocs'); +opendir ($dh, $htdocs); +for my $theme ( grep { not /^\.|lib|js/ } readdir($dh) ) { + push @themes, "$htdocs/$theme"; +} +close $dh; my @files; find( @@ -28,11 +46,8 @@ find( open my $fh, $_ or die "Could not open $_: $!"; my @lines = sort grep /\_\(\'/, <$fh>; push @files, { name => "$_", lines => \@lines } if @lines; - },qw# - ./koha-tmpl/opac-tmpl/prog/en - ./koha-tmpl/opac-tmpl/bootstrap/en - ./koha-tmpl/intranet-tmpl/prog/en - # + }, + @themes ); ok( !@files, "Files do not contain single quotes _(' " ) diff --git a/xt/tt_valid.t b/xt/tt_valid.t index e33b760..9b556f1 100755 --- a/xt/tt_valid.t +++ b/xt/tt_valid.t @@ -23,7 +23,24 @@ use Test::More tests => 2; use File::Find; use Cwd; use C4::TTParser; - +use C4::Context; + +my @themes; +my $dh; +# OPAC +my $htdocs = C4::Context->config('opachtdocs'); +opendir ($dh, $htdocs); +for my $theme ( grep { not /^\.|lib/ } readdir($dh) ) { + push @themes, "$htdocs/$theme"; +} +close $dh; +# Intranet +$htdocs = C4::Context->config('intrahtdocs'); +opendir ($dh, $htdocs); +for my $theme ( grep { not /^\.|lib|js/ } readdir($dh) ) { + push @themes, "$htdocs/$theme"; +} +close $dh; my @files_with_directive_in_tag = do { my @files; @@ -42,13 +59,12 @@ my @files_with_directive_in_tag = do { } ($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" ) + }, + @themes, ); @files; }; - ok( !@files_with_directive_in_tag, "TT syntax: not using TT directive within HTML tag" ) or diag( "Files list: \n", -- 1.7.9.5