X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fcatalyst-action-serialize-accept.t;h=8f5a38f469467f21a4be192dad16f5125ff9d8e0;hb=78f164df3317e84edb9aa8d5a0795c875beefa44;hp=bea3d3a2933831b228a3fa103703f6a7267776ca;hpb=21d3f6aeb5d5150d2709f9a3d0647d21e9d74d9b;p=catagits%2FCatalyst-Action-REST.git diff --git a/t/catalyst-action-serialize-accept.t b/t/catalyst-action-serialize-accept.t index bea3d3a..8f5a38f 100644 --- a/t/catalyst-action-serialize-accept.t +++ b/t/catalyst-action-serialize-accept.t @@ -1,21 +1,22 @@ use strict; use warnings; -use Test::More tests => 16; -use Data::Serializer; +use Test::More; use FindBin; +use Test::Requires qw(YAML::Syck); use lib ("$FindBin::Bin/lib", "$FindBin::Bin/../lib", "$FindBin::Bin/broken"); use Test::Rest; +use Catalyst::Action::Serialize::YAML; # Should use Data::Dumper, via YAML my $t = Test::Rest->new('content_type' => 'text/x-yaml'); use_ok 'Catalyst::Test', 'Test::Catalyst::Action::REST'; -my $data = <serialize({lou => 'is my cat'}); { my $req = $t->get(url => '/serialize/test'); @@ -29,8 +30,8 @@ EOH $res->content =~ m#Content-Type text/x-yaml is not supported# ); ok( $res->is_success, 'GET the serialized request succeeded' ); - is( $res->content, $data, "Request returned proper data"); - is( $res->header('Content-type'), 'text/x-yaml', '... with expected content-type') + is( $res->content, $output_YAML, "Request returned proper data"); + is( $res->content_type, 'text/x-yaml', '... with expected content-type') }; } @@ -46,45 +47,40 @@ SKIP: { ok( $res->is_success, 'GET the serialized request succeeded' ); my $ret = $json->decode($res->content); is( $ret->{lou}, 'is my cat', "Request returned proper data"); - is( $res->header('Content-type'), 'application/json', 'Accept header used if content-type mapping not found') + is( $res->content_type, 'application/json', 'Accept header used if content-type mapping not found') }; -# Make sure we don't get a bogus content-type when using default -# serializer (rt.cpan.org ticket 27949) +# Make sure we don't get a bogus content-type when using the default +# serializer (https://rt.cpan.org/Ticket/Display.html?id=27949) { my $req = $t->get(url => '/serialize/test'); $req->remove_header('Content-Type'); $req->header('Accept', '*/*'); my $res = request($req); ok( $res->is_success, 'GET the serialized request succeeded' ); - is( $res->content, $data, "Request returned proper data"); - is( $res->header('Content-type'), 'text/x-yaml', '... with expected content-type') + is( $res->content, $output_YAML, "Request returned proper data"); + is( $res->content_type, 'text/x-yaml', '... with expected content-type') } -# Make that using content_type_stash_key, an invalid value in the stash gets ignored +# Make sure that when using content_type_stash_key, an invalid value in the stash gets ignored { my $req = $t->get(url => '/serialize/test_second?serialize_content_type=nonesuch'); $req->remove_header('Content-Type'); $req->header('Accept', '*/*'); my $res = request($req); ok( $res->is_success, 'GET the serialized request succeeded' ); - is( $res->content, $data, "Request returned proper data"); - is( $res->header('Content-type'), 'text/x-yaml', '... with expected content-type') + is( $res->content, $output_YAML, "Request returned proper data"); + is( $res->content_type, 'text/x-yaml', '... with expected content-type') } -# Make that using content_type_stash_key, a valid value in the stash gets priority -# this also tests that application-level config is properly passed to -# individual controllers; see t/lib/Test/Catalyst/Action/REST.pm +# Make sure that the default content type you specify really gets used. { - my $req = $t->get(url => - '/serialize/test_second?serialize_content_type=text/x-data-dumper' - ); + my $req = $t->get(url => '/override/test'); $req->remove_header('Content-Type'); - $req->header('Accept', '*/*'); my $res = request($req); ok( $res->is_success, 'GET the serialized request succeeded' ); - is( $res->content, "{'lou' => 'is my cat'}", "Request returned proper data"); - is( $res->header('Content-type'), 'text/x-data-dumper', '... with expected content-type') + is( $res->content, "--- \nlou: is my cat\n", "Request returned proper data"); } -1; +done_testing; +