@@ -, +, @@ --- t/db_dependent/Templates.t | 40 ++++++++++++++++++++++++++++++++++------ 1 file changed, 34 insertions(+), 6 deletions(-) --- a/t/db_dependent/Templates.t +++ a/t/db_dependent/Templates.t @@ -49,14 +49,42 @@ my @tables = qw( biblio biblioitems borrowers items statistics subscription ); cmp_deeply( \@keys, \@tables, 'GetColumnDefs returns the expected tables'); subtest 'Testing themelanguage for unique themes (BZ 17982)' => sub { - plan tests => 1; - - t::lib::Mocks::mock_preference('template', 'prog'); + plan tests => 4; + my $testing_language; my $module_language = Test::MockModule->new('C4::Languages'); - $module_language->mock( 'getlanguage', sub { return 'en'; } ); - # This only triggers the first uniq but that is sufficient for now - cmp_deeply( ( C4::Templates::themelanguage( C4::Context->config('intrahtdocs'), 'about.tt' , 'intranet', 'fake_cgi' ) )[2], [ 'prog' ], 'We only expect one prog here' ); + $module_language->mock( + 'getlanguage', + sub { + return $testing_language; + } + ); + + my $cgi = CGI->new(); + my $htdocs = C4::Context->config('intrahtdocs'); + my $section = 'intranet'; + + # trigger first case. + $testing_language = 'en'; + my ($theme, $lang, $availablethemes) = C4::Templates::themelanguage( $htdocs, 'about.tt', $section, $cgi); + is($lang,'en','Expected language: set en'); + + # trigger second case. + $testing_language = q{}; + ($theme, $lang, $availablethemes) = C4::Templates::themelanguage($htdocs, 'about.tt', $section, $cgi); + is($lang,'en','Expected language: default en'); + + # trigger third case. + my $template = $htdocs . '/prog/en/modules/about.tt'; + ($theme, $lang, $availablethemes) = C4::Templates::themelanguage($htdocs, $template, $section, $cgi); + is($lang,q{},'Expected language: unset'); + + # trigger bad case. + $template = $htdocs . '/prog/en/kaboom/about.tt'; + ($theme, $lang, $availablethemes) = C4::Templates::themelanguage($htdocs, $template, $section, $cgi); + is($lang,undef,'Expected language: not coded for'); + + return; }; 1; --