use Getopt::Long;
use C4::Context;
-
# When this option is set, no tests are performed.
# The missing sysprefs are displayed as sql inserts instead.
our $showsql = 0;
-GetOptions ('showsql' => \$showsql);
-
+GetOptions( 'showsql' => \$showsql );
use Test::More qw(no_plan);
-our $dbh = C4::Context->dbh;
-my $root_dir = C4::Context->config( 'intranetdir' ) . '/installer/data/mysql';
+our $dbh = C4::Context->dbh;
+my $root_dir = C4::Context->config('intranetdir') . '/installer/data/mysql';
my $base_syspref_file = "sysprefs.sql";
-
open( my $ref_fh, "<$root_dir/$base_syspref_file" );
-my $ref_syspref = get_syspref_from_file( $ref_fh );
+my $ref_syspref = get_syspref_from_file($ref_fh);
my @ref_sysprefs = sort { lc $a cmp lc $b } keys %$ref_syspref;
-if (!$showsql) {
- cmp_ok(
- $#ref_sysprefs, '>=', 0,
- "Found " . ($#ref_sysprefs + 1) . " sysprefs"
- );
+if ( !$showsql ) {
+ cmp_ok( $#ref_sysprefs, '>=', 0,
+ "Found " . ( $#ref_sysprefs + 1 ) . " sysprefs" );
}
check_db($ref_syspref);
-
#
# Get sysprefs from SQL file populating sysprefs table with INSERT statement.
#
sub get_syspref_from_file {
my $fh = shift;
my %syspref;
- while ( <$fh> ) {
- next if /^--/; # Comment line
+ while (<$fh>) {
+ next if /^--/; # Comment line
my $query = $_;
- if ($_ =~ /\([\s]*\'([\w\-:]+)\'/) {
+ if ( $_ =~ /\([\s]*\'([\w\-:]+)\'/ ) {
my $variable = $1;
if ($variable) {
$syspref{$variable} = $query;
return \%syspref;
}
-
sub check_db {
my $sysprefs = shift;
# Checking the number of sysprefs in the database
my $query = "SELECT COUNT(*) FROM systempreferences";
- my $sth = $dbh->prepare($query);
+ my $sth = $dbh->prepare($query);
$sth->execute;
- my $res = $sth->fetchrow_arrayref;
+ my $res = $sth->fetchrow_arrayref;
my $dbcount = $res->[0];
- if (!$showsql) {
- cmp_ok (
- $dbcount, ">=", scalar(keys %$sysprefs), "There are at least as many sysprefs in the database as in the sysprefs.sql"
- );
+ if ( !$showsql ) {
+ cmp_ok( $dbcount, ">=", scalar( keys %$sysprefs ),
+"There are at least as many sysprefs in the database as in the sysprefs.sql"
+ );
}
# Checking for missing sysprefs in the database
$query = "SELECT COUNT(*) FROM systempreferences WHERE variable=?";
- $sth = $dbh->prepare($query);
- foreach (keys %$sysprefs) {
+ $sth = $dbh->prepare($query);
+ foreach ( keys %$sysprefs ) {
$sth->execute($_);
- my $res = $sth->fetchrow_arrayref;
- my $count = $res->[0];
- if (!$showsql) {
- is(
- $count, 1, "Syspref $_ exists in the database"
- );
- } else {
- if ($count != 1) {
- print $sysprefs->{$_};
- }
- }
+ my $res = $sth->fetchrow_arrayref;
+ my $count = $res->[0];
+ if ( !$showsql ) {
+ is( $count, 1, "Syspref $_ exists in the database" );
+ }
+ else {
+ if ( $count != 1 ) {
+ print $sysprefs->{$_};
+ }
+ }
}
}
-
=head1 NAME
syspref.t