File Coverage

File:t/1-inherit.t
Coverage:100.0%

linestmtbrancondsubpodtimecode
1
1
1
1
1272034650710471
12902
9
use Test::More;
2
1
1
1
460
2092
5
use Test::Exception;
3
1
1
1
349
932317
17
use Catalyst ();
4
1
1
1
175
2
16
use Catalyst::Controller::Combine ();
5
1
1
1
196
939
31
use FindBin;
6
1
1
1
3
1
27
use Path::Class::File;
7
8# a simple package
9{
10
1
408125
    package MyApp::Controller::Js;
11
1
1
1
2
2
7
    use Moose;
12
1
10
    extends 'Catalyst::Controller::Combine';
13
14
1
3465
    __PACKAGE__->config(
15        # dir => 'static/js', # redundant, defaults to static/<<action_namespace>>
16        # extension => 'js', # redundant, defaults to <<action_namespace>>
17        depend => {
18            js2 => 'js1',
19        },
20        # will be guessed from extension
21        # mimetype => 'application/javascript',
22    );
23}
24
25# setup our Catalyst :-)
26
1
184
my $c = Catalyst->new();
27
1
388
$c->setup_log();
28
1
918
$c->setup_home("$FindBin::Bin");
29
30
1
693
my $controller;
31
1
1
11
105
lives_ok { $controller = $c->setup_component('MyApp::Controller::Js') } 'setup component worked';
32
33
1
340
is(ref($controller), 'MyApp::Controller::Js', 'controller class looks good');
34
1
487
ok($controller->isa('Catalyst::Controller::Combine'), 'is a Catalyst::Controller::Combine');
35
36# checking default attributes
37
1
217
is($controller->dir, 'static/js', 'default directory looks good');
38
1
652
is($controller->extension, 'js', 'default extension looks good');
39
1
428
is(ref($controller->depend), 'HASH', 'default dependency is HASH');
40
1
398
is_deeply($controller->depend, {js2 => 'js1'}, 'default dependency looks good');
41
1
579
is($controller->minifier, 'minify', 'default minify sub looks good');
42
43# case 1: one file, no extension given
44
1
1
405
91
lives_ok {$controller->_collect_files($c, 'js1')} 'collect #1 works';
45
1
220
is_deeply($controller->{parts}, ['js1'], '1 part');
46
1
530
is_deeply($controller->{files}, ["" . Path::Class::File->new($FindBin::Bin, qw(root static js js1.js))], '1 file');
47
1
794
is_deeply($controller->{seen}, {js1 => 0}, '1 file seen once');
48
49# case 2: one file, no extension given -- dependency should add one
50
1
1
530
78
lives_ok {$controller->_collect_files($c, 'js2')} 'collect #2 works';
51
1
220
is_deeply($controller->{parts}, ['js1','js2'], '2 parts');
52
1
629
is_deeply($controller->{files},
53          ["" . Path::Class::File->new($FindBin::Bin, qw(root static js js1.js)),
54           "" . Path::Class::File->new($FindBin::Bin, qw(root static js js2.js))], '2 files');
55    # "$FindBin::Bin/root/static/js/js1.js","$FindBin::Bin/root/static/js/js2.js"], '2 files');
56
1
1097
is_deeply($controller->{seen}, {js1 => 1, js2 => 0}, '2 files seen once');
57
58# case 3: two files, no extension given
59
1
1
624
77
lives_ok {$controller->_collect_files($c, 'js1','js2')} 'collect #3 works';
60
1
219
is_deeply($controller->{parts}, ['js1','js2'], '2 parts');
61
1
651
is_deeply($controller->{files},
62          ["" . Path::Class::File->new($FindBin::Bin, qw(root static js js1.js)),
63           "" . Path::Class::File->new($FindBin::Bin, qw(root static js js2.js))], '2 files');
64
1
1099
is_deeply($controller->{seen}, {js1 => 1, js2 => 0}, '2 files seen once');
65
66
1
688
done_testing;