12 use Plack::Session::State;
13 use Plack::Session::Store;
16 open my $in, '<', \do { my $d };
18 'psgi.version' => [ 1, 0 ],
20 'psgi.errors' => *STDERR,
21 'psgi.url_scheme' => 'http',
23 REQUEST_METHOD => 'GET',
25 my $r = Plack::Request->new( $env );
30 my $storage = Plack::Session::Store->new;
31 my $state = Plack::Session::State->new;
37 my $s = Plack::Session->new(
45 ok(!$s->get('foo'), '... no value stored in foo for session');
48 $s->set( foo => 'bar' );
49 } '... set the value successfully in session';
51 is($s->get('foo'), 'bar', '... got the foo value back successfully from session');
53 my $resp = $r->new_response;
56 $s->finalize( $resp );
57 } '... finalized sessio successfully';
63 my $s = Plack::Session->new(
71 isnt($sids[0], $sids[1], "no same Session ID");
72 ok(!$s->get('foo'), '... no value stored for foo in session');
75 $s->set( foo => 'baz' );
76 } '... set the value successfully';
78 is($s->get('foo'), 'baz', '... got the foo value back successfully from session');
80 my $resp = $r->new_response;
83 $s->finalize( $resp );
84 } '... finalized session successfully';
88 my $r = request({ plack_session => $sids[0] });
90 my $s = Plack::Session->new(
96 is($s->id, $sids[0], '... got a basic session id');
98 is($s->get('foo'), 'bar', '... got the value for foo back successfully from session');
102 } '... removed the foo value successfully from session';
104 ok(!$s->get('foo'), '... no value stored for foo in session');
106 my $resp = $r->new_response;
109 $s->finalize( $resp );
110 } '... finalized session successfully';
115 my $r = request({ 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';
135 my $r = request({ plack_session => $sids[0] });
137 my $s = Plack::Session->new(
143 is($s->id, $sids[0], '... got a basic session id');
145 ok(!$s->get('foo'), '... no value stored for foo in session');
148 $s->set( bar => 'baz' );
149 } '... set the bar value successfully in session';
151 my $resp = $r->new_response;
154 $s->finalize( $resp );
155 } '... finalized session successfully';
159 my $r = request({ plack_session => $sids[0] });
161 my $s = Plack::Session->new(
167 is($s->get('bar'), 'baz', '... got the bar value back successfully from session');
171 } '... expired session successfully';
175 my $r = request({ plack_session => $sids[0] });
177 my $s = Plack::Session->new(
184 isnt($s->id, $sids[0], 'expired ... got a new session id');
186 ok(!$s->get('bar'), '... no bar value stored');
190 my $r = request({ plack_session => $sids[1] });
192 my $s = Plack::Session->new(
198 is($s->id, $sids[1], '... got a basic session id');
200 is($s->get('foo'), 'baz', '... got the foo value back successfully from session');
202 my $resp = $r->new_response;
205 $s->finalize( $resp );
206 } '... finalized session successfully';