From 179d93ebd544599ad782e850778f80236fe1b941 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Fri, 18 Jun 2021 18:30:56 -0300 Subject: [PATCH] Bug 28604: Regression tests This patch introduces regression tests for the encoding issue with MiJ output. Signed-off-by: Tomas Cohen Arazi --- t/db_dependent/api/v1/biblios.t | 51 +++++++++++++++++++++++++++++++-- 1 file changed, 49 insertions(+), 2 deletions(-) diff --git a/t/db_dependent/api/v1/biblios.t b/t/db_dependent/api/v1/biblios.t index 006d8f2da3..25665ed5cf 100755 --- a/t/db_dependent/api/v1/biblios.t +++ b/t/db_dependent/api/v1/biblios.t @@ -17,6 +17,9 @@ use Modern::Perl; +use utf8; +use Encode; + use Test::More tests => 5; use Test::MockModule; use Test::Mojo; @@ -38,7 +41,7 @@ my $t = Test::Mojo->new('Koha::REST::V1'); subtest 'get() tests' => sub { - plan tests => 21; + plan tests => 22; $schema->storage->txn_begin; @@ -100,6 +103,28 @@ subtest 'get() tests' => sub { ->status_is(404) ->json_is( '/error', 'Object not found.' ); + subtest 'marc-in-json encoding tests' => sub { + + plan tests => 3; + + my $title_with_diacritics = "L'insoutenable légèreté de l'être"; + + my $biblio = $builder->build_sample_biblio( + { + title => $title_with_diacritics, + author => "Milan Kundera" + } + ); + + my $result = $t->get_ok( "//$userid:$password@/api/v1/biblios/" . $biblio->biblionumber + => { Accept => 'application/marc-in-json' } ) + ->status_is(200)->tx->res->body; + + my $encoded_title = Encode::encode( "UTF-8", $title_with_diacritics ); + + like( $result, qr/\Q$encoded_title/, "The title is not double encoded" ); + }; + $schema->storage->txn_rollback; }; @@ -194,7 +219,7 @@ subtest 'delete() tests' => sub { subtest 'get_public() tests' => sub { - plan tests => 25; + plan tests => 26; $schema->storage->txn_begin; @@ -277,6 +302,28 @@ subtest 'get_public() tests' => sub { ->content_is($biblio->metadata->record->as_formatted); }; + subtest 'marc-in-json encoding tests' => sub { + + plan tests => 3; + + my $title_with_diacritics = "L'insoutenable légèreté de l'être"; + + my $biblio = $builder->build_sample_biblio( + { + title => $title_with_diacritics, + author => "Milan Kundera" + } + ); + + my $result = $t->get_ok( "/api/v1/public/biblios/" . $biblio->biblionumber + => { Accept => 'application/marc-in-json' } ) + ->status_is(200)->tx->res->body; + + my $encoded_title = Encode::encode( "UTF-8", $title_with_diacritics ); + + like( $result, qr/\Q$encoded_title/, "The title is not double encoded" ); + }; + # Hide author in OPAC $subfields = Koha::MarcSubfieldStructures->search({ tagfield => '100' }); while ( my $subfield = $subfields->next ) { -- 2.32.0