Commit | Line | Data |
dd4e6fd2 |
1 | #!perl |
2 | |
3 | use strict; |
4 | use warnings; |
5 | |
6 | use FindBin; |
7 | use lib "$FindBin::Bin/../../lib"; |
8 | |
b9e9fff6 |
9 | use Test::More tests => 19; |
dd4e6fd2 |
10 | use Catalyst::Test 'TestApp'; |
11 | |
12 | use Catalyst::Request; |
13 | use HTTP::Headers; |
14 | use HTTP::Request::Common; |
15 | use URI; |
16 | |
17 | { |
18 | my $creq; |
19 | |
20 | my $parameters = { |
21 | 'a' => [qw(A b C d E f G)], |
b9e9fff6 |
22 | }; |
23 | |
24 | my $query = join( '&', map { 'a=' . $_ } @{ $parameters->{a} } ); |
25 | |
26 | ok( my $response = request("http://localhost/dump/request?$query"), 'Request' ); |
27 | ok( $response->is_success, 'Response Successful 2xx' ); |
28 | is( $response->content_type, 'text/plain', 'Response Content-Type' ); |
29 | like( $response->content, qr/^bless\( .* 'Catalyst::Request' \)$/s, 'Content is a serialized Catalyst::Request' ); |
30 | ok( eval '$creq = ' . $response->content, 'Unserialize Catalyst::Request' ); |
31 | isa_ok( $creq, 'Catalyst::Request' ); |
32 | is( $creq->method, 'GET', 'Catalyst::Request method' ); |
33 | is_deeply( $creq->parameters, $parameters, 'Catalyst::Request parameters' ); |
34 | } |
35 | |
36 | { |
37 | my $creq; |
38 | |
39 | my $parameters = { |
40 | 'a' => [qw(A b C d E f G)], |
dd4e6fd2 |
41 | '%' => [ '%', '"', '& - &' ], |
42 | }; |
43 | |
44 | my $request = POST( 'http://localhost/dump/request/a/b?a=1&a=2&a=3', |
45 | 'Content' => $parameters, |
46 | 'Content-Type' => 'application/x-www-form-urlencoded' |
47 | ); |
48 | |
49 | # Query string. I'm not sure the order is consistent in all enviroments, |
50 | # we need to test this with: |
1408d0a4 |
51 | # [x] C::E::Test and C::E::HTTP |
52 | # [x] MP13 |
53 | # [x] MP19 |
54 | # [x] MP20 |
55 | # [x] CGI |
dd4e6fd2 |
56 | |
57 | unshift( @{ $parameters->{a} }, 1, 2, 3 ); |
58 | |
59 | ok( my $response = request($request), 'Request' ); |
60 | ok( $response->is_success, 'Response Successful 2xx' ); |
61 | is( $response->content_type, 'text/plain', 'Response Content-Type' ); |
62 | like( $response->content, qr/^bless\( .* 'Catalyst::Request' \)$/s, 'Content is a serialized Catalyst::Request' ); |
63 | ok( eval '$creq = ' . $response->content, 'Unserialize Catalyst::Request' ); |
64 | isa_ok( $creq, 'Catalyst::Request' ); |
65 | is( $creq->method, 'POST', 'Catalyst::Request method' ); |
66 | is_deeply( $creq->parameters, $parameters, 'Catalyst::Request parameters' ); |
67 | is_deeply( $creq->arguments, [qw(a b)], 'Catalyst::Request arguments' ); |
68 | is_deeply( $creq->uploads, {}, 'Catalyst::Request uploads' ); |
69 | is_deeply( $creq->cookies, {}, 'Catalyst::Request cookie' ); |
70 | } |