From bdc66e7eae6fe68d7c8fdde0cfaa36f0f9ecb02a Mon Sep 17 00:00:00 2001 From: Bernardo Gonzalez Kriegel Date: Thu, 16 Oct 2014 19:35: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/author/icondirectories.t xt/author/translatable-templates.t xt/author/valid-templates.t xt/single_quotes.t xt/tt_valid.t For xt/author/icondirectories.t it fixes a small difference on two bootstrap files, previously unchecked, crystal-clear/_COPYING.txt and crystal-clear/_README.txt Some updates to license information To test: 1. Apply the patch 2. Run each test, all must pass prove xt/author/icondirectories.t xt/author/translatable-templates.t xt/author/valid-templates.t xt/single_quotes.t xt/tt_valid.t 3. Try to fail each test a) xt/author/icondirectories.t create a new file on any of icon dirs, e.g. touch koha-tmpl/opac-tmpl/bootstrap/itemtypeimg/newfile.png test must fail b) xt/author/translatable-templates.t change the name of 'en' dir on any theme opac or staff test must fail Add following line to any template file TEST [% INCLUDE 'fail.inc' %] c) xt/author/valid-templates.t must fail d) xt/single_quotes.t must fail e) xt/tt_valid.t must fail --- .../itemtypeimg/crystal-clear/_COPYING.txt | 2 + .../itemtypeimg/crystal-clear/_README.txt | 8 +- xt/author/icondirectories.t | 103 ++++++++++++------- xt/author/translatable-templates.t | 43 +++++++- xt/author/valid-templates.t | 105 ++++++++++++-------- xt/single_quotes.t | 49 +++++---- xt/tt_valid.t | 44 +++++--- 7 files changed, 240 insertions(+), 114 deletions(-) diff --git a/koha-tmpl/opac-tmpl/bootstrap/itemtypeimg/crystal-clear/_COPYING.txt b/koha-tmpl/opac-tmpl/bootstrap/itemtypeimg/crystal-clear/_COPYING.txt index b3aa599..4ac0469 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/itemtypeimg/crystal-clear/_COPYING.txt +++ b/koha-tmpl/opac-tmpl/bootstrap/itemtypeimg/crystal-clear/_COPYING.txt @@ -118,3 +118,5 @@ No Warranty 16. In no event unless required by applicable law or agreed to in writing will any copyright holder, or any other party who may modify and/or redistribute the library as permitted above, be liable to you for damages, including any general, special, incidental or consequential damages arising out of the use or inability to use the library (including but not limited to loss of data or data being rendered inaccurate or losses sustained by you or third parties or a failure of the library to operate with any other software), even if such holder or other party has been advised of the possibility of such damages. + + diff --git a/koha-tmpl/opac-tmpl/bootstrap/itemtypeimg/crystal-clear/_README.txt b/koha-tmpl/opac-tmpl/bootstrap/itemtypeimg/crystal-clear/_README.txt index 4d119eb..6d8d1c4 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/itemtypeimg/crystal-clear/_README.txt +++ b/koha-tmpl/opac-tmpl/bootstrap/itemtypeimg/crystal-clear/_README.txt @@ -1,9 +1,9 @@ -The Crystal Clear icon set was created by +The Crystal Clear icon set was created by Everaldo Coelho, http://www.everaldo.com/ Submitted: Oct 11 2003 Updated: Jun 16 2007 -Icons were acquired from Wikimedia Commons, +Icons were acquired from Wikimedia Commons, http://commons.wikimedia.org/wiki/Crystal_Clear, 30 Jan 2010. The images were renamed, organized and re-sized to create this packager in a @@ -12,7 +12,7 @@ Icon Library. This package was created by the Open Icon Library, http://openiconlibrary.sourceforge.net/ and is available for download there.T -All Icons are free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. +All Icons are free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. See COPYING.txt or http://www.everaldo.com/crystal/?action=license for details. @@ -24,4 +24,4 @@ books-closed.png books-open-cd.png books-open.png -All Icons are free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. \ No newline at end of file +All Icons are free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. \ No newline at end of file diff --git a/xt/author/icondirectories.t b/xt/author/icondirectories.t index a4145fa..08f1368 100644 --- a/xt/author/icondirectories.t +++ b/xt/author/icondirectories.t @@ -1,5 +1,20 @@ #!/usr/bin/env perl +# This file is part of Koha. +# +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . + =head1 NAME icondirectories.t - test to ensure that the two directories of icons @@ -20,44 +35,60 @@ 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 Test::More tests => 6; + +# hardcoded OPAC & STAFF dirs +my $opac_dir = 'koha-tmpl/opac-tmpl'; +my $staff_dir = 'koha-tmpl/intranet-tmpl'; + +# Find OPAC themes +opendir ( my $dh, $opac_dir ) or die "can't opendir $opac_dir: $!"; +my @opac_themes = grep { not /^\.|lib|js/ } readdir($dh); +close $dh; + +# Find STAFF themes +opendir ( $dh, $staff_dir ) or die "can't opendir $staff_dir: $!"; +my @staff_themes = grep { not /^\.|lib|js/ } readdir($dh); +close $dh; + +# Check existence of OPAC icon dirs +for my $theme ( @opac_themes ) { + my $test_dir = "$opac_dir/$theme/itemtypeimg"; + ok( -d $test_dir, "opac_icon_directory: $test_dir exists" ); } -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 $_; +# Check existence of STAFF icon dirs +for my $theme ( @staff_themes ) { + my $test_dir = "$staff_dir/$theme/img/itemtypeimg"; + ok( -d $test_dir, "staff_icon_directory: $test_dir exists" ); } -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' ] ) ); - - - - - - - - - - - - +# Check for same contents on STAFF and OPAC icondirs +# foreach STAFF theme +for my $staff_theme ( @staff_themes ) { + my $staff_icons; # hashref of filenames to sizes + my $staff_icon_directory = "$staff_dir/$staff_theme/img/itemtypeimg"; + my $staff_wanted = sub { + my $file = $File::Find::name; + $file =~ s/^$staff_icon_directory//; + $staff_icons->{ $file } = -s $_; + }; + find( { wanted => $staff_wanted }, $staff_icon_directory ); + + # foreach OPAC theme + for my $opac_theme ( @opac_themes ) { + next if ( $opac_theme =~ /ccsr/ ); # FIXME: skip CCSR opac theme, it fails and there is no point to fix it + my $opac_icons; # hashref of filenames to sizes + my $opac_icon_directory = "$opac_dir/$opac_theme/itemtypeimg"; + my $opac_wanted = sub { + my $file = $File::Find::name; + $file =~ s/^$opac_icon_directory//; + $opac_icons->{ $file } = -s $_; + }; + find( { wanted => $opac_wanted }, $opac_icon_directory ); + + is_deeply( $opac_icons, $staff_icons, "STAFF $staff_theme and OPAC $opac_theme icon directories have same contents" ) + or diag( Data::Dumper->Dump( [ $opac_icons ], [ 'opac_icons' ] ) ); + } +} diff --git a/xt/author/translatable-templates.t b/xt/author/translatable-templates.t index 8079cd6..59c3ff3 100644 --- a/xt/author/translatable-templates.t +++ b/xt/author/translatable-templates.t @@ -1,5 +1,20 @@ #!/usr/bin/perl +# This file is part of Koha. +# +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . + use strict; use warnings; @@ -12,7 +27,7 @@ construct that the extractor cannot parse. =cut -use Test::More tests => 2; +use Test::More; use File::Temp qw/tempdir/; use IPC::Open3; use File::Spec; @@ -21,9 +36,29 @@ use utf8; my $po_dir = tempdir(CLEANUP => 1); +# Find OPAC themes +my $opac_dir = 'koha-tmpl/opac-tmpl'; +opendir ( my $dh, $opac_dir ) or die "can't opendir $opac_dir: $!"; +my @opac_themes = grep { not /^\.|lib|js/ } readdir($dh); +close $dh; + +# Find STAFF themes +my $staff_dir = 'koha-tmpl/intranet-tmpl'; +opendir ( $dh, $staff_dir ) or die "can't opendir $staff_dir: $!"; +my @staff_themes = grep { not /^\.|lib|js/ } readdir($dh); +close $dh; + 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); + +# Check translatable of OPAC themes +for my $theme ( @opac_themes ) { + test_string_extraction("opac_$theme", "../../koha-tmpl/opac-tmpl/$theme/en", $po_dir); +} + +# Check translatable of STAFF themes +for my $theme ( @staff_themes ) { + test_string_extraction("staff_$theme", "../../koha-tmpl/intranet-tmpl/$theme/en", $po_dir); +} sub test_string_extraction { my $module = shift; @@ -53,3 +88,5 @@ sub test_string_extraction { ok($#warnings == -1, "$module templates are translatable") or diag join("\n", @warnings, ''); } + +done_testing(); diff --git a/xt/author/valid-templates.t b/xt/author/valid-templates.t index e02b6f3..bc61264 100644 --- a/xt/author/valid-templates.t +++ b/xt/author/valid-templates.t @@ -1,21 +1,21 @@ #!/usr/bin/perl -# Copyright 2011 Catalyst IT -# # This file is part of Koha. # -# Koha is free software; you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. +# Copyright 2011 Catalyst IT +# +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. # -# Koha is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR -# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License along -# with Koha; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . use strict; use warnings; @@ -35,32 +35,55 @@ 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 + +my @themes; + +# OPAC themes +my $opac_dir = 'koha-tmpl/opac-tmpl'; +opendir ( my $dh, $opac_dir ) or die "can't opendir $opac_dir: $!"; +for my $theme ( grep { not /^\.|lib|js/ } readdir($dh) ) { + push @themes, { + type => "opac", + theme => $theme, + modules => "$opac_dir/$theme/en/modules", + includes => "$opac_dir/$theme/en/includes", + } +} +close $dh; + +# STAFF themes +my $staff_dir = 'koha-tmpl/intranet-tmpl'; +opendir ( $dh, $staff_dir ) or die "can't opendir $staff_dir: $!"; +for my $theme ( grep { not /^\.|lib|js/ } readdir($dh) ) { + push @themes, { + type => "staff", + theme => $theme, + modules => "$staff_dir/$theme/en/modules", + includes => "$staff_dir/$theme/en/includes", + } +} +close $dh; + +# Tests +foreach my $theme ( @themes ) { + print "Testing $theme->{'type'} $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 +117,10 @@ sub create_template_test { } my $vars; my $output; - if ( !ok( $tt->process( $_, $vars, \$output ), $_ ) ) { - diag( $tt->error ); + if ( ! -d $_ ) { # skip dirs + if ( !ok( $tt->process( $_, $vars, \$output ), $_ ) ) { + diag( $tt->error ); + } } } } diff --git a/xt/single_quotes.t b/xt/single_quotes.t index 89b539c..75681d1 100755 --- a/xt/single_quotes.t +++ b/xt/single_quotes.t @@ -1,38 +1,53 @@ #!/usr/bin/perl -# Copyright (C) 2013 Horowhenua Library Trust -# # This file is part of Koha. # -# Koha is free software; you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation; either version 3 of the License, or (at your option) any later -# version. +# Copyright (C) 2013 Horowhenua Library Trust +# +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. # -# Koha is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR -# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License along -# with Koha; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . use warnings; use strict; use Test::More tests => 1; use File::Find; +my @themes; + +# OPAC themes +my $opac_dir = 'koha-tmpl/opac-tmpl'; +opendir ( my $dh, $opac_dir ) or die "can't opendir $opac_dir: $!"; +for my $theme ( grep { not /^\.|lib|js/ } readdir($dh) ) { + push @themes, "$opac_dir/$theme/en"; +} +close $dh; + +# STAFF themes +my $staff_dir = 'koha-tmpl/intranet-tmpl'; +opendir ( $dh, $staff_dir ) or die "can't opendir $staff_dir: $!"; +for my $theme ( grep { not /^\.|lib|js/ } readdir($dh) ) { + push @themes, "$staff_dir/$theme/en"; +} +close $dh; + my @files; find( sub { 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..507210f 100755 --- a/xt/tt_valid.t +++ b/xt/tt_valid.t @@ -1,21 +1,21 @@ #!/usr/bin/perl -# Copyright (C) 2011 Tamil s.a.r.l. -# # This file is part of Koha. # -# Koha is free software; you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. +# Copyright (C) 2011 Tamil s.a.r.l. +# +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. # -# Koha is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR -# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License along -# with Koha; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . use warnings; use strict; @@ -24,6 +24,23 @@ use File::Find; use Cwd; use C4::TTParser; +my @themes; + +# OPAC themes +my $opac_dir = 'koha-tmpl/opac-tmpl'; +opendir ( my $dh, $opac_dir ) or die "can't opendir $opac_dir: $!"; +for my $theme ( grep { not /^\.|lib|js/ } readdir($dh) ) { + push @themes, "$opac_dir/$theme/en"; +} +close $dh; + +# STAFF themes +my $staff_dir = 'koha-tmpl/intranet-tmpl'; +opendir ( $dh, $staff_dir ) or die "can't opendir $staff_dir: $!"; +for my $theme ( grep { not /^\.|lib|js/ } readdir($dh) ) { + push @themes, "$staff_dir/$theme/en"; +} +close $dh; my @files_with_directive_in_tag = do { my @files; @@ -42,8 +59,7 @@ 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; }; -- 1.7.9.5