Create branch register_actions.
[catagits/Catalyst-Runtime.git] / t / aggregate / live_engine_request_body.t
CommitLineData
06e1b616 1#!perl
06e1b616 2use strict;
3use warnings;
4
5use FindBin;
ae29b412 6use lib "$FindBin::Bin/../lib";
06e1b616 7
ae29b412 8use Test::More tests => 23;
06e1b616 9use Catalyst::Test 'TestApp';
10
11use Catalyst::Request;
12use HTTP::Headers;
13use HTTP::Request::Common;
14
15{
16 my $creq;
17
fbcc39ad 18 my $request = POST(
19 'http://localhost/dump/request/',
06e1b616 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' );
fbcc39ad 27 like( $response->content, qr/'Catalyst::Request'/,
28 'Content is a serialized Catalyst::Request' );
29
06e1b616 30 {
31 no strict 'refs';
fbcc39ad 32 ok(
33 eval '$creq = ' . $response->content,
34 'Unserialize Catalyst::Request'
35 );
06e1b616 36 }
37
38 isa_ok( $creq, 'Catalyst::Request' );
fbcc39ad 39 is( $creq->method, 'POST', 'Catalyst::Request method' );
06e1b616 40 is( $creq->content_type, 'text/plain', 'Catalyst::Request Content-Type' );
ae29b412 41 is( $creq->{__body_type}, 'File::Temp' );
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' );
ae29b412 75 is( $creq->{__body_type}, 'File::Temp' );
fbcc39ad 76 is( $creq->content_length, $request->content_length,
77 'Catalyst::Request Content-Length' );
78}
ae29b412 79
80# 5.80 regression, see note in Catalyst::Plugin::Test::Plugin
81{
82 my $request = GET(
83 'http://localhost/have_req_body_in_prepare_action',
84 'Content-Type' => 'text/plain',
85 'Content' => 'x' x 100_000
86 );
87
88 ok( my $response = request($request), 'Request' );
89 ok( $response->is_success, 'Response Successful 2xx' );
90 like( $response->content, qr/^[1-9]/, 'Has body' );
91}
92