|
Lines 17-23
Link Here
|
| 17 |
|
17 |
|
| 18 |
use Modern::Perl; |
18 |
use Modern::Perl; |
| 19 |
|
19 |
|
| 20 |
use Test::More tests => 3; |
20 |
use Test::More tests => 4; |
| 21 |
use Test::Exception; |
21 |
use Test::Exception; |
| 22 |
use Test::Warn; |
22 |
use Test::Warn; |
| 23 |
|
23 |
|
|
Lines 89-94
subtest 'record() tests' => sub {
Link Here
|
| 89 |
$schema->storage->txn_rollback; |
89 |
$schema->storage->txn_rollback; |
| 90 |
}; |
90 |
}; |
| 91 |
|
91 |
|
|
|
92 |
subtest 'record_strip_nonxml() tests' => sub { |
| 93 |
|
| 94 |
plan tests => 5; |
| 95 |
|
| 96 |
$schema->storage->txn_begin; |
| 97 |
|
| 98 |
my $title = 'Oranges and' . chr(31) . ' Peaches'; |
| 99 |
|
| 100 |
# Create a valid record |
| 101 |
my $record = MARC::Record->new(); |
| 102 |
my $field = MARC::Field->new( '245', '', '', 'a' => $title ); |
| 103 |
$record->append_fields($field); |
| 104 |
my ($biblio_id) = C4::Biblio::AddBiblio( $record, '' ); |
| 105 |
|
| 106 |
my $metadata = Koha::Biblios->find($biblio_id)->metadata; |
| 107 |
my $record2 = $metadata->record_strip_nonxml; |
| 108 |
|
| 109 |
is( ref $record2, 'MARC::Record', 'Method record() returned a MARC::Record object' ); |
| 110 |
is( |
| 111 |
$record2->field('245')->subfield("a"), |
| 112 |
"Oranges and Peaches", 'Title in 245$a matches title with control character removed' |
| 113 |
); |
| 114 |
|
| 115 |
my $bad_data = $builder->build_object( |
| 116 |
{ |
| 117 |
class => 'Koha::Biblio::Metadatas', |
| 118 |
value => { format => 'marcxml', schema => 'MARC21', metadata => 'this_is_not_marcxml' } |
| 119 |
} |
| 120 |
); |
| 121 |
|
| 122 |
warning_like { $record2 = $bad_data->record_strip_nonxml; } |
| 123 |
qr/parser error : Start tag expected, '<' not found/, |
| 124 |
'Warning thrown explicitly'; |
| 125 |
|
| 126 |
is( |
| 127 |
$record2, undef, |
| 128 |
"record_strip_nonxml returns undef when the record cannot be parsed after removing nonxml characters" |
| 129 |
); |
| 130 |
|
| 131 |
my $builder = t::lib::TestBuilder->new; |
| 132 |
my $item = $builder->build_sample_item( { biblionumber => $metadata->biblionumber } ); |
| 133 |
|
| 134 |
# Emptied the OpacHiddenItems pref |
| 135 |
t::lib::Mocks::mock_preference( 'OpacHiddenItems', '' ); |
| 136 |
my ($itemfield) = C4::Biblio::GetMarcFromKohaField('items.itemnumber'); |
| 137 |
|
| 138 |
$record2 = $metadata->record_strip_nonxml( { embed_items => 1 } ); |
| 139 |
|
| 140 |
my @items = $record2->field($itemfield); |
| 141 |
|
| 142 |
is( scalar @items, 1, "We got back our item" ); |
| 143 |
|
| 144 |
$schema->storage->txn_rollback; |
| 145 |
}; |
| 146 |
|
| 92 |
subtest '_embed_items' => sub { |
147 |
subtest '_embed_items' => sub { |
| 93 |
plan tests => 10; |
148 |
plan tests => 10; |
| 94 |
|
149 |
|
| 95 |
- |
|
|