File: data_handler.t

package info (click to toggle)
libcatalyst-perl 5.90132-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 3,016 kB
  • sloc: perl: 11,061; makefile: 7
file content (40 lines) | stat: -rw-r--r-- 1,289 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
use warnings;
use strict;

use FindBin;
use Test::More;
use HTTP::Request::Common;
use JSON::MaybeXS;

use lib "$FindBin::Bin/lib";
use Catalyst::Test 'TestDataHandlers';

ok my($res, $c) = ctx_request('/');

{
  ok my $message = 'helloworld';
  ok my $post = encode_json +{message=>$message};
  ok my $req = POST $c->uri_for_action('/test_json'),
     Content_Type => 'application/json',
     Content => $post;

  ok my $response = request $req, 'got a response from a catalyst controller';
  is $response->content, $message, 'expected content body';
}

{
  ok my $req = POST $c->uri_for_action('/test_nested_for'), [ 'nested.value' => 'expected' ];
  ok my $response = request $req, 'got a response from a catalyst controller';
  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;