Commit | Line | Data |
06e1b616 |
1 | use strict; |
2 | use warnings; |
3 | |
4 | use FindBin; |
42da66a9 |
5 | use lib "$FindBin::Bin/../lib"; |
06e1b616 |
6 | |
610bc6ec |
7 | use Test::More tests => 23; |
06e1b616 |
8 | use Catalyst::Test 'TestApp'; |
9 | |
10 | use Catalyst::Request; |
11 | use HTTP::Headers; |
12 | use HTTP::Request::Common; |
13 | |
14 | { |
15 | my $creq; |
16 | |
fbcc39ad |
17 | my $request = POST( |
18 | 'http://localhost/dump/request/', |
06e1b616 |
19 | 'Content-Type' => 'text/plain', |
20 | 'Content' => 'Hello Catalyst' |
21 | ); |
22 | |
23 | ok( my $response = request($request), 'Request' ); |
24 | ok( $response->is_success, 'Response Successful 2xx' ); |
25 | is( $response->content_type, 'text/plain', 'Response Content-Type' ); |
fbcc39ad |
26 | like( $response->content, qr/'Catalyst::Request'/, |
27 | 'Content is a serialized Catalyst::Request' ); |
28 | |
06e1b616 |
29 | { |
30 | no strict 'refs'; |
fbcc39ad |
31 | ok( |
32 | eval '$creq = ' . $response->content, |
33 | 'Unserialize Catalyst::Request' |
34 | ); |
06e1b616 |
35 | } |
36 | |
37 | isa_ok( $creq, 'Catalyst::Request' ); |
fbcc39ad |
38 | is( $creq->method, 'POST', 'Catalyst::Request method' ); |
06e1b616 |
39 | is( $creq->content_type, 'text/plain', 'Catalyst::Request Content-Type' ); |
610bc6ec |
40 | is( $creq->{__body_type}, 'File::Temp' ); |
fbcc39ad |
41 | is( $creq->content_length, $request->content_length, |
42 | 'Catalyst::Request Content-Length' ); |
06e1b616 |
43 | } |
1408d0a4 |
44 | |
45 | { |
46 | my $creq; |
47 | |
fbcc39ad |
48 | my $request = POST( |
49 | 'http://localhost/dump/request/', |
1408d0a4 |
50 | 'Content-Type' => 'text/plain', |
51 | 'Content' => 'x' x 100_000 |
52 | ); |
53 | |
54 | ok( my $response = request($request), 'Request' ); |
55 | ok( $response->is_success, 'Response Successful 2xx' ); |
56 | is( $response->content_type, 'text/plain', 'Response Content-Type' ); |
fbcc39ad |
57 | like( |
58 | $response->content, |
59 | qr/^bless\( .* 'Catalyst::Request' \)$/s, |
60 | 'Content is a serialized Catalyst::Request' |
61 | ); |
62 | |
1408d0a4 |
63 | { |
64 | no strict 'refs'; |
fbcc39ad |
65 | ok( |
66 | eval '$creq = ' . $response->content, |
67 | 'Unserialize Catalyst::Request' |
68 | ); |
1408d0a4 |
69 | } |
70 | |
71 | isa_ok( $creq, 'Catalyst::Request' ); |
fbcc39ad |
72 | is( $creq->method, 'POST', 'Catalyst::Request method' ); |
1408d0a4 |
73 | is( $creq->content_type, 'text/plain', 'Catalyst::Request Content-Type' ); |
610bc6ec |
74 | is( $creq->{__body_type}, 'File::Temp' ); |
fbcc39ad |
75 | is( $creq->content_length, $request->content_length, |
76 | 'Catalyst::Request Content-Length' ); |
77 | } |
b1e0cb6d |
78 | |
79 | # 5.80 regression, see note in Catalyst::Plugin::Test::Plugin |
6e3de58f |
80 | { |
b1e0cb6d |
81 | my $request = GET( |
a0821622 |
82 | 'http://localhost/dump/response', |
b1e0cb6d |
83 | 'Content-Type' => 'text/plain', |
84 | 'Content' => 'x' x 100_000 |
85 | ); |
86 | |
87 | ok( my $response = request($request), 'Request' ); |
88 | ok( $response->is_success, 'Response Successful 2xx' ); |
a0821622 |
89 | ok( $response->header('X-Have-Request-Body'), 'X-Have-Request-Body set' ); |
b1e0cb6d |
90 | } |
91 | |