Bug 22451: Update test
[koha-equinox.git] / t / db_dependent / Koha / Template / Plugin / Asset.t
1 #!/usr/bin/env perl
2
3 use Modern::Perl;
4
5 use Test::More tests => 16;
6 use Template;
7 use Test::MockModule;
8
9 my $version = "22.0509045";
10 my $koha_module = Test::MockModule->new( "Koha" );
11 $koha_module->mock( "version", sub { return "22.05.09.045" } );
12
13 my $template = Template->new({
14     PLUGIN_BASE => 'Koha::Template::Plugin',
15 });
16
17 my $intranet_vars = {
18     interface => '/intranet-tmpl',
19     theme => 'prog',
20 };
21
22 my $opac_vars = {
23     interface => '/opac-tmpl',
24     theme => 'bootstrap',
25 };
26
27 my $output;
28
29 $output = '';
30 $template->process(url_template("js/staff-global.js"), $intranet_vars, \$output);
31 is($output, "/intranet-tmpl/prog/js/staff-global_$version.js");
32
33 $output = '';
34 $template->process(url_template("js/browser.js"), $intranet_vars, \$output);
35 is($output, "/intranet-tmpl/js/browser_$version.js");
36
37 $output = '';
38 $template->process(url_template("css/staff-global.css"), $intranet_vars, \$output);
39 is($output, "/intranet-tmpl/prog/css/staff-global_$version.css");
40
41 $output = '';
42 $template->process(url_template("lib/font-awesome/css/font-awesome.min.css"), $intranet_vars, \$output);
43 is($output, "/intranet-tmpl/lib/font-awesome/css/font-awesome.min_$version.css");
44
45 $output = '';
46 $template->process(url_template("js/global.js"), $opac_vars, \$output);
47 is($output, "/opac-tmpl/bootstrap/js/global_$version.js");
48
49 $output = '';
50 $template->process(url_template("lib/jquery/plugins/jquery.dataTables.min.js"), $opac_vars, \$output);
51 is($output, "/opac-tmpl/lib/jquery/plugins/jquery.dataTables.min_$version.js");
52
53 $output = '';
54 $template->process(url_template("css/opac.css"), $opac_vars, \$output);
55 is($output, "/opac-tmpl/bootstrap/css/opac_$version.css");
56
57 $output = '';
58 $template->process(url_template("lib/emoji-picker/css/emoji.css"), $opac_vars, \$output);
59 is($output, "/opac-tmpl/lib/emoji-picker/css/emoji_$version.css");
60
61 $output = '';
62 $template->process(css_template("css/opac.css"), $opac_vars, \$output);
63 like($output, qr/<link .*href="\/opac-tmpl\/bootstrap\/css\/opac_\Q$version\E\.css".*>/);
64 like($output, qr/<link .*type="text\/css".*>/);
65 like($output, qr/<link .*rel="stylesheet".*>/);
66
67 $output = '';
68 $template->process(\'[% USE Asset %][% Asset.css("css/print.css", { media = "print" }) %]', $opac_vars, \$output);
69 like($output, qr/<link .*href="\/opac-tmpl\/bootstrap\/css\/print_\Q$version\E\.css".*>/);
70 like($output, qr/<link .*type="text\/css".*>/);
71 like($output, qr/<link .*rel="stylesheet".*>/);
72 like($output, qr/<link .*media="print".*>/);
73
74 $output = '';
75 $template->process(js_template("js/global.js"), $opac_vars, \$output);
76 like($output, qr/<script .*src="\/opac-tmpl\/bootstrap\/js\/global_\Q$version\E\.js".*>/);
77
78 sub url_template {
79     my ($filename) = @_;
80
81     my $template = "[% USE Asset %][% Asset.url(\"$filename\") %]";
82
83     return \$template;
84 }
85
86 sub css_template {
87     my ($filename) = @_;
88
89     my $template = "[% USE Asset %][% Asset.css(\"$filename\") %]";
90
91     return \$template;
92 }
93
94 sub js_template {
95     my ($filename) = @_;
96
97     my $template = "[% USE Asset %][% Asset.js(\"$filename\") %]";
98
99     return \$template;
100 }