From b47efe894fad0fc3ef1abad1c5e05dcfbe1a3ee4 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Wed, 30 Sep 2020 09:42:18 -0300 Subject: [PATCH] Bug 26555: Make sure _messages is always initialized Signed-off-by: Tomas Cohen Arazi --- Koha/Object.pm | 4 ++++ t/db_dependent/Koha/Object.t | 14 ++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Koha/Object.pm b/Koha/Object.pm index da9315dcc87..57b1429b890 100644 --- a/Koha/Object.pm +++ b/Koha/Object.pm @@ -345,6 +345,10 @@ Returns the (probably non-fatal) messages that were recorded on the object. sub messages { my ( $self ) = @_; + + $self->{_messages} = [] + unless defined $self->{_messages}; + return $self->{_messages}; } diff --git a/t/db_dependent/Koha/Object.t b/t/db_dependent/Koha/Object.t index 90315331133..b78283ce250 100755 --- a/t/db_dependent/Koha/Object.t +++ b/t/db_dependent/Koha/Object.t @@ -870,7 +870,9 @@ subtest 'set_or_blank' => sub { subtest 'messages() and add_message() tests' => sub { - plan tests => 6; + plan tests => 7; + + $schema->storage->txn_begin; my $patron = Koha::Patron->new; @@ -886,5 +888,13 @@ subtest 'messages() and add_message() tests' => sub { is( ref($messages[0]), 'Koha::Object::Message', 'Right type returned' ); is( ref($messages[1]), 'Koha::Object::Message', 'Right type returned' ); is( $messages[0]->message, 'message_1', 'Right message recorded' ); - is( $messages[1]->message, 'message_2', 'Right message recorded' ); + + my $patron_id = $builder->build_object({ class => 'Koha::Patrons' })->id; + # get a patron from the DB, ->new is not called, ->messages should initialize _messages as an empty arrayref + $patron = Koha::Patrons->find( $patron_id ); + + isnt( $patron->messages, undef, '->messages initializes the array if required' ); + is( scalar @{ $patron->messages }, 0, '->messages returns an empty arrayref' ); + + $schema->storage->txn_rollback; }; -- 2.28.0