Ark
view release on metacpan or search on metacpan
t/plugin_session.t view on Meta::CPAN
like $@, qr/session is already finalized/;
};
subtest "can't remove" => sub {
my $c = ctx_get '/test_set';
local $@;
eval {
$c->session->remove('test');
};
like $@, qr/session is already finalized/;
};
subtest "can get" => sub {
my $c = ctx_get '/test_set';
local $@;
eval {
$c->session->get('test');
};
ok !$@;
};
};
{
my $res = request(GET => '/test_flash_set');
like( $res->header('Set-Cookie'), qr/testapp_session=/, 'session id ok');
is(get('/test_flash_get'), 'dummy_flash', 'flash get ok');
is(get('/test_flash_get'), '', 'flash cleaered ok');
}
{
is(get('/incr'), 1, 'increment first ok');
is(get('/incr'), 2, 'increment second ok');
reset_app;
is(get('/incr'), 1, 're-increment first ok'); # XXX: this is test for Ark::Test: should be sepalate test.
is(get('/incr'), 2, 're-increment second ok');
}
{
# sid regeneration
reset_app;
my $res;
$res = request(GET => '/incr');
is $res->content, 1, 'request ok';
my ($sid) = $res->header('Set-Cookie') =~ /testapp_session=(\w+)/;
ok $sid, 'sid ok';
$res = request(GET => '/regen');
is $res->content, 'regenerated', 'sid regenerated';
my ($new_sid) = $res->header('Set-Cookie') =~ /testapp_session=(\w+)/;
is get('/incr'), 2, 'session continued ok';
isnt $sid, $new_sid, 'but session_id updated ok';
is get('/regen_and_incr'), 3, 'modified session data and regenerated sid on the same request ok';
# old sid is now removed
my $request = HTTP::Request->new(GET => '/incr');
$request->header( Cookie => "testapp_session=$sid" );
is request($request)->content, 1, 'old session already expired';
}
done_testing;
( run in 0.737 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )