Fixed bug with updating session when expiry_threshold is set
[catagits/Catalyst-Plugin-Session.git] / t / live_expiry_threshold.t
CommitLineData
0421e89a 1#!/usr/bin/perl
2
3use strict;
4use warnings;
5
6use Test::More;
7
8BEGIN {
9 eval { require Catalyst::Plugin::Session::State::Cookie; Catalyst::Plugin::Session::State::Cookie->VERSION(0.03) }
10 or plan skip_all =>
11 "Catalyst::Plugin::Session::State::Cookie 0.03 or higher is required for this test";
12
13 eval {
14 require Test::WWW::Mechanize::Catalyst;
15 Test::WWW::Mechanize::Catalyst->VERSION(0.51);
16 }
17 or plan skip_all =>
18 'Test::WWW::Mechanize::Catalyst >= 0.51 is required for this test';
19}
20
21use lib "t/lib";
079b2fbe 22use Test::WWW::Mechanize::Catalyst "SessionExpiry";
0421e89a 23
24my $ua = Test::WWW::Mechanize::Catalyst->new;
25
079b2fbe 26my $res = $ua->get( "http://localhost/session_data_expires" );
27ok($res->is_success, "session_data_expires");
0421e89a 28
079b2fbe 29my $expiry = $res->decoded_content + 0;
30
31$res = $ua->get( "http://localhost/session_expires" );
32ok($res->is_success, "session_expires");
33is($res->decoded_content, $expiry, "session_expires == session_data_expires");
0421e89a 34
35sleep(1);
36
079b2fbe 37$res = $ua->get( "http://localhost/session_data_expires" );
38ok($res->is_success, "session_data_expires");
0421e89a 39
40is($res->decoded_content, $expiry, "expiration not updated");
41
079b2fbe 42$res = $ua->get( "http://localhost/session_expires" );
43ok($res->is_success, "session_expires");
44is($res->decoded_content, $expiry, "session_expires == session_data_expires");
45
3d03a2ba 46#
47
48$res = $ua->get( "http://localhost/update_session" );
49ok($res->is_success, "update_session");
0421e89a 50
079b2fbe 51$res = $ua->get( "http://localhost/session_data_expires" );
52ok($res->is_success, "session_data_expires");
53
54my $updated = $res->decoded_content + 0;
55ok($updated > $expiry, "expiration updated");
56
3d03a2ba 57$expiry = $updated;
58
59$res = $ua->get( "http://localhost/session_data_expires" );
60ok($res->is_success, "session_data_expires");
61
62is($res->decoded_content, $expiry, "expiration not updated");
63
64$res = $ua->get( "http://localhost/session_expires" );
65ok($res->is_success, "session_expires");
66is($res->decoded_content, $expiry, "session_expires == session_data_expires");
67
68sleep(10);
69
70$res = $ua->get( "http://localhost/session_data_expires" );
71ok($res->is_success, "session_data_expires");
72
73$updated = $res->decoded_content + 0;
74ok($updated > $expiry, "expiration updated");
75
079b2fbe 76$res = $ua->get( "http://localhost/session_expires" );
77ok($res->is_success, "session_expires");
78is($res->decoded_content, $updated, "session_expires == session_data_expires");
0421e89a 79
0421e89a 80
81done_testing;