Release commit for 5.90128
[catagits/Catalyst-Runtime.git] / t / lib / TestContentNegotiation / share / file.txt
1 package TestContentNegotiation::Controller::Root;
2
3 use Moose;
4 use MooseX::MethodAttributes;
5
6 extends 'Catalyst::Controller';
7
8 sub start :Chained(/) PathPrefix CaptureArgs(0) { }
9
10     sub is_json       : Chained('start') PathPart('') Consumes('application/json') Args(0) { pop->res->body('is_json') }
11     sub is_urlencoded : Chained('start') PathPart('') Consumes('application/x-www-form-urlencoded') Args(0) { pop->res->body('is_urlencoded') }
12     sub is_multipart  : Chained('start') PathPart('') Consumes('multipart/form-data') Args(0) { pop->res->body('is_multipart') }
13
14     sub under :Chained('start') CaptureArgs(0) { }
15
16       sub is_json_under       : Chained('under') PathPart('') Consumes(JSON) Args(0) { pop->res->body('is_json') }
17       sub is_urlencoded_under : Chained('under') PathPart('') Consumes(UrlEncoded) Args(0) { pop->res->body('is_urlencoded') }
18       sub is_multipart_under  : Chained('under') PathPart('') Consumes(Multipart) Args(0) { pop->res->body('is_multipart') }
19
20       ## Or allow more than one type
21
22     sub multi :Chained('start') CaptureArgs(0) { }
23
24     sub is_more_than_one_1
25       : Chained('multi') PathPart('')
26       : Consumes('application/x-www-form-urlencoded')
27       : Consumes('multipart/form-data')
28       : Args(0)
29     {
30       pop->res->body('formdata1');
31     }
32
33     sub is_more_than_one_2
34       : Chained('multi') PathPart('')
35       : Consumes('HTMLForm')
36       : Args(0)
37     {
38       pop->res->body('formdata2');
39     }
40
41     sub is_more_than_one_3
42       : Chained('multi') PathPart('')
43       : Consumes('application/x-www-form-urlencoded,multipart/form-data')
44       : Args(0)
45     {
46       pop->res->body('formdata3');
47     }
48
49
50 __PACKAGE__->meta->make_immutable;