diff --git a/t/db_dependent/XSLT.t b/t/db_dependent/XSLT.t
index 37637e6fa8..f90baff197 100755
--- a/t/db_dependent/XSLT.t
+++ b/t/db_dependent/XSLT.t
@@ -18,7 +18,7 @@
use Modern::Perl;
use MARC::Record;
-use Test::More tests => 3;
+use Test::More tests => 4;
use Test::Warn;
use t::lib::TestBuilder;
use t::lib::Mocks;
@@ -137,3 +137,72 @@ subtest 'buildKohaItemsNamespace status tests' => sub {
};
$schema->storage->txn_rollback;
+
+subtest 'buildKohaItemsNamespace() including/omitting items tests' => sub {
+
+ plan tests => 20;
+
+ $schema->storage->txn_begin;
+
+ my $biblio = $builder->build_sample_biblio;
+
+ # Have two known libraries for testing purposes
+ my $library_1 = $builder->build_object({ class => 'Koha::Libraries' });
+ my $library_2 = $builder->build_object({ class => 'Koha::Libraries' });
+ my $library_3 = $builder->build_object({ class => 'Koha::Libraries' });
+
+ my $item_1 = $builder->build_sample_item({ biblionumber => $biblio->biblionumber, library => $library_1->id });
+ my $item_2 = $builder->build_sample_item({ biblionumber => $biblio->biblionumber, library => $library_2->id });
+ my $item_3 = $builder->build_sample_item({ biblionumber => $biblio->biblionumber, library => $library_3->id });
+
+ my $items_rs = $biblio->items->search({ "me.itemnumber" => { '!=' => $item_3->itemnumber } });
+
+ ## Test passing items_rs only
+ my $xml = C4::XSLT::buildKohaItemsNamespace( $biblio->biblionumber, undef, $items_rs );
+
+ my $library_1_name = $library_1->branchname;
+ my $library_2_name = $library_2->branchname;
+ my $library_3_name = $library_3->branchname;
+
+ 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 );
+
+ unlike( $xml, qr{$library_1_name}, '$item_1 not 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 both items in hidden_items and items_rs
+ $xml = C4::XSLT::buildKohaItemsNamespace( $biblio->biblionumber, [ $item_1->itemnumber, $item_2->itemnumber ], $items_rs->reset );
+
+ unlike( $xml, qr{$library_1_name}, '$item_1 not present in the XML' );
+ unlike( $xml, qr{$library_2_name}, '$item_2 not present in the XML' );
+ unlike( $xml, qr{$library_3_name}, '$item_3 not present in the XML' );
+ is( $xml, '', 'Empty XML' );
+
+ ## Test passing both items in hidden_items and no items_rs
+ $xml = C4::XSLT::buildKohaItemsNamespace( $biblio->biblionumber, [ $item_1->itemnumber, $item_2->itemnumber, $item_3->itemnumber ] );
+
+ unlike( $xml, qr{$library_1_name}, '$item_1 not present in the XML' );
+ unlike( $xml, qr{$library_2_name}, '$item_2 not present in the XML' );
+ unlike( $xml, qr{$library_3_name}, '$item_3 not present in the XML' );
+ is( $xml, '', 'Empty XML' );
+
+ ## Test passing one item in hidden_items and items_rs
+ $xml = C4::XSLT::buildKohaItemsNamespace( $biblio->biblionumber, [ $item_1->itemnumber ] );
+
+ unlike( $xml, qr{$library_1_name}, '$item_1 not present in the XML' );
+ like( $xml, qr{$library_2_name}, '$item_2 present in the XML' );
+ like( $xml, qr{$library_3_name}, '$item_3 present in the XML' );
+
+ ## Test not passing any param
+ $xml = C4::XSLT::buildKohaItemsNamespace( $biblio->biblionumber );
+
+ like( $xml, qr{$library_1_name}, '$item_1 present in the XML' );
+ like( $xml, qr{$library_2_name}, '$item_2 present in the XML' );
+ like( $xml, qr{$library_3_name}, '$item_3 present in the XML' );
+
+ $schema->storage->txn_rollback;
+};