@@ -, +, @@
---
t/db_dependent/Koha/Items.t | 14 +++++++++++++-
t/db_dependent/XSLT.t | 11 ++++++++++-
2 files changed, 23 insertions(+), 2 deletions(-)
--- a/t/db_dependent/Koha/Items.t
+++ a/t/db_dependent/Koha/Items.t
@@ -1587,7 +1587,7 @@ $schema->storage->txn_rollback;
subtest 'filter_by_visible_in_opac() tests' => sub {
- plan tests => 12;
+ plan tests => 14;
$schema->storage->txn_begin;
@@ -1688,6 +1688,18 @@ subtest 'filter_by_visible_in_opac() tests' => sub {
'No rules passed, hidelostitems set, patron exception changes nothing'
);
+ $rules = { biblionumber => [ $biblio->biblionumber ] };
+ is(
+ $biblio->items->filter_by_visible_in_opac->count,
+ 0,
+ 'Biblionumber rule successfully hides all items'
+ );
+
+ my $biblio2 = $builder->build_sample_biblio;
+ $rules = { biblionumber => [ $biblio2->biblionumber ] };
+ my $prefetched = $biblio->items->search({},{ prefetch => ['branchtransfers','reserves'] })->filter_by_visible_in_opac;
+ ok( $prefetched->next, "Can retrieve object when prefetching and hiding on a duplicated column");
+
$rules = { withdrawn => [ 1, 2 ], copynumber => [ 2 ] };
is(
$biblio->items->filter_by_visible_in_opac->count,
--- a/t/db_dependent/XSLT.t
+++ a/t/db_dependent/XSLT.t
@@ -160,11 +160,12 @@ $schema->storage->txn_rollback;
subtest 'buildKohaItemsNamespace() including/omitting items tests' => sub {
- plan tests => 20;
+ plan tests => 23;
$schema->storage->txn_begin;
my $biblio = $builder->build_sample_biblio;
+ my $biblio2 = $builder->build_sample_biblio;
# Have two known libraries for testing purposes
my $library_1 = $builder->build_object({ class => 'Koha::Libraries' });
@@ -187,6 +188,14 @@ subtest 'buildKohaItemsNamespace() including/omitting items tests' => sub {
like( $xml, qr{$library_1_name}, '$item_1 present in the XML' );
like( $xml, qr{$library_2_name}, '$item_2 present in the XML' );
unlike( $xml, qr{$library_3_name}, '$item_3 not present in the XML' );
+
+ t::lib::Mocks::mock_preference('OpacHiddenItems', 'biblionumber: ['.$biblio2->biblionumber.']');
+ my $hid_rs = $biblio->items->search({ "me.itemnumber" => { '!=' => $item_3->itemnumber } })->filter_by_visible_in_opac();
+ $xml = C4::XSLT::buildKohaItemsNamespace( $biblio->biblionumber, undef, $hid_rs );
+ like( $xml, qr{$library_1_name}, '$item_1 present in the XML' );
+ like( $xml, qr{$library_2_name}, '$item_2 present in the XML' );
+ unlike( $xml, qr{$library_3_name}, '$item_3 not present in the XML' );
+
## Test passing one item in hidden_items and items_rs
$xml = C4::XSLT::buildKohaItemsNamespace( $biblio->biblionumber, [ $item_1->itemnumber ], $items_rs->reset );
--