From ed1edd664c46316e334f0ab776da2d354de56e3a Mon Sep 17 00:00:00 2001 From: Galen Charlton Date: Tue, 20 Aug 2013 16:59:06 +0000 Subject: [PATCH] Bug 10656: add regression test This patch adds regression tests to verify the sort order when fetching authorised values in either staff or OPAC mode. This patch also wraps the Koha.t tests in a transaction, and better handles skipping tests if Test::Deep is not installed. To test: [1] Verify that prove -v t/db_dependent/Koha.t passes Signed-off-by: Galen Charlton --- t/db_dependent/Koha.t | 86 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 83 insertions(+), 3 deletions(-) diff --git a/t/db_dependent/Koha.t b/t/db_dependent/Koha.t index 9a5bf80..6946a9d 100644 --- a/t/db_dependent/Koha.t +++ b/t/db_dependent/Koha.t @@ -11,17 +11,17 @@ use Koha::DateUtils qw(dt_from_string); use Test::More tests => 6; use DateTime::Format::MySQL; -eval {use Test::Deep;}; - BEGIN { use_ok('C4::Koha', qw( :DEFAULT GetDailyQuote )); use_ok('C4::Members'); } my $dbh = C4::Context->dbh; +$dbh->{AutoCommit} = 0; +$dbh->{RaiseError} = 1; subtest 'Authorized Values Tests' => sub { - plan tests => 6; + plan tests => 8; my $data = { category => 'CATEGORY', @@ -60,6 +60,85 @@ subtest 'Authorized Values Tests' => sub { my $sth = $dbh->prepare($query); $sth->execute($data->{category}, $data->{authorised_value}, $data->{lib}, $data->{lib_opac}, $data->{imageurl}); } + + SKIP: { + eval { require Test::Deep; import Test::Deep; }; + skip "Test::Deep required to run the GetAuthorisedValues() tests.", 2 if $@; + AddAuthorisedValue('BUG10656', 'ZZZ', 'Z_STAFF', 'A_PUBLIC', ''); + AddAuthorisedValue('BUG10656', 'AAA', 'A_STAFF', 'Z_PUBLIC', ''); + # the next one sets lib_opac to NULL; in that case, the staff + # display value is meant to be used. + AddAuthorisedValue('BUG10656', 'DDD', 'D_STAFF', undef, ''); + my $authvals = GetAuthorisedValues('BUG10656'); + cmp_deeply( + $authvals, + [ + { + id => ignore(), + category => 'BUG10656', + authorised_value => 'AAA', + selected => 0, + lib => 'A_STAFF', + lib_opac => 'Z_PUBLIC', + imageurl => '', + }, + { + id => ignore(), + category => 'BUG10656', + authorised_value => 'DDD', + selected => 0, + lib => 'D_STAFF', + lib_opac => undef, + imageurl => '', + }, + { + id => ignore(), + category => 'BUG10656', + authorised_value => 'ZZZ', + selected => 0, + lib => 'Z_STAFF', + lib_opac => 'A_PUBLIC', + imageurl => '', + }, + ], + 'list of authorised values in staff mode sorted by staff label (bug 10656)' + ); + $authvals = GetAuthorisedValues('BUG10656', '', 1); + cmp_deeply( + $authvals, + [ + { + id => ignore(), + category => 'BUG10656', + authorised_value => 'ZZZ', + selected => 0, + lib => 'A_PUBLIC', + lib_opac => 'A_PUBLIC', + imageurl => '', + }, + { + id => ignore(), + category => 'BUG10656', + authorised_value => 'DDD', + selected => 0, + lib => 'D_STAFF', + lib_opac => undef, + imageurl => '', + }, + { + id => ignore(), + category => 'BUG10656', + authorised_value => 'AAA', + selected => 0, + lib => 'Z_PUBLIC', + lib_opac => 'Z_PUBLIC', + imageurl => '', + }, + ], + 'list of authorised values in OPAC mode sorted by OPAC label (bug 10656)' + ); + } + }; subtest 'Itemtype info Tests' => sub { @@ -85,6 +164,7 @@ subtest 'Itemtype info Tests' => sub { ### test for C4::Koha->GetDailyQuote() SKIP: { + eval { require Test::Deep; import Test::Deep; }; skip "Test::Deep required to run the GetDailyQuote tests.", 1 if $@; subtest 'Daily Quotes Test' => sub { -- 1.7.10.4