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