fix for undef bodies
Justin Hunter [Fri, 7 Jan 2011 20:20:43 +0000 (12:20 -0800)]
lib/Catalyst/Action/Serialize.pm
t/catalyst-action-serialize.t
t/lib/Test/Catalyst/Action/REST/Controller/Serialize.pm

index 29ee605..27f00a4 100644 (file)
@@ -23,7 +23,7 @@ sub execute {
     $self->maybe::next::method(@_);
 
     return 1 if $c->req->method eq 'HEAD';
-    return 1 if length( $c->response->body );
+    return 1 if defined $c->response->body && length( $c->response->body );
     return 1 if scalar @{ $c->error };
     return 1 if $c->response->status =~ /^(?:204)$/;
 
index 78ce12b..43d793d 100644 (file)
@@ -1,6 +1,6 @@
 use strict;
 use warnings;
-use Test::More tests => 9;
+use Test::More tests => 11;
 use Data::Serializer;
 use FindBin;
 
@@ -35,4 +35,8 @@ $res2 = request($t->get(url => '/serialize/test_second'));
 ok( $res2->is_success, 'request succeeded (deprecated config)' );
 is( $res2->content, "{'lou' => 'is my cat'}", "request returned proper data");
 
+my $emptyres = request($t->get(url => '/serialize/empty'));
+is $emptyres->content, '';
+ok !$emptyres->header('Content-Length');
+
 1;
index 9d358c4..63cba8f 100644 (file)
@@ -32,4 +32,8 @@ sub test_second :Local :ActionClass('Serialize') {
     };
 }
 
+sub empty :Local :ActionClass('Serialize') {
+  return undef;
+}
+
 1;