From 0f7145e4afcf2da16d5dc4077c56deefc73debc0 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Mon, 1 Jun 2026 14:25:45 +0200 Subject: [PATCH] Bug 42727: Add tests Signed-off-by: David Nind Signed-off-by: Nick Clemens Signed-off-by: Pedro Amorim --- t/db_dependent/Languages.t | 72 +++++++++++++++++++++++++++++++++++--- 1 file changed, 68 insertions(+), 4 deletions(-) diff --git a/t/db_dependent/Languages.t b/t/db_dependent/Languages.t index c340d35262..74811811fb 100755 --- a/t/db_dependent/Languages.t +++ b/t/db_dependent/Languages.t @@ -1,13 +1,11 @@ #!/usr/bin/perl -# -# This Koha test module is a stub! -# Add more tests here!!! + use utf8; use Modern::Perl; use Encode; use Test::NoWarnings; -use Test::More tests => 24; +use Test::More tests => 25; use Test::Deep; use Test::Exception; use List::Util qw(first); @@ -88,6 +86,72 @@ is( '_build_languages_arrayref() returns third language of "mi-NZ"' ); +subtest '_build_languages_arrayref consistent return' => sub { + plan tests => 33; + + my $r = C4::Languages::_build_languages_arrayref( ['en'], 'en', ['en'] ); + is( $r->[0]->{language}, 'en' ); + is( $r->[0]->{group_enabled}, 1 ); + is( $r->[0]->{sublanguages_loop}->[0]->{rfc4646_subtag}, 'en' ); + is( $r->[0]->{sublanguages_loop}->[0]->{enabled}, 1 ); + is( scalar(@$r), 1 ); + is( scalar( @{ $r->[0]->{sublanguages_loop} } ), 1 ); + + $r = C4::Languages::_build_languages_arrayref( [ 'de-DE', 'en', 'en-NZ' ], 'en-NZ', ['en-NZ'] ); + is( $r->[0]->{language}, 'en' ); + is( $r->[0]->{group_enabled}, 1 ); + is( $r->[0]->{sublanguages_loop}->[0]->{rfc4646_subtag}, 'en' ); + ok( !$r->[0]->{sublanguages_loop}->[0]->{enabled} ); + is( $r->[0]->{sublanguages_loop}->[1]->{rfc4646_subtag}, 'en-NZ' ); + ok( $r->[0]->{sublanguages_loop}->[1]->{enabled} ); + is( scalar(@$r), 2 ); + is( scalar( @{ $r->[0]->{sublanguages_loop} } ), 2 ); + is( $r->[1]->{sublanguages_loop}->[0]->{rfc4646_subtag}, 'de-DE' ); + ok( !$r->[1]->{sublanguages_loop}->[0]->{enabled} ); + is( scalar( @{ $r->[1]->{sublanguages_loop} } ), 1 ); + + my @available_langages = qw( + be-BY + de-DE + en + en-GB + es-ES + fr-CA + fr-FR + it-IT + ku-Arab + sv-SE + ); + my @enabled_languages = qw( + en + fr-CA + fr-FR + sv-SE + es-ES + de-DE + it-IT + ); + $r = C4::Languages::_build_languages_arrayref( \@available_langages, 'fr-FR', \@enabled_languages ); + + is( $r->[0]->{language}, 'en' ); + is( $r->[0]->{group_enabled}, 1 ); + is( $r->[1]->{language}, 'fr' ); + is( $r->[1]->{group_enabled}, 1 ); + is( $r->[2]->{language}, 'sv' ); + is( $r->[2]->{group_enabled}, 1 ); + is( $r->[3]->{language}, 'es' ); + is( $r->[3]->{group_enabled}, 1 ); + is( $r->[4]->{language}, 'de' ); + is( $r->[4]->{group_enabled}, 1 ); + is( $r->[5]->{language}, 'it' ); + is( $r->[5]->{group_enabled}, 1 ); + + is( $r->[6]->{language}, 'be' ); + ok( !$r->[6]->{group_enabled}, ); + is( $r->[7]->{language}, 'ku' ); + ok( !$r->[7]->{group_enabled}, ); +}; + # Language Descriptions my $sth = $dbh->prepare("SELECT DISTINCT subtag,type,lang,description from language_descriptions;"); $sth->execute();