Commit | Line | Data |
642b19cf |
1 | #!/usr/bin/perl |
2 | |
3 | use strict; |
4 | use warnings; |
5 | |
6 | use Test::More tests => 8; |
7 | use Test::MockObject; |
8 | use Test::MockObject::Extends; |
9 | |
10 | # Get a stash |
11 | my $m; |
12 | BEGIN { use_ok( $m = "Catalyst::Plugin::Session::State::Stash" ) } |
13 | |
14 | # Mock a catalyst controller |
15 | my $cxt = |
16 | Test::MockObject::Extends->new("Catalyst::Plugin::Session::State::Stash"); |
17 | |
18 | $cxt->set_always( config => {} ); |
19 | $cxt->set_always( session => {} ); |
20 | $cxt->set_always( stash => {} ); |
21 | $cxt->set_false("debug"); |
22 | |
23 | my $sessionid; |
24 | $cxt->mock( sessionid => sub { shift; $sessionid = shift if @_; $sessionid } ); |
25 | |
26 | can_ok( $m, "setup_session" ); |
27 | |
28 | $cxt->setup_session; |
29 | |
30 | is( $cxt->config->{session}{stash_key}, |
31 | '_session', "default cookie name is set" ); |
32 | |
33 | can_ok( $m, "get_session_id" ); |
34 | |
35 | ok( !$cxt->get_session_id, "no session id yet"); |
36 | |
37 | $cxt->set_always( stash => { '_session' => {id => 1}, 'session_id' => {id => 2} } ); |
38 | |
39 | is( $cxt->get_session_id, "1", "Pull newfound session id" ); |
40 | |
41 | $cxt->config->{session}{stash_key} = "session_id"; |
42 | |
43 | is( $cxt->get_session_id, "2", "Pull session id from second key" ); |
44 | |
45 | can_ok( $m, "set_session_id" ); |