File: live_app.t

package info (click to toggle)
libcatalyst-plugin-session-perl 0.44-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 284 kB
  • sloc: perl: 937; makefile: 2
file content (122 lines) | stat: -rw-r--r-- 4,230 bytes parent folder | download | duplicates (2)
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
use strict;
use warnings;

use Test::Needs {
  'Catalyst::Plugin::Authentication'          => '0',
  'Catalyst::Plugin::Session::State::Cookie'  => '0.03',
};

use Test::More;

use lib "t/lib";

use MiniUA;

my $ua1 = MiniUA->new('SessionTestApp');
my $ua2 = MiniUA->new('SessionTestApp');

my $res1 = $ua1->get( 'http://localhost/page');
my $res2 = $ua2->get( 'http://localhost/page');
ok $_->is_success, 'initial get' for $res1, $res2;

like $res1->content, qr/please login/, 'ua1 not logged in';
like $res2->content, qr/please login/, 'ua2 not logged in';

$res1 = $ua1->get( 'http://localhost/login');
ok $res1->is_success, 'log ua1 in';
like $res1->content, qr/logged in/, 'ua1 logged in';

$res1 = $ua1->get( 'http://localhost/page');
$res2 = $ua2->get( 'http://localhost/page');
ok $_->is_success, 'get main page' for $res1, $res2;

like $res1->content, qr/you are logged in/, 'ua1 logged in';
like $res2->content, qr/please login/, 'ua2 not logged in';

$res2 = $ua2->get( 'http://localhost/login');
ok $res2->is_success, 'log ua2 in';
like $res2->content, qr/logged in/, 'ua2 logged in';

$res1 = $ua1->get( 'http://localhost/page');
$res2 = $ua2->get( 'http://localhost/page');
ok $_->is_success, 'get main page' for $res1, $res2;

like $res1->content, qr/you are logged in/, 'ua1 logged in';
like $res2->content, qr/you are logged in/, 'ua2 logged in';

my ( $u1_expires ) = ($res1->content =~ /(\d+)$/);
my ( $u2_expires ) = ($res2->content =~ /(\d+)$/);

sleep 1;

$res1 = $ua1->get( 'http://localhost/page');
$res2 = $ua2->get( 'http://localhost/page');
ok $_->is_success, 'get main page' for $res1, $res2;

like $res1->content, qr/you are logged in/, 'ua1 logged in';
like $res2->content, qr/you are logged in/, 'ua2 logged in';

my ( $u1_expires_updated ) = ($res1->content =~ /(\d+)$/);
my ( $u2_expires_updated ) = ($res2->content =~ /(\d+)$/);

cmp_ok( $u1_expires, "<", $u1_expires_updated, "expiry time updated");
cmp_ok( $u2_expires, "<", $u2_expires_updated, "expiry time updated");

$res2 = $ua2->get( 'http://localhost/logout');
ok $res2->is_success, 'log ua2 out';
like $res2->content, qr/logged out/, 'ua2 logged out';
like $res2->content, qr/after 2 requests/,
    'ua2 made 2 requests for page in the session';

$res1 = $ua1->get( 'http://localhost/page');
$res2 = $ua2->get( 'http://localhost/page');
ok $_->is_success, 'get main page' for $res1, $res2;

like $res1->content, qr/you are logged in/, 'ua1 logged in';
like $res2->content, qr/please login/, 'ua2 not logged in';

$res1 = $ua1->get( 'http://localhost/logout');
ok $res1->is_success, 'log ua1 out';
like $res1->content, qr/logged out/, 'ua1 logged out';
like $res1->content, qr/after 4 requests/,
    'ua1 made 4 requests for page in the session';

$res1 = $ua1->get( 'http://localhost/page');
$res2 = $ua2->get( 'http://localhost/page');
ok $_->is_success, 'get main page' for $res1, $res2;

like $res1->content, qr/please login/, 'ua1 not logged in';
like $res2->content, qr/please login/, 'ua2 not logged in';

my $ua3 = MiniUA->new('SessionTestApp');
my $res3 = $ua3->get( 'http://localhost/login');
ok $res3->is_success, 'log ua3 in';
$res3 = $ua3->get( 'http://localhost/dump_these_loads_session');
ok $res3->is_success;
like $res3->content, qr/NOT/;


my $ua4 = MiniUA->new('SessionTestApp');
my $res4 = $ua4->get( 'http://localhost/page');
ok $res4->is_success, 'initial get';
like $res4->content, qr/please login/, 'ua4 not logged in';
$res4 = $ua4->get( 'http://localhost/login');
ok $res4->is_success, 'log ua4 in';
like $res4->content, qr/logged in/, 'ua4 logged in';

$res4 = $ua4->get( "http://localhost/page");
ok +$res4->is_success, "get page";
my ( $ua4_expires1 ) = ($res4->content =~ /(\d+)$/);
$res4 = $ua4->get( "http://localhost/page");
ok +$res4->is_success, "get page";
my ( $ua4_expires2 ) = ($res4->content =~ /(\d+)$/);
is( $ua4_expires1, $ua4_expires2, 'expires has not changed' );

$res4 = $ua4->get( "http://localhost/change_session_expires");
ok +$res4->is_success, "get page";
$res4 = $ua4->get( "http://localhost/page" );
ok +$res4->is_success, "get page";
my ( $ua4_expires3 ) = ($res4->content =~ /(\d+)$/);
ok( $ua4_expires3 > ( $ua4_expires1 + 30000000), 'expires has been extended' );

done_testing;