Dancer2
view release on metacpan or search on metacpan
t/classes/Dancer2-Core-Request/new.t view on Meta::CPAN
get => {
y => 2, meth => 'get',
},
post => {
x => 1, meth => 'post',
},
);
is( $request->path, '/', 'path is set' );
is( $request->method, 'POST', 'method is set' );
is_deeply(
scalar( $request->params ),
$exp_params{'mixed'},
'params are OK',
);
is_deeply(
scalar( $request->params('body') ),
$exp_params{'post'},
'body params are OK',
);
is_deeply(
scalar( $request->params('query') ),
$exp_params{'get'},
'query params are OK',
);
return psgi_ok;
} );
my $req = POST '/?y=2&meth=get',
{ x => 1, meth => 'post' };
ok(
$test->request($req)->is_success,
'Request successful',
);
}
sub test_all_params {
test_get_params;
test_post_params;
test_mixed_params;
}
subtest 'Defaults' => sub {
my $test = Plack::Test->create( sub {
my $env = shift;
my $request = Dancer2::Core::Request->new( env => $env );
isa_ok( $request, 'Dancer2::Core::Request' );
can_ok( $request, 'env' );
isa_ok( $request->env, 'HASH' );
# http env keys
my @http_env_keys = qw<
accept accept_charset accept_encoding accept_language
connection keep_alive referer user_agent x_requested_with
>;
can_ok( $request, @http_env_keys );
is(
$request->$_,
$request->env->{"HTTP_$_"},
"HTTP ENV key $_",
) for @http_env_keys;
is(
$request->agent,
$request->user_agent,
'agent as alias to user_agent',
);
is(
$request->remote_address,
$request->address,
'remote_address as alias to address',
);
# variables
$request->var( foo => 'bar' );
is_deeply(
$request->vars,
{ foo => 'bar' },
'Setting variables using DSL',
);
is( $request->var('foo'), 'bar', 'Read single variable' );
$request->var( foo => 'baz' );
is_deeply(
$request->vars,
{ foo => 'baz' },
'Overwriting variables using vars() method',
);
is( $request->var('foo'), 'baz', 'Read variable' );
is( $request->path, '/defaults', 'Default path' );
is( $request->path_info, '/defaults', 'Default path_info' );
is( $request->method, 'GET', 'Default method' );
is( $request->id, 1, 'Correct request ID' );
my %aliases = (
address => 'REMOTE_ADDR',
remote_host => 'REMOTE_HOST',
protocol => 'SERVER_PROTOCOL',
port => 'SERVER_PORT',
request_uri => 'REQUEST_URI',
user => 'REMOTE_USER',
script_name => 'SCRIPT_NAME',
);
is(
$request->$_,
( run in 2.424 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )