From: Justin Hunter Date: Fri, 7 Jan 2011 20:20:43 +0000 (-0800) Subject: fix for undef bodies X-Git-Tag: 1.08~104^2 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Action-Serialize-Data-Serializer.git;a=commitdiff_plain;h=467b1ade0c03900ad39bfdea1ad01bd67cf8f8d8 fix for undef bodies --- diff --git a/lib/Catalyst/Action/Serialize.pm b/lib/Catalyst/Action/Serialize.pm index 29ee605..27f00a4 100644 --- a/lib/Catalyst/Action/Serialize.pm +++ b/lib/Catalyst/Action/Serialize.pm @@ -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)$/; diff --git a/t/catalyst-action-serialize.t b/t/catalyst-action-serialize.t index 78ce12b..43d793d 100644 --- a/t/catalyst-action-serialize.t +++ b/t/catalyst-action-serialize.t @@ -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; diff --git a/t/lib/Test/Catalyst/Action/REST/Controller/Serialize.pm b/t/lib/Test/Catalyst/Action/REST/Controller/Serialize.pm index 9d358c4..63cba8f 100644 --- a/t/lib/Test/Catalyst/Action/REST/Controller/Serialize.pm +++ b/t/lib/Test/Catalyst/Action/REST/Controller/Serialize.pm @@ -32,4 +32,8 @@ sub test_second :Local :ActionClass('Serialize') { }; } +sub empty :Local :ActionClass('Serialize') { + return undef; +} + 1;