|
Line 0
Link Here
|
| 0 |
- |
1 |
#!/usr/bin/perl |
|
|
2 |
|
| 3 |
use Modern::Perl; |
| 4 |
use Test::More tests => 6; |
| 5 |
|
| 6 |
use C4::Biblio; |
| 7 |
|
| 8 |
# Avoid "redefined subroutine" warnings |
| 9 |
local $SIG{__WARN__} = sub { warn $_[0] unless $_[0] =~ /redefined/ }; |
| 10 |
*C4::Biblio::GetMarcStructure = \&Mock_GetMarcStructure; |
| 11 |
|
| 12 |
my $tagslib = { |
| 13 |
'200' => { a => { hidden => '0' } }, |
| 14 |
'300' => { a => { hidden => '1' } }, |
| 15 |
'009' => { '@' => { hidden => '-2' } }, |
| 16 |
}; |
| 17 |
|
| 18 |
my $record_ori = MARC::Record->new; |
| 19 |
$record_ori->append_fields( |
| 20 |
MARC::Field->new( '200', '', '', 'a' => 'Text to show' ) ); |
| 21 |
$record_ori->append_fields( |
| 22 |
MARC::Field->new( '300', '', '', 'a' => 'Text to hide OPAC' ) ); |
| 23 |
$record_ori->append_fields( |
| 24 |
MARC::Field->new( '009', 'Text to hide Intranet' ) ); |
| 25 |
|
| 26 |
my $record_opac = $record_ori->clone; |
| 27 |
RemoveHiddenSubfields( $record_opac, $tagslib, 'opac' ); |
| 28 |
is( $record_opac->subfield( '200', 'a' ), |
| 29 |
'Text to show', |
| 30 |
'RemoveHiddenSubfields for OPAC does not remove always visible subfields' ); |
| 31 |
is( $record_opac->subfield( '300', 'a' ), |
| 32 |
undef, 'RemoveHiddenSubfields for OPAC removes OPAC hidden subfields' ); |
| 33 |
is( |
| 34 |
$record_opac->field('009')->data, |
| 35 |
'Text to hide Intranet', |
| 36 |
'RemoveHiddenSubfields for OPAC does not remove Intranet hidden subfields' |
| 37 |
); |
| 38 |
|
| 39 |
my $record_intra = $record_ori->clone; |
| 40 |
RemoveHiddenSubfields( $record_intra, $tagslib, 'intranet' ); |
| 41 |
is( |
| 42 |
$record_intra->subfield( '200', 'a' ), |
| 43 |
'Text to show', |
| 44 |
'RemoveHiddenSubfields for Intranet does not remove always visible subfields' |
| 45 |
); |
| 46 |
is( |
| 47 |
$record_intra->subfield( '300', 'a' ), |
| 48 |
'Text to hide OPAC', |
| 49 |
'RemoveHiddenSubfields for Intranet does not remove OPAC hidden subfields' |
| 50 |
); |
| 51 |
is( $record_intra->field('009'), |
| 52 |
undef, |
| 53 |
'RemoveHiddenSubfields for Intranet removes Intranet hidden subfields' ); |
| 54 |
|
| 55 |
# Mocked subs |
| 56 |
|
| 57 |
# C4::Biblio::GetMarcStructure |
| 58 |
sub Mock_GetMarcStructure { |
| 59 |
return $tagslib; |
| 60 |
} |