my $fh = $self->body;
local $_ = $fh;
return $self->data_handlers->{$match}->($fh, $self);
- } else {
- Catalyst::Exception->throw("$content_type is does not have an available data handler");
+ } else {
+ Catalyst::Exception->throw(
+ sprintf '%s does not have an available data handler. Valid data_handlers are %s.',
+ $content_type, join ', ', sort keys %{$self->data_handlers}
+ );
}
}
use Test::More;
use HTTP::Request::Common;
use JSON::MaybeXS;
+use Capture::Tiny qw/:all/;
use lib "$FindBin::Bin/lib";
use Catalyst::Test 'TestDataHandlers';
is $response->content, 'expected', 'expected content body';
}
+{
+ my $out;
+ local *STDERR;
+ open(STDERR, ">", \$out) or die "Can't open STDERR: $!";
+ ok my $req = POST $c->uri_for_action('/test_nested_for'), 'Content-Type' => 'multipart/form-data', Content => { die => "a horrible death" };
+ ok my $response = request $req;
+ is($out, "[error] multipart/form-data does not have an available data handler. Valid data_handlers are application/json, application/x-www-form-urlencoded.\n", 'yep we throw the slightly more usefull error');
+}
done_testing;