Making the default serializer be specified by content-type, not module.
[catagits/Catalyst-Action-REST.git] / t / catalyst-action-serialize-accept.t
index b67062e..e91c27e 100644 (file)
@@ -14,6 +14,7 @@ use Catalyst;
 __PACKAGE__->config(
     name => 'Test::Catalyst::Action::Serialize',
     serialize => {
+       'default'   => 'text/x-yaml',
         'stash_key' => 'rest',
         'map'       => {
             'text/x-yaml'        => 'YAML',
@@ -43,7 +44,7 @@ package main;
 
 use strict;
 use warnings;
-use Test::More tests => 3;
+use Test::More tests => 7;
 use Data::Serializer;
 use FindBin;
 use Data::Dump qw(dump);
@@ -56,15 +57,31 @@ my $t = Test::Rest->new('content_type' => 'text/x-yaml');
 
 use_ok 'Catalyst::Test', 'Test::Catalyst::Action::Serialize';
 
-my $req = $t->get(url => '/test');
-$req->remove_header('Content-Type');
-$req->header('Accept', 'text/x-yaml');
-my $res = request($req);
-ok( $res->is_success, 'GET the serialized request succeeded' );
 my $data = <<EOH;
 --- 
 lou: is my cat
 EOH
-is( $res->content, $data, "Request returned proper data");
+
+{
+       my $req = $t->get(url => '/test');
+       $req->remove_header('Content-Type');
+       $req->header('Accept', 'text/x-yaml');
+       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')
+}
+
+# Make sure we don't get a bogus content-type when using default
+# serializer (rt.cpan.org ticket 27949)
+{
+       my $req = $t->get(url => '/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')
+}
 
 1;