[Koha-patches] [PATCH] [SIGNED-OFF] Bug 10843: the DateTime->add method takes a scalar, not undef

Srdjan srdjan at catalyst.net.nz
Tue Oct 1 01:15:09 CEST 2013


From: Jonathan Druart <jonathan.druart at biblibre.com>

Test plan:
1) set an empty string for the ReservesMaxPickUpDelay pref
2) place a hold on an item
3) check in the item
4) click on "Print and confirm"
5) an error occurs
> The 'days' parameter (undef) to DateTime::Duration::new was an 'undef'
6) apply the patch
7) repeat steps 1 to 4
8) the error does not occur anymore.

Signed-off-by: Srdjan <srdjan at catalyst.net.nz>
---
 C4/Letters.pm |  2 +-
 t/Letters.t   | 19 +++++++++++++++----
 2 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/C4/Letters.pm b/C4/Letters.pm
index 93bc34d..24b8a43 100644
--- a/C4/Letters.pm
+++ b/C4/Letters.pm
@@ -613,7 +613,7 @@ sub _parseletter {
         my @waitingdate = split /-/, $values->{'waitingdate'};
 
         my $dt = dt_from_string();
-        $dt->add( days => C4::Context->preference('ReservesMaxPickUpDelay') );
+        $dt->add( days => C4::Context->preference('ReservesMaxPickUpDelay') || 0);
         $values->{'expirationdate'} = output_pref( $dt, undef, 1 );
 
         $values->{'waitingdate'} = output_pref( dt_from_string( $values->{'waitingdate'} ), undef, 1 );
diff --git a/t/Letters.t b/t/Letters.t
index 2d5f557..4d21bc2 100755
--- a/t/Letters.t
+++ b/t/Letters.t
@@ -3,11 +3,11 @@
 # This Koha test module is a stub!
 # Add more tests here!!!
 
-use strict;
-use warnings;
+use Modern::Perl;
+use DBI;
 use Test::MockModule;
-use Test::More tests => 2;
-
+use Test::More tests => 4;
+use t::lib::Mocks;
 my $module = new Test::MockModule('C4::Context');
 $module->mock(
     '_new_dbh',
@@ -32,3 +32,14 @@ $dbh->{mock_add_resultset} = $mock_letters;
 my $letters = C4::Letters::GetLetters();
 
 is( $letters->{ISBN}, 'book', 'HASH ref of ISBN is book' );
+
+# Regression test for bug 10843
+# $dt->add takes a scalar, not undef
+my $letter;
+t::lib::Mocks::mock_preference('ReservesMaxPickUpDelay', undef);
+$letter = C4::Letters::_parseletter( undef, 'reserves', {waitingdate => "2013-01-01"} );
+is( ref($letter), 'HASH');
+t::lib::Mocks::mock_preference('ReservesMaxPickUpDelay', 1);
+$letter = C4::Letters::_parseletter( undef, 'reserves', {waitingdate => "2013-01-01"} );
+is( ref($letter), 'HASH');
+
-- 
1.8.1.2


More information about the Koha-patches mailing list