@@ -, +, @@ --- t/db_dependent/Templates.t | 51 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 46 insertions(+), 5 deletions(-) --- a/t/db_dependent/Templates.t +++ a/t/db_dependent/Templates.t @@ -18,9 +18,12 @@ use Modern::Perl; use CGI; +use File::Basename qw/dirname/; -use Test::More tests => 5; +use Test::More tests => 6; use Test::Deep; +use Test::MockModule; +use t::lib::Mocks; BEGIN { use_ok( 'C4::Templates' ); @@ -40,10 +43,48 @@ my $columns = C4::Templates::GetColumnDefs( $query ); is( ref( $columns ) eq 'HASH', 1, 'GetColumnDefs returns a hashref' ); # get the tables names, sorted -my @keys = sort keys %$columns; -is( scalar @keys, 6, "GetColumnDefs correctly returns the 5 tables defined in columns.def" ); -my @tables = ( 'biblio', 'biblioitems', 'borrowers', 'items', 'statistics', 'subscription'); -cmp_deeply( \@keys, \@tables, "GetColumnDefs returns the expected tables"); +my @keys = sort keys %{$columns}; +is( scalar @keys, 6, 'GetColumnDefs correctly returns the 5 tables defined in columns.def' ); +my @tables = qw( biblio biblioitems borrowers items statistics subscription ); +cmp_deeply( \@keys, \@tables, 'GetColumnDefs returns the expected tables'); +subtest 'Test C4::Templates::themelanguage' => sub { + plan tests => 4; + my $testing_language; + my $module_language = Test::MockModule->new('C4::Languages'); + + $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 = 'fr-FR'; + my ($theme, $lang, $availablethemes) = C4::Templates::themelanguage($htdocs, 'about.tt', $section, $cgi); + is($lang,'fr-FR','Expected language: non-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; --