Koha/t/lib/KohaTest/Heading/MARC21.pm
Galen Charlton 386b4b15a1 bug 2315: no crash if subfield code is a metacharacter
When generating the display form of a heading that
happens to (invalidly) have a regular expression
metacharacter as a subfield label, do not crash.

An example of such a heading field is:

  <datafield tag="650" ind1=" " ind2="0">
    <subfield code="a">Dalziel, Andrew (Fictitious character</subfield>
    <subfield code=")">xFiction.</subfield>
  </datafield>

The error message associated with the crash is:

  Unmatched ) in regex; marked by <-- HERE in m/) <-- HERE / at
  /home/koha-pro/kohaclone/C4/Heading/MARC21.pm line 220.

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-07-08 09:36:11 -05:00

41 lines
1.1 KiB
Perl

package KohaTest::Heading::MARC21;
use base qw( KohaTest::Heading );
use strict;
use warnings;
use Test::More;
use C4::Heading;
use C4::Heading::MARC21;
use MARC::Field;
sub testing_class { 'C4::Heading::MARC21' };
sub methods : Test( 1 ) {
my $self = shift;
my @methods = qw(
new
valid_bib_heading_tag
parse_heading
_get_subject_thesaurus
_get_search_heading
_get_display_heading
);
can_ok( $self->testing_class, @methods );
}
sub bug2315 : Test( 1 ) {
my $subject_heading = MARC::Field->new(650, ' ', '0',
a => "Dalziel, Andrew (Fictitious character",
')' => "Fiction."
);
my $display_form = C4::Heading::MARC21::_get_display_heading($subject_heading, 'a');
is($display_form, "Dalziel, Andrew (Fictitious character", "bug 2315: no crash if heading subfield has metacharacter");
}
1;