|
Lines 18-25
Link Here
|
| 18 |
use Modern::Perl; |
18 |
use Modern::Perl; |
| 19 |
|
19 |
|
| 20 |
use CGI; |
20 |
use CGI; |
|
|
21 |
use File::Temp qw/ tempdir /; |
| 21 |
|
22 |
|
| 22 |
use Test::More tests => 6; |
23 |
use Test::More tests => 7; |
| 23 |
use Test::Deep; |
24 |
use Test::Deep; |
| 24 |
use Test::MockModule; |
25 |
use Test::MockModule; |
| 25 |
|
26 |
|
|
Lines 43-52
my $columns = C4::Templates::GetColumnDefs( $query );
Link Here
|
| 43 |
|
44 |
|
| 44 |
is( ref( $columns ) eq 'HASH', 1, 'GetColumnDefs returns a hashref' ); |
45 |
is( ref( $columns ) eq 'HASH', 1, 'GetColumnDefs returns a hashref' ); |
| 45 |
# get the tables names, sorted |
46 |
# get the tables names, sorted |
| 46 |
my @keys = sort keys %$columns; |
47 |
my @keys = sort keys %{$columns}; |
| 47 |
is( scalar @keys, 6, "GetColumnDefs correctly returns the 5 tables defined in columns.def" ); |
48 |
is( scalar @keys, 6, 'GetColumnDefs correctly returns the 5 tables defined in columns.def' ); |
| 48 |
my @tables = ( 'biblio', 'biblioitems', 'borrowers', 'items', 'statistics', 'subscription'); |
49 |
my @tables = qw( biblio biblioitems borrowers items statistics subscription ); |
| 49 |
cmp_deeply( \@keys, \@tables, "GetColumnDefs returns the expected tables"); |
50 |
cmp_deeply( \@keys, \@tables, 'GetColumnDefs returns the expected tables'); |
| 50 |
|
51 |
|
| 51 |
subtest 'Testing themelanguage for unique themes (BZ 17982)' => sub { |
52 |
subtest 'Testing themelanguage for unique themes (BZ 17982)' => sub { |
| 52 |
plan tests => 1; |
53 |
plan tests => 1; |
|
Lines 56-62
subtest 'Testing themelanguage for unique themes (BZ 17982)' => sub {
Link Here
|
| 56 |
$module_language->mock( 'getlanguage', sub { return 'en'; } ); |
57 |
$module_language->mock( 'getlanguage', sub { return 'en'; } ); |
| 57 |
|
58 |
|
| 58 |
# This only triggers the first uniq but that is sufficient for now |
59 |
# This only triggers the first uniq but that is sufficient for now |
| 59 |
cmp_deeply( ( C4::Templates::themelanguage( C4::Context->config('intrahtdocs'), 'about.tt' , 'intranet', 'fake_cgi'))[2], [ 'prog' ], 'We only expect one prog here' ); |
60 |
cmp_deeply( ( C4::Templates::themelanguage( C4::Context->config('intrahtdocs'), 'about.tt' , 'intranet', 'fake_cgi' ) )[2], [ 'prog' ], 'We only expect one prog here' ); |
|
|
61 |
}; |
| 62 |
|
| 63 |
subtest 'Test C4::Templates::themelanguage' => sub { |
| 64 |
plan tests => 4; |
| 65 |
my $testing_language; |
| 66 |
my $module_language = Test::MockModule->new('C4::Languages'); |
| 67 |
|
| 68 |
$module_language->mock( |
| 69 |
'getlanguage', |
| 70 |
sub { |
| 71 |
return $testing_language; |
| 72 |
} |
| 73 |
); |
| 74 |
|
| 75 |
my $cgi = CGI->new(); |
| 76 |
my $htdocs = C4::Context->config('intrahtdocs'); |
| 77 |
my $section = 'intranet'; |
| 78 |
my $htdocs_2 = tempdir( CLEANUP => 1 ); |
| 79 |
|
| 80 |
# trigger first case. |
| 81 |
$testing_language = 'fr-FR'; |
| 82 |
system( "mkdir -p $htdocs_2/prog/$testing_language/modules" ); |
| 83 |
open my $fh, '>', "$htdocs_2/prog/$testing_language/modules/about.tt"; |
| 84 |
close $fh; |
| 85 |
my ($theme, $lang, $availablethemes) = C4::Templates::themelanguage( $htdocs_2, 'about.tt', $section, $cgi); |
| 86 |
is($lang,'fr-FR','Expected language: non-en'); |
| 87 |
|
| 88 |
# trigger second case. |
| 89 |
$testing_language = q{}; |
| 90 |
($theme, $lang, $availablethemes) = C4::Templates::themelanguage($htdocs, 'about.tt', $section, $cgi); |
| 91 |
is($lang,'en','Expected language: default en'); |
| 92 |
|
| 93 |
# trigger third case. |
| 94 |
my $template = $htdocs . '/prog/en/modules/about.tt'; |
| 95 |
($theme, $lang, $availablethemes) = C4::Templates::themelanguage($htdocs, $template, $section, $cgi); |
| 96 |
is($lang,q{},'Expected language: unset'); |
| 97 |
|
| 98 |
# trigger bad case. |
| 99 |
$template = $htdocs . '/prog/en/kaboom/about.tt'; |
| 100 |
($theme, $lang, $availablethemes) = C4::Templates::themelanguage($htdocs, $template, $section, $cgi); |
| 101 |
is($lang,undef,'Expected language: not coded for'); |
| 102 |
|
| 103 |
return; |
| 60 |
}; |
104 |
}; |
| 61 |
|
105 |
|
| 62 |
1; |
106 |
1; |
| 63 |
- |
|
|