Release commit for 5.90128
[catagits/Catalyst-Runtime.git] / t / content_negotiation.t
1 use warnings;
2 use strict;
3
4 use FindBin;
5 use Test::More;
6 use HTTP::Request::Common;
7 use JSON::MaybeXS;
8
9 use lib "$FindBin::Bin/lib";
10 use Catalyst::Test 'TestContentNegotiation';
11
12 {
13   ok my $req = POST '/',
14      Content_Type => 'application/json',
15      Content => encode_json +{message=>'test'};
16
17   ok my $res = request $req;
18
19   is $res->content, 'is_json1';
20 }
21
22 {
23   ok my $req = POST '/', [a=>1,b=>2];
24   ok my $res = request $req;
25
26   is $res->content, 'is_urlencoded1';
27 }
28
29 {
30   ok my $path = TestContentNegotiation->path_to(qw/share file.txt/);
31   ok my $req = POST '/',
32     Content_Type => 'form-data',
33     Content =>  [a=>1, b=>2, file=>["$path"]];
34
35   ok my $res = request $req;
36
37   is $res->content, 'is_multipart1';
38 }
39
40 {
41   ok my $req = POST '/under',
42      Content_Type => 'application/json',
43      Content => encode_json +{message=>'test'};
44
45   ok my $res = request $req;
46
47   is $res->content, 'is_json2';
48 }
49
50 {
51   ok my $req = POST '/under', [a=>1,b=>2];
52   ok my $res = request $req;
53
54   is $res->content, 'is_urlencoded2';
55 }
56
57 {
58   ok my $path = TestContentNegotiation->path_to(qw/share file.txt/);
59   ok my $req = POST '/under',
60     Content_Type => 'form-data',
61     Content =>  [a=>1, b=>2, file=>["$path"]];
62
63   ok my $res = request $req;
64
65   is $res->content, 'is_multipart2';
66 }
67
68 {
69   ok my $req = POST '/is_more_than_one_1',
70     Content =>  [a=>1, b=>2];
71
72   ok my $res = request $req;
73
74   is $res->content, 'formdata1';
75 }
76
77 {
78   ok my $req = POST '/is_more_than_one_2',
79     Content =>  [a=>1, b=>2];
80
81   ok my $res = request $req;
82
83   is $res->content, 'formdata2';
84 }
85
86 {
87   ok my $req = POST '/is_more_than_one_3',
88     Content =>  [a=>1, b=>2];
89
90   ok my $res = request $req;
91
92   is $res->content, 'formdata3';
93 }
94
95 {
96   ok my $path = TestContentNegotiation->path_to(qw/share file.txt/);
97   ok my $req = POST '/is_more_than_one_1',
98     Content_Type => 'form-data',
99     Content =>  [a=>1, b=>2, file=>["$path"]];
100
101   ok my $res = request $req;
102
103   is $res->content, 'formdata1';
104 }
105
106 {
107   ok my $path = TestContentNegotiation->path_to(qw/share file.txt/);
108   ok my $req = POST '/is_more_than_one_2',
109     Content_Type => 'form-data',
110     Content =>  [a=>1, b=>2, file=>["$path"]];
111
112   ok my $res = request $req;
113
114   is $res->content, 'formdata2';
115 }
116
117 {
118   ok my $path = TestContentNegotiation->path_to(qw/share file.txt/);
119   ok my $req = POST '/is_more_than_one_3',
120     Content_Type => 'form-data',
121     Content =>  [a=>1, b=>2, file=>["$path"]];
122
123   ok my $res = request $req;
124
125   is $res->content, 'formdata3';
126 }
127
128 done_testing;