Browse Source

bug 2394: regression test for canreservefromotherbranches

If IndependentBranches is ON and canreservefromotherbranches is OFF,
a patron is not permittedo to request an item whose homebranch (i.e.,
owner of the item) is different from the patron's own library.
However, if canreservefromotherbranches is turned ON, the patron can
create such hold requests.

Note that canreservefromotherbranches has no effect if
IndependentBranches is OFF.

To test, run prove -v t/db_dependent/Holds.t.  Without the bugfix
patch for bug 2394, the last two tests should fail.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
new/bootstrap-opac
Galen Charlton 11 years ago
parent
commit
23e302071e
  1. 53
      t/db_dependent/Holds.t

53
t/db_dependent/Holds.t

@ -2,9 +2,12 @@
use strict;
use warnings;
use t::lib::Mocks;
use C4::Context;
use C4::Branch;
use Test::More tests => 19;
use Test::More tests => 22;
use MARC::Record;
use C4::Biblio;
use C4::Items;
@ -164,6 +167,54 @@ AlterPriority( 'bottom', $reserve->{'reserve_id'} );
$reserve = GetReserve( $reserve->{'reserve_id'} );
ok( $reserve->{'priority'} eq '5', "Test AlterPriority(), move to bottom" );
# Regression test for bug 2394
#
# If IndependentBranches is ON and canreservefromotherbranches is OFF,
# a patron is not permittedo to request an item whose homebranch (i.e.,
# owner of the item) is different from the patron's own library.
# However, if canreservefromotherbranches is turned ON, the patron can
# create such hold requests.
#
# Note that canreservefromotherbranches has no effect if
# IndependentBranches is OFF.
my ($foreign_bibnum, $foreign_title, $foreign_bibitemnum) = create_helper_biblio();
my ($foreign_item_bibnum, $foreign_item_bibitemnum, $foreign_itemnumber)
= AddItem({ homebranch => 'MPL', holdingbranch => 'MPL' } , $foreign_bibnum);
$dbh->do('DELETE FROM issuingrules');
$dbh->do(
q{INSERT INTO issuingrules (categorycode, branchcode, itemtype, reservesallowed)
VALUES (?, ?, ?, ?)},
{},
'*', '*', '*', 25
);
# make sure some basic sysprefs are set
t::lib::Mocks::mock_preference('ReservesControlBranch', 'homebranch');
t::lib::Mocks::mock_preference('item-level_itypes', 1);
# if IndependentBranches is OFF, a CPL patron can reserve an MPL item
t::lib::Mocks::mock_preference('IndependentBranches', 0);
ok(
CanItemBeReserved($borrowernumbers[0], $foreign_itemnumber),
'CPL patron allowed to reserve MPL item with IndependentBranches OFF (bug 2394)'
);
# if IndependentBranches is OFF, a CPL patron cannot reserve an MPL item
t::lib::Mocks::mock_preference('IndependentBranches', 1);
t::lib::Mocks::mock_preference('canreservefromotherbranches', 0);
ok(
! CanItemBeReserved($borrowernumbers[0], $foreign_itemnumber),
'CPL patron NOT allowed to reserve MPL item with IndependentBranches ON ... (bug 2394)'
);
# ... unless canreservefromotherbranches is ON
t::lib::Mocks::mock_preference('canreservefromotherbranches', 1);
ok(
CanItemBeReserved($borrowernumbers[0], $foreign_itemnumber),
'... unless canreservefromotherbranches is ON (bug 2394)'
);
# Helper method to set up a Biblio.
sub create_helper_biblio {
my $bib = MARC::Record->new();

Loading…
Cancel
Save