Commit | Line | Data |
134d6c1f |
1 | use strict; |
2 | use warnings FATAL => 'all'; |
3 | |
4 | use Test::More qw(no_plan); |
5 | |
b6bf9ed3 |
6 | use Web::Dispatch::ParamParser; |
134d6c1f |
7 | |
134d6c1f |
8 | my $param_sample = 'foo=bar&baz=quux&foo=%2F'; |
9 | my $unpacked = { |
10 | baz => [ |
11 | "quux" |
12 | ], |
13 | foo => [ |
14 | "bar", |
15 | "/" |
16 | ] |
17 | }; |
18 | |
19 | is_deeply( |
b6bf9ed3 |
20 | Web::Dispatch::ParamParser::_unpack_params('foo=bar&baz=quux&foo=%2F'), |
134d6c1f |
21 | $unpacked, |
22 | 'Simple unpack ok' |
23 | ); |
24 | |
25 | my $env = { 'QUERY_STRING' => $param_sample }; |
26 | |
27 | is_deeply( |
b6bf9ed3 |
28 | Web::Dispatch::ParamParser::get_unpacked_query_from($env), |
134d6c1f |
29 | $unpacked, |
30 | 'Dynamic unpack ok' |
31 | ); |
32 | |
33 | is_deeply( |
b6bf9ed3 |
34 | $env->{+Web::Dispatch::ParamParser::UNPACKED_QUERY}, |
134d6c1f |
35 | $unpacked, |
36 | 'Unpack cached ok' |
37 | ); |
38 | |
ca2e9fb7 |
39 | sub FakeBody::param { { baz => "quux", foo => [ "bar", "/" ] } } |
40 | |
41 | my $body_env = { |
42 | CONTENT_TYPE => "multipart/form-data", |
43 | CONTENT_LENGTH => 1, |
44 | +Web::Dispatch::ParamParser::UNPACKED_BODY_OBJECT => [ bless {}, "FakeBody" ] |
45 | }; |
46 | |
47 | is_deeply( |
48 | Web::Dispatch::ParamParser::get_unpacked_body_from($body_env), |
49 | $unpacked, |
50 | 'Body cached multipart ok' |
51 | ); |
52 | |
134d6c1f |
53 | 1; |