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 |
- |
|
|