X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=t%2Fcontent_negotiation.t;h=559a370ca077d2e9af918aa5cb36bb51d89174e4;hp=38eb181ef8da1fb4373e0694d777c2945152bdc8;hb=9206d78d3c3c9439fcbc0b9dd79c552beebe5ff5;hpb=982d7488f79d1c7c489e8e84e1556e22132c0a3d diff --git a/t/content_negotiation.t b/t/content_negotiation.t index 38eb181..559a370 100644 --- a/t/content_negotiation.t +++ b/t/content_negotiation.t @@ -6,9 +6,125 @@ use strict; use FindBin; use Test::More; use HTTP::Request::Common; +use JSON::MaybeXS; use lib "$FindBin::Bin/lib"; use Catalyst::Test 'TestContentNegotiation'; +{ + ok my $req = POST '/', + Content_Type => 'application/json', + Content => encode_json +{message=>'test'}; + + ok my $res = request $req; + + is $res->content, 'is_json1'; +} + +{ + ok my $req = POST '/', [a=>1,b=>2]; + ok my $res = request $req; + + is $res->content, 'is_urlencoded1'; +} + +{ + ok my $path = TestContentNegotiation->path_to(qw/share file.txt/); + ok my $req = POST '/', + Content_Type => 'form-data', + Content => [a=>1, b=>2, file=>["$path"]]; + + ok my $res = request $req; + + 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;