ok my $res = request $req;
- is $res->content, 'is_json';
+ is $res->content, 'is_json1';
}
{
ok my $req = POST '/', [a=>1,b=>2];
ok my $res = request $req;
- is $res->content, 'is_urlencoded';
+ is $res->content, 'is_urlencoded1';
}
{
ok my $res = request $req;
- is $res->content, 'is_multipart';
+ is $res->content, 'is_multipart1';
}
+{
+ ok my $req = POST '/under',
+ Content_Type => 'application/json',
+ Content => encode_json +{message=>'test'};
+
+ ok my $res = request $req;
+
+ is $res->content, 'is_json2';
+}
+
+{
+ ok my $req = POST '/under', [a=>1,b=>2];
+ ok my $res = request $req;
+
+ is $res->content, 'is_urlencoded2';
+}
+
+{
+ ok my $path = TestContentNegotiation->path_to(qw/share file.txt/);
+ ok my $req = POST '/under',
+ Content_Type => 'form-data',
+ Content => [a=>1, b=>2, file=>["$path"]];
+
+ ok my $res = request $req;
+
+ is $res->content, 'is_multipart2';
+}
+
+{
+ ok my $req = POST '/is_more_than_one_1',
+ Content => [a=>1, b=>2];
+
+ ok my $res = request $req;
+
+ is $res->content, 'formdata1';
+}
+
+{
+ ok my $req = POST '/is_more_than_one_2',
+ Content => [a=>1, b=>2];
+
+ ok my $res = request $req;
+
+ is $res->content, 'formdata2';
+}
+
+{
+ ok my $req = POST '/is_more_than_one_3',
+ Content => [a=>1, b=>2];
+
+ ok my $res = request $req;
+
+ is $res->content, 'formdata3';
+}
+
+{
+ ok my $path = TestContentNegotiation->path_to(qw/share file.txt/);
+ ok my $req = POST '/is_more_than_one_1',
+ Content_Type => 'form-data',
+ Content => [a=>1, b=>2, file=>["$path"]];
+
+ ok my $res = request $req;
+
+ is $res->content, 'formdata1';
+}
+
+{
+ ok my $path = TestContentNegotiation->path_to(qw/share file.txt/);
+ ok my $req = POST '/is_more_than_one_2',
+ Content_Type => 'form-data',
+ Content => [a=>1, b=>2, file=>["$path"]];
+
+ ok my $res = request $req;
+
+ is $res->content, 'formdata2';
+}
+
+{
+ ok my $path = TestContentNegotiation->path_to(qw/share file.txt/);
+ ok my $req = POST '/is_more_than_one_3',
+ Content_Type => 'form-data',
+ Content => [a=>1, b=>2, file=>["$path"]];
+
+ ok my $res = request $req;
+
+ is $res->content, 'formdata3';
+}
done_testing;
sub start :Chained(/) PathPrefix CaptureArgs(0) { }
- sub is_json : Chained('start') PathPart('') Consumes('application/json') Args(0) { pop->res->body('is_json') }
- sub is_urlencoded : Chained('start') PathPart('') Consumes('application/x-www-form-urlencoded') Args(0) { pop->res->body('is_urlencoded') }
- sub is_multipart : Chained('start') PathPart('') Consumes('multipart/form-data') Args(0) { pop->res->body('is_multipart') }
+ sub is_json : Chained('start') PathPart('') Consumes('application/json') Args(0) { pop->res->body('is_json1') }
+ sub is_urlencoded : Chained('start') PathPart('') Consumes('application/x-www-form-urlencoded') Args(0) { pop->res->body('is_urlencoded1') }
+ sub is_multipart : Chained('start') PathPart('') Consumes('multipart/form-data') Args(0) { pop->res->body('is_multipart1') }
sub under :Chained('start') CaptureArgs(0) { }
- sub is_json_under : Chained('under') PathPart('') Consumes(JSON) Args(0) { pop->res->body('is_json') }
- sub is_urlencoded_under : Chained('under') PathPart('') Consumes(UrlEncoded) Args(0) { pop->res->body('is_urlencoded') }
- sub is_multipart_under : Chained('under') PathPart('') Consumes(Multipart) Args(0) { pop->res->body('is_multipart') }
+ sub is_json_under : Chained('under') PathPart('') Consumes(JSON) Args(0) { pop->res->body('is_json2') }
+ sub is_urlencoded_under : Chained('under') PathPart('') Consumes(UrlEncoded) Args(0) { pop->res->body('is_urlencoded2') }
+ sub is_multipart_under : Chained('under') PathPart('') Consumes(Multipart) Args(0) { pop->res->body('is_multipart2') }
## Or allow more than one type
- sub multi :Chained('start') CaptureArgs(0) { }
+ sub multi :Chained('start') PathPart('') CaptureArgs(0) { }
sub is_more_than_one_1
- : Chained('multi') PathPart('')
+ : Chained('multi')
: Consumes('application/x-www-form-urlencoded')
: Consumes('multipart/form-data')
: Args(0)
}
sub is_more_than_one_2
- : Chained('multi') PathPart('')
+ : Chained('multi')
: Consumes('HTMLForm')
: Args(0)
{
}
sub is_more_than_one_3
- : Chained('multi') PathPart('')
+ : Chained('multi')
: Consumes('application/x-www-form-urlencoded,multipart/form-data')
: Args(0)
{