From 99d3058264d6fdfc847d01f2e481485afcfb117a Mon Sep 17 00:00:00 2001 From: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Date: Wed, 15 Dec 2021 08:24:16 +0100 Subject: [PATCH] Bug 29690: Add selenium test --- t/db_dependent/selenium/regressions.t | 36 ++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/t/db_dependent/selenium/regressions.t b/t/db_dependent/selenium/regressions.t index ae2112f1cc3..f9e8cd380a6 100755 --- a/t/db_dependent/selenium/regressions.t +++ b/t/db_dependent/selenium/regressions.t @@ -20,7 +20,7 @@ use utf8; use C4::Context; -use Test::More tests => 6; +use Test::More tests => 7; use Test::MockModule; use C4::Context; @@ -91,6 +91,40 @@ subtest 'OPAC - Bibliographic record detail page must contain the data-biblionum push @cleanup, $biblio; }; +subtest 'Bibliographic record detail page must not explode even with invalid metadata' => sub { + plan tests => 2; + + my $builder = t::lib::TestBuilder->new; + my $patron = $builder->build_object({ class => 'Koha::Patrons', value => { flags => 0 }}); + + my $mainpage = $s->base_url . q|mainpage.pl|; + $driver->get($mainpage . q|?logout.x=1|); + like( $driver->get_title(), qr(Log in to Koha), ); + $s->auth; + + my ( $biblionumber, $biblioitemnumber ) = add_biblio(); + my $biblio = Koha::Biblios->find($biblionumber); + + # Note that there are several "non xml chars" in the control fields + my $invalid_data = qq{<?xml version="1.0" encoding="UTF-8"?> + <record + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd" + xmlns="http://www.loc.gov/MARC21/slim"> + <leader>00772nam0a2200277 4500</leader> + <controlfield tag="001">00aD000015937</controlfield> + <controlfield tag="004">00satmrnu0</controlfield> + <controlfield tag="008">00ar19881981bdkldan</controlfield> + </record>}; + $biblio->metadata->metadata($invalid_data)->store(); + + $driver->get( $base_url . "/catalogue/detail.pl?biblionumber=$biblionumber" ); + + my $biberror = $driver->find_element('//span[@class="biberror"]')->get_text(); + is( $biberror, "There is an error with this bibliographic record, the view may be degraded."); + push @cleanup, $biblio; +}; + subtest 'Play sound on the circulation page' => sub { plan tests => 1; -- 2.25.1