@@ -, +, @@ --- t/db_dependent/XSLT.t | 61 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) --- a/t/db_dependent/XSLT.t +++ a/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,62 @@ subtest 'buildKohaItemsNamespace status tests' => sub { }; $schema->storage->txn_rollback; + +subtest 'buildKohaItemsNamespace() including/omitting items tests' => sub { + + plan tests => 14; + + $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 $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 }); + + ## Test passing items_rs only + my $xml = C4::XSLT::buildKohaItemsNamespace( $biblio->biblionumber, undef, $biblio->items ); + + my $library_1_name = $library_1->branchname; + my $library_2_name = $library_2->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' ); + + ## Test passing one item in hidden_items and items_rs + $xml = C4::XSLT::buildKohaItemsNamespace( $biblio->biblionumber, [ $item_1->itemnumber ], $biblio->items ); + + 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' ); + + ## Test passing both items in hidden_items and items_rs + $xml = C4::XSLT::buildKohaItemsNamespace( $biblio->biblionumber, [ $item_1->itemnumber, $item_2->itemnumber ], $biblio->items ); + + unlike( $xml, qr{$library_1_name}, '$item_1 not present in the XML' ); + unlike( $xml, qr{$library_2_name}, '$item_2 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 ] ); + + unlike( $xml, qr{$library_1_name}, '$item_1 not present in the XML' ); + unlike( $xml, qr{$library_2_name}, '$item_2 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' ); + + ## 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' ); + + $schema->storage->txn_rollback; +}; --