1 package t::lib::TestSession;
23 $response_test = sub {
24 my ($response, $session_id, $check_expired) = @_;
29 my $r = $request_creator->();
31 my $s = Plack::Session->new(
39 ok(!$s->get('foo'), '... no value stored in foo for session');
42 $s->set( foo => 'bar' );
43 } '... set the value successfully in session';
45 is($s->get('foo'), 'bar', '... got the foo value back successfully from session');
47 my $resp = $r->new_response;
50 $s->finalize( $resp );
51 } '... finalized session successfully';
53 $response_test->( $resp, $sids[0] );
57 my $r = $request_creator->();
59 my $s = Plack::Session->new(
67 isnt($sids[0], $sids[1], "no same Session ID");
68 ok(!$s->get('foo'), '... no value stored for foo in session');
71 $s->set( foo => 'baz' );
72 } '... set the value successfully';
74 is($s->get('foo'), 'baz', '... got the foo value back successfully from session');
76 my $resp = $r->new_response;
79 $s->finalize( $resp );
80 } '... finalized session successfully';
82 $response_test->( $resp, $sids[1] );
86 my $r = $request_creator->({ plack_session => $sids[0] });
88 my $s = Plack::Session->new(
94 is($s->id, $sids[0], '... got a basic session id');
96 is($s->get('foo'), 'bar', '... got the value for foo back successfully from session');
100 } '... removed the foo value successfully from session';
102 ok(!$s->get('foo'), '... no value stored for foo in session');
104 my $resp = $r->new_response;
107 $s->finalize( $resp );
108 } '... finalized session successfully';
110 $response_test->( $resp, $sids[0] );
115 my $r = $request_creator->({ plack_session => $sids[1] });
117 my $s = Plack::Session->new(
123 is($s->id, $sids[1], '... got a basic session id');
125 is($s->get('foo'), 'baz', '... got the foo value back successfully from session');
127 my $resp = $r->new_response;
130 $s->finalize( $resp );
131 } '... finalized session successfully';
133 $response_test->( $resp, $sids[1] );
137 my $r = $request_creator->({ plack_session => $sids[0] });
139 my $s = Plack::Session->new(
145 is($s->id, $sids[0], '... got a basic session id');
147 ok(!$s->get('foo'), '... no value stored for foo in session');
150 $s->set( bar => 'baz' );
151 } '... set the bar value successfully in session';
153 my $resp = $r->new_response;
156 $s->finalize( $resp );
157 } '... finalized session successfully';
159 $response_test->( $resp, $sids[0] );
163 my $r = $request_creator->({ plack_session => $sids[0] });
165 my $s = Plack::Session->new(
171 is($s->get('bar'), 'baz', '... got the bar value back successfully from session');
175 } '... expired session successfully';
177 my $resp = $r->new_response;
180 $s->finalize( $resp );
181 } '... finalized session successfully';
183 $response_test->( $resp, $sids[0], 1 );
187 my $r = $request_creator->({ plack_session => $sids[0] });
189 my $s = Plack::Session->new(
196 isnt($s->id, $sids[0], 'expired ... got a new session id');
198 ok(!$s->get('bar'), '... no bar value stored');
200 my $resp = $r->new_response;
203 $s->finalize( $resp );
204 } '... finalized session successfully';
206 $response_test->( $resp, $sids[2] );
210 my $r = $request_creator->({ plack_session => $sids[1] });
212 my $s = Plack::Session->new(
218 is($s->id, $sids[1], '... got a basic session id');
220 is($s->get('foo'), 'baz', '... got the foo value back successfully from session');
222 my $resp = $r->new_response;
225 $s->finalize( $resp );
226 } '... finalized session successfully';
228 $response_test->( $resp, $sids[1] );
232 # wrong format session_id
233 my $r = $request_creator->({ plack_session => '../wrong' });
235 my $s = Plack::Session->new(
242 isnt('../wrong' => $s->id, '... regenerate session id');
244 ok(!$s->get('foo'), '... no value stored for foo in session');
247 $s->set( foo => 'baz' );
248 } '... set the value successfully';
250 is($s->get('foo'), 'baz', '... got the foo value back successfully from session');
252 my $resp = $r->new_response;
255 $s->finalize( $resp );
256 } '... finalized session successfully';
258 $response_test->( $resp, $s );