Merged 5.49_01 (r1339) from refactored branch to trunk
[catagits/Catalyst-Runtime.git] / t / live / engine / request / body.t
CommitLineData
06e1b616 1#!perl
2
3use strict;
4use warnings;
5
6use FindBin;
7use lib "$FindBin::Bin/../../lib";
8
fbcc39ad 9use Test::More tests => 18;
06e1b616 10use Catalyst::Test 'TestApp';
11
12use Catalyst::Request;
13use HTTP::Headers;
14use HTTP::Request::Common;
15
16{
17 my $creq;
18
fbcc39ad 19 my $request = POST(
20 'http://localhost/dump/request/',
06e1b616 21 'Content-Type' => 'text/plain',
22 'Content' => 'Hello Catalyst'
23 );
24
25 ok( my $response = request($request), 'Request' );
26 ok( $response->is_success, 'Response Successful 2xx' );
27 is( $response->content_type, 'text/plain', 'Response Content-Type' );
fbcc39ad 28 like( $response->content, qr/'Catalyst::Request'/,
29 'Content is a serialized Catalyst::Request' );
30
06e1b616 31 {
32 no strict 'refs';
fbcc39ad 33 ok(
34 eval '$creq = ' . $response->content,
35 'Unserialize Catalyst::Request'
36 );
06e1b616 37 }
38
39 isa_ok( $creq, 'Catalyst::Request' );
fbcc39ad 40 is( $creq->method, 'POST', 'Catalyst::Request method' );
06e1b616 41 is( $creq->content_type, 'text/plain', 'Catalyst::Request Content-Type' );
fbcc39ad 42 is( $creq->content_length, $request->content_length,
43 'Catalyst::Request Content-Length' );
06e1b616 44}
1408d0a4 45
46{
47 my $creq;
48
fbcc39ad 49 my $request = POST(
50 'http://localhost/dump/request/',
1408d0a4 51 'Content-Type' => 'text/plain',
52 'Content' => 'x' x 100_000
53 );
54
55 ok( my $response = request($request), 'Request' );
56 ok( $response->is_success, 'Response Successful 2xx' );
57 is( $response->content_type, 'text/plain', 'Response Content-Type' );
fbcc39ad 58 like(
59 $response->content,
60 qr/^bless\( .* 'Catalyst::Request' \)$/s,
61 'Content is a serialized Catalyst::Request'
62 );
63
1408d0a4 64 {
65 no strict 'refs';
fbcc39ad 66 ok(
67 eval '$creq = ' . $response->content,
68 'Unserialize Catalyst::Request'
69 );
1408d0a4 70 }
71
72 isa_ok( $creq, 'Catalyst::Request' );
fbcc39ad 73 is( $creq->method, 'POST', 'Catalyst::Request method' );
1408d0a4 74 is( $creq->content_type, 'text/plain', 'Catalyst::Request Content-Type' );
fbcc39ad 75 is( $creq->content_length, $request->content_length,
76 'Catalyst::Request Content-Length' );
77}