Commit | Line | Data |
d14acb87 |
1 | use CatalystX::Declare; |
2 | namespace TestApp; |
3 | |
4 | role hasActionParams { |
5 | has [qw/p1 p2/] => (is=>'ro', lazy_build=>1); |
6 | |
7 | method _build_p1 { |
34a0a1ff |
8 | join ',', @{$self->attributes->{p1}}; |
d14acb87 |
9 | } |
10 | method _build_p2 { |
34a0a1ff |
11 | join ',', @{$self->attributes->{p2}}; |
d14acb87 |
12 | } |
13 | } |
14 | |
a82dd4d2 |
15 | role hasActionParamsDeep { |
16 | has 'p_deep' => (is=>'ro', lazy_build=>1); |
17 | method _build_p_deep { |
18 | join ',', @{$self->attributes->{p_deep}}; |
19 | } |
20 | } |
21 | |
d14acb87 |
22 | controller ::Controller::ActionParams { |
23 | |
24 | action base |
25 | under '/base' |
26 | as 'actionparams'; |
27 | |
28 | action first under base |
12b853ff |
29 | with hasActionParams(p1=>100,p2=>101) |
30 | is final { |
d14acb87 |
31 | my $p1 = $ctx->controller->action_for('first')->p1; |
32 | my $p2 = $ctx->controller->action_for('first')->p2; |
33 | $ctx->response->body("action_args_first: $p1,$p2"); |
34 | } |
35 | |
36 | action second under base |
12b853ff |
37 | with hasActionParams({p1=>200,p2=>201}) |
d14acb87 |
38 | is final { |
39 | my $p1 = $ctx->controller->action_for('second')->p1; |
40 | my $p2 = $ctx->controller->action_for('second')->p2; |
41 | $ctx->response->body("action_args_second: $p1,$p2"); |
42 | } |
43 | |
e00e30bd |
44 | action third under base |
45 | with hasActionParams( |
46 | p1=>300, |
47 | p2=>301, |
48 | ) is final { |
49 | my $p1 = $ctx->controller->action_for('third')->p1; |
50 | my $p2 = $ctx->controller->action_for('third')->p2; |
51 | $ctx->response->body("action_args_third: $p1,$p2"); |
52 | } |
34a0a1ff |
53 | |
54 | action forth under base |
a82dd4d2 |
55 | with ( |
56 | hasActionParams(p1=>400,p2=>401), |
57 | hasActionParams(p1=>1,p2=>2, p0=>3) |
58 | ) is final { |
59 | my $action = $ctx->controller->action_for('forth'); |
60 | my $p1 = $action->p1; |
61 | my $p2 = $action->p2; |
34a0a1ff |
62 | $ctx->response->body("action_args_forth: $p1,$p2"); |
63 | } |
12b853ff |
64 | |
65 | action first_app_ns under base |
66 | with hasActionParams_AppNS(p1=>100,p2=>101) |
67 | is final { |
68 | my $p1 = $ctx->controller->action_for('first')->p1; |
69 | my $p2 = $ctx->controller->action_for('first')->p2; |
70 | $ctx->response->body("action_args_first: $p1,$p2"); |
71 | } |
72 | |
73 | action first_cat_ns under base |
74 | with hasActionParams_CatNS(p1=>100,p2=>101) |
75 | is final { |
76 | my $p1 = $ctx->controller->action_for('first')->p1; |
77 | my $p2 = $ctx->controller->action_for('first')->p2; |
78 | $ctx->response->body("action_args_first: $p1,$p2"); |
79 | } |
80 | |
a82dd4d2 |
81 | action check_deep under base |
82 | with hasActionParamsDeep(p_deep=>{a=>1,b=>2}) is final { |
83 | my $action = $ctx->controller->action_for('check_deep'); |
84 | my $p_deep = $action->p_deep; |
85 | ## $ctx->log->_dump($action->attributes); |
86 | $ctx->response->body("action_args_deep: $p_deep"); |
87 | } |
88 | |
89 | |
d14acb87 |
90 | } |
91 | |