Commit | Line | Data |
dd4e6fd2 |
1 | package TestApp::Controller::Action::Forward; |
2 | |
3 | use strict; |
4 | use base 'TestApp::Controller::Action'; |
5 | |
a1dad9c1 |
6 | sub one : Local { |
dd4e6fd2 |
7 | my ( $self, $c ) = @_; |
8 | $c->forward('two'); |
9 | } |
10 | |
11 | sub two : Private { |
12 | my ( $self, $c ) = @_; |
13 | $c->forward('three'); |
14 | } |
15 | |
a1dad9c1 |
16 | sub three : Local { |
dd4e6fd2 |
17 | my ( $self, $c ) = @_; |
86d993ab |
18 | $c->forward( $self, 'four' ); |
dd4e6fd2 |
19 | } |
20 | |
21 | sub four : Private { |
22 | my ( $self, $c ) = @_; |
7eb331e7 |
23 | $c->forward('/action/forward/five'); |
dd4e6fd2 |
24 | } |
25 | |
a1dad9c1 |
26 | sub five : Local { |
dd4e6fd2 |
27 | my ( $self, $c ) = @_; |
d6e0d7e6 |
28 | $c->forward('View::Dump::Request'); |
dd4e6fd2 |
29 | } |
30 | |
a1dad9c1 |
31 | sub jojo : Local { |
dd4e6fd2 |
32 | my ( $self, $c ) = @_; |
33 | $c->forward('one'); |
86d993ab |
34 | $c->forward( $c->controller('Action::Forward'), 'three' ); |
dd4e6fd2 |
35 | } |
36 | |
a1dad9c1 |
37 | sub inheritance : Local { |
c462faf0 |
38 | my ( $self, $c ) = @_; |
5b387dfc |
39 | $c->forward('/action/inheritance/a/b/default'); |
c462faf0 |
40 | $c->forward('five'); |
41 | } |
42 | |
a1dad9c1 |
43 | sub global : Local { |
e5d7f18c |
44 | my ( $self, $c ) = @_; |
fbcc39ad |
45 | $c->forward('/global_action'); |
e5d7f18c |
46 | } |
47 | |
a1dad9c1 |
48 | sub with_args : Local { |
49 | my ( $self, $c, $orig ) = @_; |
fbcc39ad |
50 | $c->forward( 'args', [qq/new/] ); |
a1dad9c1 |
51 | $c->res->body( $c->req->args->[0] ); |
52 | } |
53 | |
54 | sub with_method_and_args : Local { |
55 | my ( $self, $c, $orig ) = @_; |
56 | $c->forward( qw/TestApp::Controller::Action::Forward args/, [qq/new/] ); |
57 | $c->res->body( $c->req->args->[0] ); |
58 | } |
463dbd0a |
59 | |
60 | sub to_action_object : Local { |
61 | my ( $self, $c ) = @_; |
62 | $c->forward($self->action_for('embed'), [qw/mtfnpy/]); |
63 | } |
64 | |
a1dad9c1 |
65 | |
66 | sub args : Local { |
67 | my ( $self, $c, $val ) = @_; |
68 | die "Expected argument 'new', got '$val'" unless $val eq 'new'; |
69 | die "passed argument does not match args" unless $val eq $c->req->args->[0]; |
70 | } |
e5d7f18c |
71 | |
ab96c27a |
72 | sub args_embed_relative : Local { |
73 | my ( $self, $c ) = @_; |
86d993ab |
74 | $c->forward('embed/ok'); |
ab96c27a |
75 | } |
76 | |
77 | sub args_embed_absolute : Local { |
78 | my ( $self, $c ) = @_; |
86d993ab |
79 | $c->forward('/action/forward/embed/ok'); |
ab96c27a |
80 | } |
81 | |
82 | sub embed : Local { |
83 | my ( $self, $c, $ok ) = @_; |
86d993ab |
84 | |
ab96c27a |
85 | $ok ||= 'not ok'; |
86d993ab |
86 | $c->res->body($ok); |
87 | } |
88 | |
89 | sub class_forward_test_action : Local { |
90 | my ( $self, $c ) = @_; |
91 | $c->forward(qw/TestApp class_forward_test_method/); |
ab96c27a |
92 | } |
93 | |
4e69c1c8 |
94 | sub forward_to_uri_check : Local { |
95 | my ( $self, $c ) = @_; |
96 | $c->forward( 'Action::ForwardTo', 'uri_check' ); |
97 | } |
98 | |
dd4e6fd2 |
99 | 1; |