Test to check for XXX in kohaversion.pl or updatedatabase.pl
authorChris Cormack <chris@bigballofwax.co.nz>
Mon, 8 Aug 2011 21:45:00 +0000 (23:45 +0200)
committerPaul Poulain <paul.poulain@biblibre.com>
Tue, 27 Dec 2011 16:56:03 +0000 (17:56 +0100)
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Works as advertised.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Amended the original patch of Chris to add two exceptions for a line in SetVersion and TransferToNum.

http://bugs.koha-community.org/show_bug.cgi?id=6700
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
t/00-checkdatabase-version.t [new file with mode: 0644]

diff --git a/t/00-checkdatabase-version.t b/t/00-checkdatabase-version.t
new file mode 100644 (file)
index 0000000..3a3df52
--- /dev/null
@@ -0,0 +1,55 @@
+# Copyright 2010 Chris Cormack
+#
+# 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.
+#
+# 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.
+
+use strict;
+use warnings;
+
+use Test::More;
+use File::Spec;
+use File::Find;
+use IO::File;
+
+my @files =('kohaversion.pl','installer/data/mysql/updatedatabase.pl');
+
+foreach my $file (@files){
+    next unless -f $file;
+    my @name_parts = File::Spec->splitpath($file);
+    my %dirs = map { $_ => 1 } File::Spec->splitdir($name_parts[1]);
+    next if exists $dirs{'.git'};
+
+    my $fh = IO::File->new($file, 'r');
+    my $xxx_found = 0;
+    my $line = 0;
+    while (<$fh>) {
+       $line++;
+       if (/XXX/i) {
+           #two lines are an exception for updatedatabase (routine SetVersion and TransferToNum)
+           next if $file=~ /updatedatabase/ && ( /s\/XXX\$\/999\/;/ || /\$_\[0\]=~ \/XXX\$\/;/ );
+           $xxx_found = 1;
+          last;
+       }
+     }
+     close $fh;
+     if ($xxx_found) {
+         fail("$file has no XXX in it");
+        diag("XXX found in line $line");
+     } else {
+        pass("$file has no XXX in it");
+    }
+}
+
+done_testing();