Bug 15629: Koha::Libraries - Remove GetBranchDetail
[koha.git] / t / db_dependent / UsageStats.t
index e8054d3..713524a 100644 (file)
 # with Koha; if not, see <http://www.gnu.org/licenses>.
 
 use Modern::Perl;
-use Test::More tests => 552;
+use Test::More tests => 549;
 use t::lib::Mocks qw(mock_preference);
 use POSIX qw(strftime);
-use Data::Dumper;
 
 BEGIN {
     use_ok('C4::UsageStats');
@@ -28,7 +27,6 @@ BEGIN {
     use_ok('C4::Reserves');
     use_ok('MARC::Record');
     use_ok('Koha::Acquisition::Order');
-    use_ok('t::lib::TestBuilder');
 }
 
 can_ok(
@@ -42,6 +40,8 @@ can_ok(
 my $dbh = C4::Context->dbh;
 $dbh->{AutoCommit} = 0;
 $dbh->{RaiseError} = 1;
+
+$dbh->do('DELETE FROM issues');
 $dbh->do('DELETE FROM biblio');
 $dbh->do('DELETE FROM items');
 $dbh->do('DELETE FROM auth_header');
@@ -85,7 +85,7 @@ my $report = C4::UsageStats->BuildReport();
 
 isa_ok( $report,            'HASH', '$report is a HASH' );
 isa_ok( $report->{library}, 'HASH', '$report->{library} is a HASH' );
-is( scalar( keys( $report->{library} ) ), 5,  "There are 5 fields in $report->{library}" );
+is( scalar( keys %{$report->{library}} ), 5,  "There are 5 fields in $report->{library}" );
 is( $report->{library}->{id},             0,  "UsageStatsID           is good" );
 is( $report->{library}->{name},           '', "UsageStatsLibraryName  is good" );
 is( $report->{library}->{url},            '', "UsageStatsLibraryUrl   is good" );
@@ -103,7 +103,7 @@ $report = C4::UsageStats->BuildReport();
 
 isa_ok( $report,            'HASH', '$report is a HASH' );
 isa_ok( $report->{library}, 'HASH', '$report->{library} is a HASH' );
-is( scalar( keys( $report->{library} ) ), 5,         "There are 5 fields in $report->{library}" );
+is( scalar( keys %{$report->{library}} ), 5,         "There are 5 fields in $report->{library}" );
 is( $report->{library}->{id},             1,         "UsageStatsID            is good" );
 is( $report->{library}->{name},           'NAME',    "UsageStatsLibraryName   is good" );
 is( $report->{library}->{url},            'URL',     "UsageStatsLibraryUrl    is good" );
@@ -111,12 +111,12 @@ is( $report->{library}->{type},           'TYPE',    "UsageStatsLibraryType   is
 is( $report->{library}->{country},        'COUNTRY', "UsageStatsCountry       is good" );
 
 #Test report->volumetry ---------------
-#without objects
+#with original values
 $report = C4::UsageStats->BuildReport();
 
 isa_ok( $report,              'HASH', '$report is a HASH' );
 isa_ok( $report->{volumetry}, 'HASH', '$report->{volumetry} is a HASH' );
-is( scalar( keys( $report->{volumetry} ) ), 8, "There are 8 fields in $report->{volumetry}" );
+is( scalar( keys %{$report->{volumetry}} ), 8, "There are 8 fields in $report->{volumetry}" );
 is( $report->{volumetry}->{biblio},         0, "There is no biblio" );
 is( $report->{volumetry}->{items},          0, "There is no items" );
 is( $report->{volumetry}->{auth_header},    0, "There is no auth_header" );
@@ -126,22 +126,22 @@ is( $report->{volumetry}->{borrowers},      0, "There is no borrowers" );
 is( $report->{volumetry}->{aqorders},       0, "There is no aqorders" );
 is( $report->{volumetry}->{subscription},   0, "There is no subscription" );
 
+#after adding objects
 construct_objects_needed();
 
-#with objects
 $report = C4::UsageStats->BuildReport();
 
 isa_ok( $report,              'HASH', '$report is a HASH' );
 isa_ok( $report->{volumetry}, 'HASH', '$report->{volumetry} is a HASH' );
-is( scalar( keys( $report->{volumetry} ) ), 8, "There are 8 fields in $report->{volumetry}" );
-is( $report->{volumetry}->{biblio},         4, "There are 4 biblio" );
+is( scalar( keys %{$report->{volumetry}} ), 8, "There are 8 fields in $report->{volumetry}" );
+is( $report->{volumetry}->{biblio},         3, "There are 3 biblio" );
 is( $report->{volumetry}->{items},          3, "There are 3 items" );
 is( $report->{volumetry}->{auth_header},    2, "There are 2 auth_header" );
-is( $report->{volumetry}->{old_issues},     1, "There is 1 old_issues" );
-is( $report->{volumetry}->{old_reserves},   1, "There is 1 old_reserves" );
+is( $report->{volumetry}->{old_issues},     1, "There is  1 old_issues" );
+is( $report->{volumetry}->{old_reserves},   1, "There is  1 old_reserves" );
 is( $report->{volumetry}->{borrowers},      3, "There are 3 borrowers" );
-is( $report->{volumetry}->{aqorders},       1, "There is 1 aqorders" );
-is( $report->{volumetry}->{subscription},   1, "There is 1 subscription" );
+is( $report->{volumetry}->{aqorders},       1, "There is  1 aqorders" );
+is( $report->{volumetry}->{subscription},   1, "There is  1 subscription" );
 
 #Test report->systempreferences -------
 #mock to 0
@@ -150,8 +150,7 @@ mocking_systempreferences_to_a_set_value(0);
 $report = C4::UsageStats->BuildReport();
 isa_ok( $report,                      'HASH', '$report is a HASH' );
 isa_ok( $report->{systempreferences}, 'HASH', '$report->{systempreferences} is a HASH' );
-is( scalar( keys( $report->{systempreferences} ) ), 248, "There are 248 fields in $report->{systempreferences}" );
-verif_systempreferences_values(0);
+verif_systempreferences_values( $report, 0 );
 
 #mock with values
 mocking_systempreferences_to_a_set_value(1);
@@ -159,26 +158,23 @@ mocking_systempreferences_to_a_set_value(1);
 $report = C4::UsageStats->BuildReport();
 isa_ok( $report,                      'HASH', '$report is a HASH' );
 isa_ok( $report->{systempreferences}, 'HASH', '$report->{systempreferences} is a HASH' );
-is( scalar( keys( $report->{systempreferences} ) ), 248, "There are 248 fields in $report->{systempreferences}" );
-verif_systempreferences_values(1);
+verif_systempreferences_values( $report, 1 );
+
+#Test if unwanted syspref are not sent
+is( $report->{systempreferences}->{useDischarge}, undef, 'useDischarge should not be shared');
+is( $report->{systempreferences}->{OpacUserJS},   undef, 'OpacUserJS   should not be shared');
 
 # ---------- Testing ReportToCommunity ----------
 
 # ---------- Testing _count ---------------------
-
-$dbh->do('DROP TABLE IF EXISTS _exmpl_tbl');
-$dbh->do('CREATE TABLE _exmpl_tbl (id INT, val VARCHAR(10))');
-$dbh->do( 'INSERT INTO _exmpl_tbl VALUES(1, ?)', undef, 'Hello' );
-$dbh->do( 'INSERT INTO _exmpl_tbl VALUES(2, ?)', undef, 'World' );
-
 my $query = '
   SELECT count(*)
-  FROM   _exmpl_tbl
+  FROM   borrowers
   ';
 my $count = $dbh->selectrow_array($query);
 
-my $nb_fields = C4::UsageStats::_count('_exmpl_tbl');
-is( $nb_fields, $count, "_exmpl_tbl has 2 fields" );
+my $nb_fields = C4::UsageStats::_count('borrowers');
+is( $nb_fields, $count, "_count return the good number of fields" );
 
 #################################################
 #             Subs
@@ -203,28 +199,23 @@ sub construct_objects_needed {
     my $firstname1   = 'firstname 1';
     my $firstname2   = 'firstname 2';
     my $firstname3   = 'firstname 3';
-    my $cardnumber1  = '00001';
-    my $cardnumber2  = '00002';
-    my $cardnumber3  = '00003';
+    my $cardnumber1  = 'test_card1';
+    my $cardnumber2  = 'test_card2';
+    my $cardnumber3  = 'test_card3';
     my $categorycode = Koha::Database->new()->schema()->resultset('Category')->first()->categorycode();
     my $branchcode   = Koha::Database->new()->schema()->resultset('Branch')->first()->branchcode();
 
     my $query = '
-   INSERT INTO borrowers
+    INSERT INTO borrowers
       (surname, firstname, cardnumber, branchcode, categorycode)
     VALUES (?,?,?,?,?)';
     my $insert_sth = $dbh->prepare($query);
     $insert_sth->execute( $surname1, $firstname1, $cardnumber1, $branchcode, $categorycode );
+    my $borrowernumber1 = $dbh->last_insert_id( undef, undef, 'borrowers', undef );
     $insert_sth->execute( $surname2, $firstname2, $cardnumber2, $branchcode, $categorycode );
+    my $borrowernumber2 = $dbh->last_insert_id( undef, undef, 'borrowers', undef );
     $insert_sth->execute( $surname3, $firstname3, $cardnumber3, $branchcode, $categorycode );
-
-    $query = '
-    SELECT borrowernumber
-    FROM   borrowers
-    WHERE  surname = ?';
-    my $borrowernumber1 = $dbh->selectrow_array( $query, {}, $surname1 );
-    my $borrowernumber2 = $dbh->selectrow_array( $query, {}, $surname2 );
-    my $borrowernumber3 = $dbh->selectrow_array( $query, {}, $surname3 );
+    my $borrowernumber3 = $dbh->last_insert_id( undef, undef, 'borrowers', undef );
 
     # ---------- 3 biblios -----------------------
     my $title1  = 'Title 1';
@@ -252,17 +243,12 @@ sub construct_objects_needed {
       (biblionumber, itemtype, marcxml)
     VALUES (?,?,?)';
     $insert_sth = $dbh->prepare($query);
-    $insert_sth->execute( $biblionumber1, 'Book',  '' );
+    $insert_sth->execute( $biblionumber1, 'Book', '' );
+    my $biblioitemnumber1 = $dbh->last_insert_id( undef, undef, 'biblioitems', undef );
     $insert_sth->execute( $biblionumber2, 'Music', '' );
-    $insert_sth->execute( $biblionumber3, 'Book',  '' );
-
-    $query = '
-    SELECT biblioitemnumber
-    FROM   biblioitems
-    WHERE  biblionumber = ?';
-    my $biblioitemnumber1 = $dbh->selectrow_array( $query, {}, $biblionumber1 );
-    my $biblioitemnumber2 = $dbh->selectrow_array( $query, {}, $biblionumber2 );
-    my $biblioitemnumber3 = $dbh->selectrow_array( $query, {}, $biblionumber3 );
+    my $biblioitemnumber2 = $dbh->last_insert_id( undef, undef, 'biblioitems', undef );
+    $insert_sth->execute( $biblionumber3, 'Book', '' );
+    my $biblioitemnumber3 = $dbh->last_insert_id( undef, undef, 'biblioitems', undef );
 
     # ---------- 3 items  -------------------------
     my $barcode1 = '111111';
@@ -275,16 +261,11 @@ sub construct_objects_needed {
     VALUES (?,?,?,?)';
     $insert_sth = $dbh->prepare($query);
     $insert_sth->execute( $biblionumber1, $biblioitemnumber1, $barcode1, 'Book' );
+    my $item_number1 = $dbh->last_insert_id( undef, undef, 'items', undef );
     $insert_sth->execute( $biblionumber2, $biblioitemnumber2, $barcode2, 'Music' );
+    my $item_number2 = $dbh->last_insert_id( undef, undef, 'items', undef );
     $insert_sth->execute( $biblionumber3, $biblioitemnumber3, $barcode3, 'Book' );
-
-    $query = '
-    SELECT itemnumber
-    FROM   items
-    WHERE  barcode = ?';
-    my $item_number1 = $dbh->selectrow_array( $query, {}, $barcode1 );
-    my $item_number2 = $dbh->selectrow_array( $query, {}, $barcode2 );
-    my $item_number3 = $dbh->selectrow_array( $query, {}, $barcode3 );
+    my $item_number3 = $dbh->last_insert_id( undef, undef, 'items', undef );
 
     # ---------- Add 2 auth_header
     $query = '
@@ -293,14 +274,9 @@ sub construct_objects_needed {
     VALUES (?)';
     $insert_sth = $dbh->prepare($query);
     $insert_sth->execute('authtypecode1');
+    my $authid1 = $dbh->last_insert_id( undef, undef, 'auth_header', undef );
     $insert_sth->execute('authtypecode2');
-
-    $query = '
-    SELECT authid
-    FROM   auth_header
-    WHERE  authtypecode = ?';
-    my $authid1 = $dbh->selectrow_array( $query, {}, 'authtypecode1' );
-    my $authid2 = $dbh->selectrow_array( $query, {}, 'authtypecode2' );
+    my $authid2 = $dbh->last_insert_id( undef, undef, 'auth_header', undef );
 
     # ---------- Add 1 old_issues
     $query = '
@@ -309,29 +285,41 @@ sub construct_objects_needed {
     VALUES (?,?,?)';
     $insert_sth = $dbh->prepare($query);
     $insert_sth->execute( $borrowernumber1, $branchcode, $item_number1 );
-
-    $query = '
-    SELECT issue_id
-    FROM   old_issues
-    WHERE  borrowernumber = ?';
-    my $issue_id1 = $dbh->selectrow_array( $query, {}, $borrowernumber1 );
+    my $issue_id1 = $dbh->last_insert_id( undef, undef, 'old_issues', undef );
 
     # ---------- Add 1 old_reserves
-    AddReserve( $branchcode, $borrowernumber1, $biblionumber1, 'a', '', 1, undef, undef, '', 'Title', undef, undef );
+    AddReserve( $branchcode, $borrowernumber1, $biblionumber1, '', 1, undef, undef, '', 'Title', undef, undef );
     my $reserves1   = GetReservesFromBiblionumber( { biblionumber => $biblionumber1 } );
     my $reserve_id1 = $reserves1->[0]->{reserve_id};
     my $reserve1    = CancelReserve( { reserve_id => $reserve_id1 } );
 
-    # ---------- Add 1 biblio, 1 subscription and 1 aqorder
-    my $builder = t::lib::TestBuilder->new();
-    $builder->clear( { source => 'Aqorder' } );
-    my $order1 = $builder->build(
-        {   source  => 'Aqorder',
-            value   => { datecancellationprinted => undef, },
-            only_fk => 1,
-        }
-    );
-    my $newordernumber = Koha::Acquisition::Order->new($order1)->insert->{ordernumber};
+    # ---------- Add 1 aqbudgets
+    $query = '
+    INSERT INTO aqbudgets
+      (budget_amount)
+    VALUES (?)';
+    $insert_sth = $dbh->prepare($query);
+    $insert_sth->execute("20.0");
+    my $aqbudgets1 = $dbh->last_insert_id( undef, undef, 'aqbudgets', undef );
+
+    # ---------- Add 1 aqorders
+    $query = '
+    INSERT INTO aqorders
+      (budget_id, basketno, biblionumber, invoiceid, subscriptionid)
+    VALUES (?,?,?,?,?)';
+    $insert_sth = $dbh->prepare($query);
+    $insert_sth->execute( $aqbudgets1, undef, undef, undef, undef );
+    my $aqorders1 = $dbh->last_insert_id( undef, undef, 'aqorders', undef );
+
+    # --------- Add 1 subscription
+    $query = '
+    INSERT INTO subscription
+      (biblionumber)
+    VALUES (?)';
+    $insert_sth = $dbh->prepare($query);
+    $insert_sth->execute($biblionumber1);
+    my $subscription1 = $dbh->last_insert_id( undef, undef, 'subscription', undef );
+
 }
 
 #Change systempreferences values to $set_value
@@ -347,7 +335,7 @@ sub mocking_systempreferences_to_a_set_value {
         OrderPdfFormat
         casAuthentication
         casLogout
-        AllowPkiAuth
+        AllowPKIAuth
         DebugLevel
         delimiter
         noItemTypeImages
@@ -588,6 +576,7 @@ sub mocking_systempreferences_to_a_set_value {
         ILS-DI
         OAI-PMH
         version
+        AudioAlerts
         /
       ) {
         t::lib::Mocks::mock_preference( $_, $set_value );
@@ -596,256 +585,11 @@ sub mocking_systempreferences_to_a_set_value {
 
 #Test if all systempreferences are at $value_to_test
 sub verif_systempreferences_values {
-    my $value_to_test = shift;
-
-    is( $report->{systempreferences}->{AcqCreateItem},                       $value_to_test, "AcqCreateItem                      = $value_to_test" );
-    is( $report->{systempreferences}->{AcqWarnOnDuplicateInvoice},           $value_to_test, "AcqWarnOnDuplicateInvoice          = $value_to_test" );
-    is( $report->{systempreferences}->{AcqViewBaskets},                      $value_to_test, "AcqViewBaskets                     = $value_to_test" );
-    is( $report->{systempreferences}->{BasketConfirmations},                 $value_to_test, "BasketConfirmations                = $value_to_test" );
-    is( $report->{systempreferences}->{OrderPdfFormat},                      $value_to_test, "OrderPdfFormat                     = $value_to_test" );
-    is( $report->{systempreferences}->{casAuthentication},                   $value_to_test, "casAuthentication                  = $value_to_test" );
-    is( $report->{systempreferences}->{casLogout},                           $value_to_test, "casLogout                          = $value_to_test" );
-    is( $report->{systempreferences}->{AllowPkiAuth},                        $value_to_test, "AllowPkiAuth                       = $value_to_test" );
-    is( $report->{systempreferences}->{DebugLevel},                          $value_to_test, "DebugLevel                         = $value_to_test" );
-    is( $report->{systempreferences}->{delimiter},                           $value_to_test, "delimiter                          = $value_to_test" );
-    is( $report->{systempreferences}->{noItemTypeImages},                    $value_to_test, "noItemTypeImages                   = $value_to_test" );
-    is( $report->{systempreferences}->{virtualshelves},                      $value_to_test, "virtualshelves                     = $value_to_test" );
-    is( $report->{systempreferences}->{AutoLocation},                        $value_to_test, "AutoLocation                       = $value_to_test" );
-    is( $report->{systempreferences}->{IndependentBranches},                 $value_to_test, "IndependentBranches                = $value_to_test" );
-    is( $report->{systempreferences}->{SessionStorage},                      $value_to_test, "SessionStorage                     = $value_to_test" );
-    is( $report->{systempreferences}->{Persona},                             $value_to_test, "Persona                            = $value_to_test" );
-    is( $report->{systempreferences}->{AuthDisplayHierarchy},                $value_to_test, "AuthDisplayHierarchy               = $value_to_test" );
-    is( $report->{systempreferences}->{AutoCreateAuthorities},               $value_to_test, "AutoCreateAuthorities              = $value_to_test" );
-    is( $report->{systempreferences}->{BiblioAddsAuthorities},               $value_to_test, "BiblioAddsAuthorities              = $value_to_test" );
-    is( $report->{systempreferences}->{dontmerge},                           $value_to_test, "dontmerge                          = $value_to_test" );
-    is( $report->{systempreferences}->{UseAuthoritiesForTracings},           $value_to_test, "UseAuthoritiesForTracings          = $value_to_test" );
-    is( $report->{systempreferences}->{CatalogModuleRelink},                 $value_to_test, "CatalogModuleRelink                = $value_to_test" );
-    is( $report->{systempreferences}->{hide_marc},                           $value_to_test, "hide_marc                          = $value_to_test" );
-    is( $report->{systempreferences}->{IntranetBiblioDefaultView},           $value_to_test, "IntranetBiblioDefaultView          = $value_to_test" );
-    is( $report->{systempreferences}->{LabelMARCView},                       $value_to_test, "LabelMARCView                      = $value_to_test" );
-    is( $report->{systempreferences}->{OpacSuppression},                     $value_to_test, "OpacSuppression                    = $value_to_test" );
-    is( $report->{systempreferences}->{SeparateHoldings},                    $value_to_test, "SeparateHoldings                   = $value_to_test" );
-    is( $report->{systempreferences}->{UseControlNumber},                    $value_to_test, "UseControlNumber                   = $value_to_test" );
-    is( $report->{systempreferences}->{advancedMARCeditor},                  $value_to_test, "advancedMARCeditor                 = $value_to_test" );
-    is( $report->{systempreferences}->{DefaultClassificationSource},         $value_to_test, "DefaultClassificationSource        = $value_to_test" );
-    is( $report->{systempreferences}->{EasyAnalyticalRecords},               $value_to_test, "EasyAnalyticalRecords              = $value_to_test" );
-    is( $report->{systempreferences}->{autoBarcode},                         $value_to_test, "autoBarcode                        = $value_to_test" );
-    is( $report->{systempreferences}->{'item-level_itypes'},                 $value_to_test, "item-level_itypes                  = $value_to_test" );
-    is( $report->{systempreferences}->{marcflavour},                         $value_to_test, "marcflavour                        = $value_to_test" );
-    is( $report->{systempreferences}->{PrefillItem},                         $value_to_test, "PrefillItem                        = $value_to_test" );
-    is( $report->{systempreferences}->{z3950NormalizeAuthor},                $value_to_test, "z3950NormalizeAuthor               = $value_to_test" );
-    is( $report->{systempreferences}->{SpineLabelAutoPrint},                 $value_to_test, "SpineLabelAutoPrint                = $value_to_test" );
-    is( $report->{systempreferences}->{SpineLabelShowPrintOnBibDetails},     $value_to_test, "SpineLabelShowPrintOnBibDetails    = $value_to_test" );
-    is( $report->{systempreferences}->{BlockReturnOfWithdrawnItems},         $value_to_test, "BlockReturnOfWithdrawnItems        = $value_to_test" );
-    is( $report->{systempreferences}->{CalculateFinesOnReturn},              $value_to_test, "CalculateFinesOnReturn             = $value_to_test" );
-    is( $report->{systempreferences}->{AgeRestrictionOverride},              $value_to_test, "AgeRestrictionOverride             = $value_to_test" );
-    is( $report->{systempreferences}->{AllFinesNeedOverride},                $value_to_test, "AllFinesNeedOverride               = $value_to_test" );
-    is( $report->{systempreferences}->{AllowFineOverride},                   $value_to_test, "AllowFineOverride                  = $value_to_test" );
-    is( $report->{systempreferences}->{AllowItemsOnHoldCheckout},            $value_to_test, "AllowItemsOnHoldCheckout           = $value_to_test" );
-    is( $report->{systempreferences}->{AllowNotForLoanOverride},             $value_to_test, "AllowNotForLoanOverride            = $value_to_test" );
-    is( $report->{systempreferences}->{AllowRenewalLimitOverride},           $value_to_test, "AllowRenewalLimitOverride          = $value_to_test" );
-    is( $report->{systempreferences}->{AllowReturnToBranch},                 $value_to_test, "AllowReturnToBranch                = $value_to_test" );
-    is( $report->{systempreferences}->{AllowTooManyOverride},                $value_to_test, "AllowTooManyOverride               = $value_to_test" );
-    is( $report->{systempreferences}->{AutomaticItemReturn},                 $value_to_test, "AutomaticItemReturn                = $value_to_test" );
-    is( $report->{systempreferences}->{AutoRemoveOverduesRestrictions},      $value_to_test, "AutoRemoveOverduesRestrictions     = $value_to_test" );
-    is( $report->{systempreferences}->{CircControl},                         $value_to_test, "CircControl                        = $value_to_test" );
-    is( $report->{systempreferences}->{HomeOrHoldingBranch},                 $value_to_test, "HomeOrHoldingBranch                = $value_to_test" );
-    is( $report->{systempreferences}->{HomeOrHoldingBranchReturn},           $value_to_test, "HomeOrHoldingBranchReturn          = $value_to_test" );
-    is( $report->{systempreferences}->{InProcessingToShelvingCart},          $value_to_test, "InProcessingToShelvingCart         = $value_to_test" );
-    is( $report->{systempreferences}->{IssueLostItem},                       $value_to_test, "IssueLostItem                      = $value_to_test" );
-    is( $report->{systempreferences}->{IssuingInProcess},                    $value_to_test, "IssuingInProcess                   = $value_to_test" );
-    is( $report->{systempreferences}->{ManInvInNoissuesCharge},              $value_to_test, "ManInvInNoissuesCharge             = $value_to_test" );
-    is( $report->{systempreferences}->{OverduesBlockCirc},                   $value_to_test, "OverduesBlockCirc                  = $value_to_test" );
-    is( $report->{systempreferences}->{RenewalPeriodBase},                   $value_to_test, "RenewalPeriodBase                  = $value_to_test" );
-    is( $report->{systempreferences}->{RenewalSendNotice},                   $value_to_test, "RenewalSendNotice                  = $value_to_test" );
-    is( $report->{systempreferences}->{RentalsInNoissuesCharge},             $value_to_test, "RentalsInNoissuesCharge            = $value_to_test" );
-    is( $report->{systempreferences}->{ReturnBeforeExpiry},                  $value_to_test, "ReturnBeforeExpiry                 = $value_to_test" );
-    is( $report->{systempreferences}->{ReturnToShelvingCart},                $value_to_test, "ReturnToShelvingCart               = $value_to_test" );
-    is( $report->{systempreferences}->{TransfersMaxDaysWarning},             $value_to_test, "TransfersMaxDaysWarning            = $value_to_test" );
-    is( $report->{systempreferences}->{UseBranchTransferLimits},             $value_to_test, "UseBranchTransferLimits            = $value_to_test" );
-    is( $report->{systempreferences}->{useDaysMode},                         $value_to_test, "useDaysMode                        = $value_to_test" );
-    is( $report->{systempreferences}->{UseTransportCostMatrix},              $value_to_test, "UseTransportCostMatrix             = $value_to_test" );
-    is( $report->{systempreferences}->{UseCourseReserves},                   $value_to_test, "UseCourseReserves                  = $value_to_test" );
-    is( $report->{systempreferences}->{finesCalendar},                       $value_to_test, "finesCalendar                      = $value_to_test" );
-    is( $report->{systempreferences}->{FinesIncludeGracePeriod},             $value_to_test, "FinesIncludeGracePeriod            = $value_to_test" );
-    is( $report->{systempreferences}->{finesMode},                           $value_to_test, "finesMode                          = $value_to_test" );
-    is( $report->{systempreferences}->{RefundLostItemFeeOnReturn},           $value_to_test, "RefundLostItemFeeOnReturn          = $value_to_test" );
-    is( $report->{systempreferences}->{WhenLostChargeReplacementFee},        $value_to_test, "WhenLostChargeReplacementFee       = $value_to_test" );
-    is( $report->{systempreferences}->{WhenLostForgiveFine},                 $value_to_test, "WhenLostForgiveFine                = $value_to_test" );
-    is( $report->{systempreferences}->{AllowHoldDateInFuture},               $value_to_test, "AllowHoldDateInFuture              = $value_to_test" );
-    is( $report->{systempreferences}->{AllowHoldPolicyOverride},             $value_to_test, "AllowHoldPolicyOverride            = $value_to_test" );
-    is( $report->{systempreferences}->{AllowHoldsOnDamagedItems},            $value_to_test, "AllowHoldsOnDamagedItems           = $value_to_test" );
-    is( $report->{systempreferences}->{AllowHoldsOnPatronsPossessions},      $value_to_test, "AllowHoldsOnPatronsPossessions     = $value_to_test" );
-    is( $report->{systempreferences}->{AutoResumeSuspendedHolds},            $value_to_test, "AutoResumeSuspendedHolds           = $value_to_test" );
-    is( $report->{systempreferences}->{canreservefromotherbranches},         $value_to_test, "canreservefromotherbranches        = $value_to_test" );
-    is( $report->{systempreferences}->{decreaseLoanHighHolds},               $value_to_test, "decreaseLoanHighHolds              = $value_to_test" );
-    is( $report->{systempreferences}->{DisplayMultiPlaceHold},               $value_to_test, "DisplayMultiPlaceHold              = $value_to_test" );
-    is( $report->{systempreferences}->{emailLibrarianWhenHoldIsPlaced},      $value_to_test, "emailLibrarianWhenHoldIsPlaced     = $value_to_test" );
-    is( $report->{systempreferences}->{ExpireReservesMaxPickUpDelay},        $value_to_test, "ExpireReservesMaxPickUpDelay       = $value_to_test" );
-    is( $report->{systempreferences}->{OPACAllowHoldDateInFuture},           $value_to_test, "OPACAllowHoldDateInFuture          = $value_to_test" );
-    is( $report->{systempreferences}->{OPACAllowUserToChooseBranch},         $value_to_test, "OPACAllowUserToChooseBranch        = $value_to_test" );
-    is( $report->{systempreferences}->{ReservesControlBranch},               $value_to_test, "ReservesControlBranch              = $value_to_test" );
-    is( $report->{systempreferences}->{ReservesNeedReturns},                 $value_to_test, "ReservesNeedReturns                = $value_to_test" );
-    is( $report->{systempreferences}->{SuspendHoldsIntranet},                $value_to_test, "SuspendHoldsIntranet               = $value_to_test" );
-    is( $report->{systempreferences}->{SuspendHoldsOpac},                    $value_to_test, "SuspendHoldsOpac                   = $value_to_test" );
-    is( $report->{systempreferences}->{TransferWhenCancelAllWaitingHolds},   $value_to_test, "TransferWhenCancelAllWaitingHolds  = $value_to_test" );
-    is( $report->{systempreferences}->{AllowAllMessageDeletion},             $value_to_test, "AllowAllMessageDeletion            = $value_to_test" );
-    is( $report->{systempreferences}->{AllowOfflineCirculation},             $value_to_test, "AllowOfflineCirculation            = $value_to_test" );
-    is( $report->{systempreferences}->{CircAutocompl},                       $value_to_test, "CircAutocompl                      = $value_to_test" );
-    is( $report->{systempreferences}->{CircAutoPrintQuickSlip},              $value_to_test, "CircAutoPrintQuickSlip             = $value_to_test" );
-    is( $report->{systempreferences}->{DisplayClearScreenButton},            $value_to_test, "DisplayClearScreenButton           = $value_to_test" );
-    is( $report->{systempreferences}->{FilterBeforeOverdueReport},           $value_to_test, "FilterBeforeOverdueReport          = $value_to_test" );
-    is( $report->{systempreferences}->{FineNotifyAtCheckin},                 $value_to_test, "FineNotifyAtCheckin                = $value_to_test" );
-    is( $report->{systempreferences}->{itemBarcodeFallbackSearch},           $value_to_test, "itemBarcodeFallbackSearch          = $value_to_test" );
-    is( $report->{systempreferences}->{itemBarcodeInputFilter},              $value_to_test, "itemBarcodeInputFilter             = $value_to_test" );
-    is( $report->{systempreferences}->{previousIssuesDefaultSortOrder},      $value_to_test, "previousIssuesDefaultSortOrder     = $value_to_test" );
-    is( $report->{systempreferences}->{RecordLocalUseOnReturn},              $value_to_test, "RecordLocalUseOnReturn             = $value_to_test" );
-    is( $report->{systempreferences}->{soundon},                             $value_to_test, "soundon                            = $value_to_test" );
-    is( $report->{systempreferences}->{SpecifyDueDate},                      $value_to_test, "SpecifyDueDate                     = $value_to_test" );
-    is( $report->{systempreferences}->{todaysIssuesDefaultSortOrder},        $value_to_test, "todaysIssuesDefaultSortOrder       = $value_to_test" );
-    is( $report->{systempreferences}->{UpdateTotalIssuesOnCirc},             $value_to_test, "UpdateTotalIssuesOnCirc            = $value_to_test" );
-    is( $report->{systempreferences}->{UseTablesortForCirc},                 $value_to_test, "UseTablesortForCirc                = $value_to_test" );
-    is( $report->{systempreferences}->{WaitingNotifyAtCheckin},              $value_to_test, "WaitingNotifyAtCheckin             = $value_to_test" );
-    is( $report->{systempreferences}->{AllowSelfCheckReturns},               $value_to_test, "AllowSelfCheckReturns              = $value_to_test" );
-    is( $report->{systempreferences}->{AutoSelfCheckAllowed},                $value_to_test, "AutoSelfCheckAllowed               = $value_to_test" );
-    is( $report->{systempreferences}->{FRBRizeEditions},                     $value_to_test, "FRBRizeEditions                    = $value_to_test" );
-    is( $report->{systempreferences}->{OPACFRBRizeEditions},                 $value_to_test, "OPACFRBRizeEditions                = $value_to_test" );
-    is( $report->{systempreferences}->{AmazonCoverImages},                   $value_to_test, "AmazonCoverImages                  = $value_to_test" );
-    is( $report->{systempreferences}->{OPACAmazonCoverImages},               $value_to_test, "OPACAmazonCoverImages              = $value_to_test" );
-    is( $report->{systempreferences}->{Babeltheque},                         $value_to_test, "Babeltheque                        = $value_to_test" );
-    is( $report->{systempreferences}->{BakerTaylorEnabled},                  $value_to_test, "BakerTaylorEnabled                 = $value_to_test" );
-    is( $report->{systempreferences}->{GoogleJackets},                       $value_to_test, "GoogleJackets                      = $value_to_test" );
-    is( $report->{systempreferences}->{HTML5MediaEnabled},                   $value_to_test, "HTML5MediaEnabled                  = $value_to_test" );
-    is( $report->{systempreferences}->{IDreamBooksReadometer},               $value_to_test, "IDreamBooksReadometer              = $value_to_test" );
-    is( $report->{systempreferences}->{IDreamBooksResults},                  $value_to_test, "IDreamBooksResults                 = $value_to_test" );
-    is( $report->{systempreferences}->{IDreamBooksReviews},                  $value_to_test, "IDreamBooksReviews                 = $value_to_test" );
-    is( $report->{systempreferences}->{LibraryThingForLibrariesEnabled},     $value_to_test, "LibraryThingForLibrariesEnabled    = $value_to_test" );
-    is( $report->{systempreferences}->{LocalCoverImages},                    $value_to_test, "LocalCoverImages                   = $value_to_test" );
-    is( $report->{systempreferences}->{OPACLocalCoverImages},                $value_to_test, "OPACLocalCoverImages               = $value_to_test" );
-    is( $report->{systempreferences}->{NovelistSelectEnabled},               $value_to_test, "NovelistSelectEnabled              = $value_to_test" );
-    is( $report->{systempreferences}->{XISBN},                               $value_to_test, "XISBN                              = $value_to_test" );
-    is( $report->{systempreferences}->{OpenLibraryCovers},                   $value_to_test, "OpenLibraryCovers                  = $value_to_test" );
-    is( $report->{systempreferences}->{UseKohaPlugins},                      $value_to_test, "UseKohaPlugins                     = $value_to_test" );
-    is( $report->{systempreferences}->{SyndeticsEnabled},                    $value_to_test, "SyndeticsEnabled                   = $value_to_test" );
-    is( $report->{systempreferences}->{TagsEnabled},                         $value_to_test, "TagsEnabled                        = $value_to_test" );
-    is( $report->{systempreferences}->{CalendarFirstDayOfWeek},              $value_to_test, "CalendarFirstDayOfWeek             = $value_to_test" );
-    is( $report->{systempreferences}->{opaclanguagesdisplay},                $value_to_test, "opaclanguagesdisplay               = $value_to_test" );
-    is( $report->{systempreferences}->{AuthoritiesLog},                      $value_to_test, "AuthoritiesLog                     = $value_to_test" );
-    is( $report->{systempreferences}->{BorrowersLog},                        $value_to_test, "BorrowersLog                       = $value_to_test" );
-    is( $report->{systempreferences}->{CataloguingLog},                      $value_to_test, "CataloguingLog                     = $value_to_test" );
-    is( $report->{systempreferences}->{FinesLog},                            $value_to_test, "FinesLog                           = $value_to_test" );
-    is( $report->{systempreferences}->{IssueLog},                            $value_to_test, "IssueLog                           = $value_to_test" );
-    is( $report->{systempreferences}->{LetterLog},                           $value_to_test, "LetterLog                          = $value_to_test" );
-    is( $report->{systempreferences}->{ReturnLog},                           $value_to_test, "ReturnLog                          = $value_to_test" );
-    is( $report->{systempreferences}->{SubscriptionLog},                     $value_to_test, "SubscriptionLog                    = $value_to_test" );
-    is( $report->{systempreferences}->{AuthorisedValueImages},               $value_to_test, "AuthorisedValueImages              = $value_to_test" );
-    is( $report->{systempreferences}->{BiblioDefaultView},                   $value_to_test, "BiblioDefaultView                  = $value_to_test" );
-    is( $report->{systempreferences}->{COinSinOPACResults},                  $value_to_test, "COinSinOPACResults                 = $value_to_test" );
-    is( $report->{systempreferences}->{DisplayOPACiconsXSLT},                $value_to_test, "DisplayOPACiconsXSLT               = $value_to_test" );
-    is( $report->{systempreferences}->{hidelostitems},                       $value_to_test, "hidelostitems                      = $value_to_test" );
-    is( $report->{systempreferences}->{HighlightOwnItemsOnOPAC},             $value_to_test, "HighlightOwnItemsOnOPAC            = $value_to_test" );
-    is( $report->{systempreferences}->{OpacAddMastheadLibraryPulldown},      $value_to_test, "OpacAddMastheadLibraryPulldown     = $value_to_test" );
-    is( $report->{systempreferences}->{OPACDisplay856uAsImage},              $value_to_test, "OPACDisplay856uAsImage             = $value_to_test" );
-    is( $report->{systempreferences}->{OpacHighlightedWords},                $value_to_test, "OpacHighlightedWords               = $value_to_test" );
-    is( $report->{systempreferences}->{OpacKohaUrl},                         $value_to_test, "OpacKohaUrl                        = $value_to_test" );
-    is( $report->{systempreferences}->{OpacMaintenance},                     $value_to_test, "OpacMaintenance                    = $value_to_test" );
-    is( $report->{systempreferences}->{OpacPublic},                          $value_to_test, "OpacPublic                         = $value_to_test" );
-    is( $report->{systempreferences}->{OpacSeparateHoldings},                $value_to_test, "OpacSeparateHoldings               = $value_to_test" );
-    is( $report->{systempreferences}->{OPACShowBarcode},                     $value_to_test, "OPACShowBarcode                    = $value_to_test" );
-    is( $report->{systempreferences}->{OPACShowCheckoutName},                $value_to_test, "OPACShowCheckoutName               = $value_to_test" );
-    is( $report->{systempreferences}->{OpacShowFiltersPulldownMobile},       $value_to_test, "OpacShowFiltersPulldownMobile      = $value_to_test" );
-    is( $report->{systempreferences}->{OPACShowHoldQueueDetails},            $value_to_test, "OPACShowHoldQueueDetails           = $value_to_test" );
-    is( $report->{systempreferences}->{OpacShowLibrariesPulldownMobile},     $value_to_test, "OpacShowLibrariesPulldownMobile    = $value_to_test" );
-    is( $report->{systempreferences}->{OpacShowRecentComments},              $value_to_test, "OpacShowRecentComments             = $value_to_test" );
-    is( $report->{systempreferences}->{OPACShowUnusedAuthorities},           $value_to_test, "OPACShowUnusedAuthorities          = $value_to_test" );
-    is( $report->{systempreferences}->{OpacStarRatings},                     $value_to_test, "OpacStarRatings                    = $value_to_test" );
-    is( $report->{systempreferences}->{opacthemes},                          $value_to_test, "opacthemes                         = $value_to_test" );
-    is( $report->{systempreferences}->{OPACURLOpenInNewWindow},              $value_to_test, "OPACURLOpenInNewWindow             = $value_to_test" );
-    is( $report->{systempreferences}->{OpacAuthorities},                     $value_to_test, "OpacAuthorities                    = $value_to_test" );
-    is( $report->{systempreferences}->{opacbookbag},                         $value_to_test, "opacbookbag                        = $value_to_test" );
-    is( $report->{systempreferences}->{OpacBrowser},                         $value_to_test, "OpacBrowser                        = $value_to_test" );
-    is( $report->{systempreferences}->{OpacBrowseResults},                   $value_to_test, "OpacBrowseResults                  = $value_to_test" );
-    is( $report->{systempreferences}->{OpacCloud},                           $value_to_test, "OpacCloud                          = $value_to_test" );
-    is( $report->{systempreferences}->{OPACFinesTab},                        $value_to_test, "OPACFinesTab                       = $value_to_test" );
-    is( $report->{systempreferences}->{OpacHoldNotes},                       $value_to_test, "OpacHoldNotes                      = $value_to_test" );
-    is( $report->{systempreferences}->{OpacItemLocation},                    $value_to_test, "OpacItemLocation                   = $value_to_test" );
-    is( $report->{systempreferences}->{OpacPasswordChange},                  $value_to_test, "OpacPasswordChange                 = $value_to_test" );
-    is( $report->{systempreferences}->{OPACPatronDetails},                   $value_to_test, "OPACPatronDetails                  = $value_to_test" );
-    is( $report->{systempreferences}->{OPACpatronimages},                    $value_to_test, "OPACpatronimages                   = $value_to_test" );
-    is( $report->{systempreferences}->{OPACPopupAuthorsSearch},              $value_to_test, "OPACPopupAuthorsSearch             = $value_to_test" );
-    is( $report->{systempreferences}->{OpacTopissue},                        $value_to_test, "OpacTopissue                       = $value_to_test" );
-    is( $report->{systempreferences}->{opacuserlogin},                       $value_to_test, "opacuserlogin                      = $value_to_test" );
-    is( $report->{systempreferences}->{QuoteOfTheDay},                       $value_to_test, "QuoteOfTheDay                      = $value_to_test" );
-    is( $report->{systempreferences}->{RequestOnOpac},                       $value_to_test, "RequestOnOpac                      = $value_to_test" );
-    is( $report->{systempreferences}->{reviewson},                           $value_to_test, "reviewson                          = $value_to_test" );
-    is( $report->{systempreferences}->{ShowReviewer},                        $value_to_test, "ShowReviewer                       = $value_to_test" );
-    is( $report->{systempreferences}->{ShowReviewerPhoto},                   $value_to_test, "ShowReviewerPhoto                  = $value_to_test" );
-    is( $report->{systempreferences}->{SocialNetworks},                      $value_to_test, "SocialNetworks                     = $value_to_test" );
-    is( $report->{systempreferences}->{suggestion},                          $value_to_test, "suggestion                         = $value_to_test" );
-    is( $report->{systempreferences}->{AllowPurchaseSuggestionBranchChoice}, $value_to_test, "AllowPurchaseSuggestionBranchChoice= $value_to_test" );
-    is( $report->{systempreferences}->{OpacAllowPublicListCreation},         $value_to_test, "OpacAllowPublicListCreation        = $value_to_test" );
-    is( $report->{systempreferences}->{OpacAllowSharingPrivateLists},        $value_to_test, "OpacAllowSharingPrivateLists       = $value_to_test" );
-    is( $report->{systempreferences}->{OpacRenewalAllowed},                  $value_to_test, "OpacRenewalAllowed                 = $value_to_test" );
-    is( $report->{systempreferences}->{OpacRenewalBranch},                   $value_to_test, "OpacRenewalBranch                  = $value_to_test" );
-    is( $report->{systempreferences}->{OPACViewOthersSuggestions},           $value_to_test, "OPACViewOthersSuggestions          = $value_to_test" );
-    is( $report->{systempreferences}->{SearchMyLibraryFirst},                $value_to_test, "SearchMyLibraryFirst               = $value_to_test" );
-    is( $report->{systempreferences}->{singleBranchMode},                    $value_to_test, "singleBranchMode                   = $value_to_test" );
-    is( $report->{systempreferences}->{AnonSuggestions},                     $value_to_test, "AnonSuggestions                    = $value_to_test" );
-    is( $report->{systempreferences}->{EnableOpacSearchHistory},             $value_to_test, "EnableOpacSearchHistory            = $value_to_test" );
-    is( $report->{systempreferences}->{OPACPrivacy},                         $value_to_test, "OPACPrivacy                        = $value_to_test" );
-    is( $report->{systempreferences}->{opacreadinghistory},                  $value_to_test, "opacreadinghistory                 = $value_to_test" );
-    is( $report->{systempreferences}->{TrackClicks},                         $value_to_test, "TrackClicks                        = $value_to_test" );
-    is( $report->{systempreferences}->{PatronSelfRegistration},              $value_to_test, "PatronSelfRegistration             = $value_to_test" );
-    is( $report->{systempreferences}->{OPACShelfBrowser},                    $value_to_test, "OPACShelfBrowser                   = $value_to_test" );
-    is( $report->{systempreferences}->{AutoEmailOpacUser},                   $value_to_test, "AutoEmailOpacUser                  = $value_to_test" );
-    is( $report->{systempreferences}->{AutoEmailPrimaryAddress},             $value_to_test, "AutoEmailPrimaryAddress            = $value_to_test" );
-    is( $report->{systempreferences}->{autoMemberNum},                       $value_to_test, "autoMemberNum                      = $value_to_test" );
-    is( $report->{systempreferences}->{BorrowerRenewalPeriodBase},           $value_to_test, "BorrowerRenewalPeriodBase          = $value_to_test" );
-    is( $report->{systempreferences}->{checkdigit},                          $value_to_test, "checkdigit                         = $value_to_test" );
-    is( $report->{systempreferences}->{EnableBorrowerFiles},                 $value_to_test, "EnableBorrowerFiles                = $value_to_test" );
-    is( $report->{systempreferences}->{EnhancedMessagingPreferences},        $value_to_test, "EnhancedMessagingPreferences       = $value_to_test" );
-    is( $report->{systempreferences}->{ExtendedPatronAttributes},            $value_to_test, "ExtendedPatronAttributes           = $value_to_test" );
-    is( $report->{systempreferences}->{intranetreadinghistory},              $value_to_test, "intranetreadinghistory             = $value_to_test" );
-    is( $report->{systempreferences}->{memberofinstitution},                 $value_to_test, "memberofinstitution                = $value_to_test" );
-    is( $report->{systempreferences}->{patronimages},                        $value_to_test, "patronimages                       = $value_to_test" );
-    is( $report->{systempreferences}->{TalkingTechItivaPhoneNotification},   $value_to_test, "TalkingTechItivaPhoneNotification  = $value_to_test" );
-    is( $report->{systempreferences}->{uppercasesurnames},                   $value_to_test, "uppercasesurnames                  = $value_to_test" );
-    is( $report->{systempreferences}->{IncludeSeeFromInSearches},            $value_to_test, "IncludeSeeFromInSearches           = $value_to_test" );
-    is( $report->{systempreferences}->{OpacGroupResults},                    $value_to_test, "OpacGroupResults                   = $value_to_test" );
-    is( $report->{systempreferences}->{QueryAutoTruncate},                   $value_to_test, "QueryAutoTruncate                  = $value_to_test" );
-    is( $report->{systempreferences}->{QueryFuzzy},                          $value_to_test, "QueryFuzzy                         = $value_to_test" );
-    is( $report->{systempreferences}->{QueryStemming},                       $value_to_test, "QueryStemming                      = $value_to_test" );
-    is( $report->{systempreferences}->{QueryWeightFields},                   $value_to_test, "QueryWeightFields                  = $value_to_test" );
-    is( $report->{systempreferences}->{TraceCompleteSubfields},              $value_to_test, "TraceCompleteSubfields             = $value_to_test" );
-    is( $report->{systempreferences}->{TraceSubjectSubdivisions},            $value_to_test, "TraceSubjectSubdivisions           = $value_to_test" );
-    is( $report->{systempreferences}->{UseICU},                              $value_to_test, "UseICU                             = $value_to_test" );
-    is( $report->{systempreferences}->{UseQueryParser},                      $value_to_test, "UseQueryParser                     = $value_to_test" );
-    is( $report->{systempreferences}->{defaultSortField},                    $value_to_test, "defaultSortField                   = $value_to_test" );
-    is( $report->{systempreferences}->{displayFacetCount},                   $value_to_test, "displayFacetCount                  = $value_to_test" );
-    is( $report->{systempreferences}->{OPACdefaultSortField},                $value_to_test, "OPACdefaultSortField               = $value_to_test" );
-    is( $report->{systempreferences}->{OPACItemsResultsDisplay},             $value_to_test, "OPACItemsResultsDisplay            = $value_to_test" );
-    is( $report->{systempreferences}->{expandedSearchOption},                $value_to_test, "expandedSearchOption               = $value_to_test" );
-    is( $report->{systempreferences}->{IntranetNumbersPreferPhrase},         $value_to_test, "IntranetNumbersPreferPhrase        = $value_to_test" );
-    is( $report->{systempreferences}->{OPACNumbersPreferPhrase},             $value_to_test, "OPACNumbersPreferPhrase            = $value_to_test" );
-    is( $report->{systempreferences}->{opacSerialDefaultTab},                $value_to_test, "opacSerialDefaultTab               = $value_to_test" );
-    is( $report->{systempreferences}->{RenewSerialAddsSuggestion},           $value_to_test, "RenewSerialAddsSuggestion          = $value_to_test" );
-    is( $report->{systempreferences}->{RoutingListAddReserves},              $value_to_test, "RoutingListAddReserves             = $value_to_test" );
-    is( $report->{systempreferences}->{RoutingSerials},                      $value_to_test, "RoutingSerials                     = $value_to_test" );
-    is( $report->{systempreferences}->{SubscriptionHistory},                 $value_to_test, "SubscriptionHistory                = $value_to_test" );
-    is( $report->{systempreferences}->{Display856uAsImage},                  $value_to_test, "Display856uAsImage                 = $value_to_test" );
-    is( $report->{systempreferences}->{DisplayIconsXSLT},                    $value_to_test, "DisplayIconsXSLT                   = $value_to_test" );
-    is( $report->{systempreferences}->{StaffAuthorisedValueImages},          $value_to_test, "StaffAuthorisedValueImages         = $value_to_test" );
-    is( $report->{systempreferences}->{template},                            $value_to_test, "template                           = $value_to_test" );
-    is( $report->{systempreferences}->{yuipath},                             $value_to_test, "yuipath                            = $value_to_test" );
-    is( $report->{systempreferences}->{HidePatronName},                      $value_to_test, "HidePatronName                     = $value_to_test" );
-    is( $report->{systempreferences}->{intranetbookbag},                     $value_to_test, "intranetbookbag                    = $value_to_test" );
-    is( $report->{systempreferences}->{StaffDetailItemSelection},            $value_to_test, "StaffDetailItemSelection           = $value_to_test" );
-    is( $report->{systempreferences}->{viewISBD},                            $value_to_test, "viewISBD                           = $value_to_test" );
-    is( $report->{systempreferences}->{viewLabeledMARC},                     $value_to_test, "viewLabeledMARC                    = $value_to_test" );
-    is( $report->{systempreferences}->{viewMARC},                            $value_to_test, "viewMARC                           = $value_to_test" );
-    is( $report->{systempreferences}->{'ILS-DI'},                            $value_to_test, "ILS-DI                             = $value_to_test" );
-    is( $report->{systempreferences}->{'OAI-PMH'},                           $value_to_test, "OAI-PMH                            = $value_to_test" );
-    is( $report->{systempreferences}->{version},                             $value_to_test, "version                            = $value_to_test" );
+    my ( $report, $value_to_test ) = @_;
+
+    foreach my $key ( keys %{$report->{systempreferences}} ) {
+        is( $report->{systempreferences}->{$key}, $value_to_test, "\$report->{systempreferences}->{$key} = $value_to_test" );
+    }
 }
 
 $dbh->rollback;