From 88378bfab704576392a7f7f05eaaed3a39e3cb3c Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Thu, 17 Nov 2016 11:23:57 +0000 Subject: [PATCH] Bug 17642: Do not explode if no authorised value exist Can't call method "lib" on an undefined value at /home/vagrant/kohaclone/Koha/AuthorisedValues.pm line 137. --- Koha/AuthorisedValues.pm | 1 + t/db_dependent/AuthorisedValues.t | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Koha/AuthorisedValues.pm b/Koha/AuthorisedValues.pm index d9e6d68..5c73052 100644 --- a/Koha/AuthorisedValues.pm +++ b/Koha/AuthorisedValues.pm @@ -134,6 +134,7 @@ sub get_description_by_koha_field { return $cached if $cached; my $av = $self->find_by_koha_field($params); + return {} unless defined $av; my $descriptions = { lib => $av->lib, opac_description => $av->opac_description }; $memory_cache->set_in_cache( $cache_key, $descriptions ); return $descriptions; diff --git a/t/db_dependent/AuthorisedValues.t b/t/db_dependent/AuthorisedValues.t index 5f344d3..6d44a72 100644 --- a/t/db_dependent/AuthorisedValues.t +++ b/t/db_dependent/AuthorisedValues.t @@ -174,7 +174,7 @@ subtest 'search_by_*_field + find_by_koha_field + get_description' => sub { is( $av, undef, ); }; subtest 'get_description_by_koha_field' => sub { - plan tests => 3; + plan tests => 4; my $descriptions; # Test authorised_value = 0 @@ -199,6 +199,11 @@ subtest 'search_by_*_field + find_by_koha_field + get_description' => sub { $descriptions = Koha::AuthorisedValues->get_description_by_koha_field( { kohafield => 'items.restricted', authorised_value => undef } ); is_deeply( $descriptions, {}, ) ; # This could be arguable, we could return undef instead + + # No authorised_value + $descriptions = Koha::AuthorisedValues->get_description_by_koha_field( + { kohafield => 'items.restricted', authorised_value => "does not exist" } ); + is_deeply( $descriptions, {}, ) ; # This could be arguable, we could return undef instead }; subtest 'get_descriptions_by_koha_field' => sub { plan tests => 1; -- 2.1.4