6 use Test::More tests => 10;
8 use Test::MockObject::Extends;
12 BEGIN { use_ok( $m = "Catalyst::Plugin::Session::State::Stash" ) }
14 # Mock a catalyst controller
16 Test::MockObject::Extends->new("Catalyst::Plugin::Session::State::Stash");
18 $cxt->set_always( config => {} );
19 $cxt->set_always( session => {} );
20 $cxt->set_always( stash => {} );
21 $cxt->set_false("debug");
24 $cxt->mock( sessionid => sub { shift; $sessionid = shift if @_; $sessionid } );
26 can_ok( $m, "setup_session" );
30 is( $cxt->config->{'session'}{stash_key},
31 '_session', "default cookie name is set" );
33 can_ok( $m, "get_session_id" );
35 ok( !$cxt->get_session_id, "no session id yet");
37 $cxt->set_always( stash => { '_session' => {id => 1}, 'session_id' => {id => 2}, 'other_thing' => { id => 3 } } );
39 is( $cxt->get_session_id, "1", "Pull newfound session id" );
41 $cxt->config->{'session'}{stash_key} = "session_id";
43 is( $cxt->get_session_id, "2", "Pull session id from second key" );
45 can_ok( $m, "set_session_id" );
47 # Check forwards config compatibility..
48 $cxt->config->{'Plugin::Session'} = {};
51 is( $cxt->config->{'Plugin::Session'}{stash_key},
52 '_session', "default cookie name is set when new stash key used" );
54 $cxt->config->{'Plugin::Session'}{stash_key} = "other_thing";
56 is( $cxt->get_session_id, "3", "Pull session id from key in new config" );