View | Details | Raw Unified | Return to bug 18036
Collapse All | Expand All

(-)a/t/db_dependent/Templates.t (-7 / +50 lines)
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
- 

Return to bug 18036