7ca67e6b8f95cb87e998dc7b07b5ed1d570d38cc
[catagits/Catalyst-Runtime.git] / t / 18inheritance.t
1 package TestApp;
2
3 use Catalyst qw[-Engine=Test];
4
5 __PACKAGE__->action(
6
7     '!begin' => sub {
8         my ( $self, $c ) = @_;
9         $c->res->headers->content_type('text/plain');
10     }
11 );
12
13 package TestApp::C::Foo;
14
15 TestApp->action(
16
17     '!begin' => sub {
18         my ( $self, $c ) = @_;
19         $c->res->output('foo');
20     },
21
22     '!default' => sub {
23         my ( $self, $c ) = @_;
24         $c->res->output( $c->res->output . 'foo' );
25     },
26
27     '!end' => sub {
28         my ( $self, $c ) = @_;
29         $c->res->output( $c->res->output . 'foo' );
30     },
31 );
32
33 package TestApp::C::Foo::Bar;
34
35 TestApp->action(
36
37     '!begin' => sub {
38         my ( $self, $c ) = @_;
39         $c->res->output( $c->res->output . 'bar' );
40     },
41
42     '!default' => sub {
43         my ( $self, $c ) = @_;
44         $c->res->output( $c->res->output . 'bar' );
45     },
46
47     '!end' => sub {
48         my ( $self, $c ) = @_;
49         $c->res->output( $c->res->output . 'bar' );
50     },
51 );
52
53 package main;
54
55 use Test::More tests => 5;
56 use Catalyst::Test 'TestApp';
57
58 {
59     my $response = request('/foo');
60     is( $response->content, 'foofoofoo' );
61 }
62
63 {
64     my $response = request('/foo/rab');
65     is( $response->content, 'foofoofoo' );
66 }
67
68 {
69     my $response = request('/foo/bar');
70     is( $response->content, 'foobarfoobarfoobar' );
71 }
72
73 {
74     my $response = request('/foobar');
75     isnt( $response->content, 'foofoofoo' );
76 }
77
78 {
79     my $response = request('/foo_bar/yada');
80     isnt( $response->content, 'foobarfoobarfoobar' );
81 }