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