Lines 19-25
use Modern::Perl;
Link Here
|
19 |
use Data::Dumper; |
19 |
use Data::Dumper; |
20 |
|
20 |
|
21 |
use MARC::Record; |
21 |
use MARC::Record; |
22 |
use C4::Items qw( ModItemTransfer GetHiddenItemnumbers GetItemsInfo SearchItems AddItemFromMarc ModItemFromMarc get_hostitemnumbers_of Item2Marc ); |
22 |
use C4::Items qw( ModItemTransfer GetItemsInfo SearchItems AddItemFromMarc ModItemFromMarc get_hostitemnumbers_of Item2Marc ); |
23 |
use C4::Biblio qw( GetMarcFromKohaField EmbedItemsInMarcBiblio GetMarcBiblio AddBiblio ); |
23 |
use C4::Biblio qw( GetMarcFromKohaField EmbedItemsInMarcBiblio GetMarcBiblio AddBiblio ); |
24 |
use Koha::Items; |
24 |
use Koha::Items; |
25 |
use Koha::Database; |
25 |
use Koha::Database; |
Lines 189-293
subtest 'ModItemTransfer tests' => sub {
Link Here
|
189 |
$schema->storage->txn_rollback; |
189 |
$schema->storage->txn_rollback; |
190 |
}; |
190 |
}; |
191 |
|
191 |
|
192 |
subtest 'GetHiddenItemnumbers tests' => sub { |
|
|
193 |
|
194 |
plan tests => 11; |
195 |
|
196 |
# This sub is controlled by the OpacHiddenItems system preference. |
197 |
|
198 |
$schema->storage->txn_begin; |
199 |
|
200 |
my $builder = t::lib::TestBuilder->new; |
201 |
my $library1 = $builder->build({ |
202 |
source => 'Branch', |
203 |
}); |
204 |
|
205 |
my $library2 = $builder->build({ |
206 |
source => 'Branch', |
207 |
}); |
208 |
my $itemtype = $builder->build({ |
209 |
source => 'Itemtype', |
210 |
}); |
211 |
|
212 |
# Create a new biblio |
213 |
t::lib::Mocks::mock_preference('marcflavour', 'MARC21'); |
214 |
my $biblio = $builder->build_sample_biblio(); |
215 |
|
216 |
# Add two items |
217 |
my $item1_itemnumber = $builder->build_sample_item( |
218 |
{ |
219 |
biblionumber => $biblio->biblionumber, |
220 |
library => $library1->{branchcode}, |
221 |
withdrawn => 1, |
222 |
itype => $itemtype->{itemtype} |
223 |
} |
224 |
)->itemnumber; |
225 |
my $item2_itemnumber = $builder->build_sample_item( |
226 |
{ |
227 |
biblionumber => $biblio->biblionumber, |
228 |
library => $library2->{branchcode}, |
229 |
withdrawn => 0, |
230 |
itype => $itemtype->{itemtype} |
231 |
} |
232 |
)->itemnumber; |
233 |
my $opachiddenitems; |
234 |
my @itemnumbers = ($item1_itemnumber,$item2_itemnumber); |
235 |
my @hidden; |
236 |
my @items; |
237 |
push @items, Koha::Items->find( $item1_itemnumber )->unblessed; |
238 |
push @items, Koha::Items->find( $item2_itemnumber )->unblessed; |
239 |
|
240 |
# Empty OpacHiddenItems |
241 |
t::lib::Mocks::mock_preference('OpacHiddenItems',''); |
242 |
ok( !defined( GetHiddenItemnumbers( { items => \@items } ) ), |
243 |
"Hidden items list undef if OpacHiddenItems empty"); |
244 |
|
245 |
# Blank spaces |
246 |
t::lib::Mocks::mock_preference('OpacHiddenItems',' '); |
247 |
ok( scalar GetHiddenItemnumbers( { items => \@items } ) == 0, |
248 |
"Hidden items list empty if OpacHiddenItems only contains blanks"); |
249 |
|
250 |
# One variable / value |
251 |
$opachiddenitems = " |
252 |
withdrawn: [1]"; |
253 |
t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems ); |
254 |
@hidden = GetHiddenItemnumbers( { items => \@items } ); |
255 |
ok( scalar @hidden == 1, "Only one hidden item"); |
256 |
is( $hidden[0], $item1_itemnumber, "withdrawn=1 is hidden"); |
257 |
|
258 |
# One variable, two values |
259 |
$opachiddenitems = " |
260 |
withdrawn: [1,0]"; |
261 |
t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems ); |
262 |
@hidden = GetHiddenItemnumbers( { items => \@items } ); |
263 |
ok( scalar @hidden == 2, "Two items hidden"); |
264 |
is_deeply( \@hidden, \@itemnumbers, "withdrawn=1 and withdrawn=0 hidden"); |
265 |
|
266 |
# Two variables, a value each |
267 |
$opachiddenitems = " |
268 |
withdrawn: [1] |
269 |
homebranch: [$library2->{branchcode}] |
270 |
"; |
271 |
t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems ); |
272 |
@hidden = GetHiddenItemnumbers( { items => \@items } ); |
273 |
ok( scalar @hidden == 2, "Two items hidden"); |
274 |
is_deeply( \@hidden, \@itemnumbers, "withdrawn=1 and homebranch library2 hidden"); |
275 |
|
276 |
# Override hidden with patron category |
277 |
t::lib::Mocks::mock_preference( 'OpacHiddenItemsExceptions', 'S' ); |
278 |
@hidden = GetHiddenItemnumbers( { items => \@items, borcat => 'PT' } ); |
279 |
ok( scalar @hidden == 2, "Two items still hidden"); |
280 |
@hidden = GetHiddenItemnumbers( { items => \@items, borcat => 'S' } ); |
281 |
ok( scalar @hidden == 0, "Two items not hidden"); |
282 |
|
283 |
# Valid OpacHiddenItems, empty list |
284 |
@items = (); |
285 |
@hidden = GetHiddenItemnumbers( { items => \@items } ); |
286 |
ok( scalar @hidden == 0, "Empty items list, no item hidden"); |
287 |
|
288 |
$schema->storage->txn_rollback; |
289 |
}; |
290 |
|
291 |
subtest 'GetItemsInfo tests' => sub { |
192 |
subtest 'GetItemsInfo tests' => sub { |
292 |
|
193 |
|
293 |
plan tests => 9; |
194 |
plan tests => 9; |
294 |
- |
|
|