flash_to_stash goodness
[catagits/Catalyst-Plugin-Session.git] / t / 03_flash.t
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5
6 use Test::More tests => 7;
7 use Test::MockObject::Extends;
8 use Test::Exception;
9
10 my $m;
11 BEGIN { use_ok( $m = "Catalyst::Plugin::Session" ) }
12
13 my $c = Test::MockObject::Extends->new( $m );
14
15 $c->set_always( get_session_data => { } );
16 $c->set_true( "store_session_data" );
17 $c->set_always( _sessionid => "deadbeef");
18 $c->set_always( config => { } );
19 $c->set_always( stash => { } );
20
21 $c->_load_flash;
22
23 is_deeply( $c->flash, {}, "nothing in flash");
24
25 $c->flash->{foo} = "moose";
26
27 $c->finalize;
28 $c->_load_flash;
29
30 is_deeply( $c->flash, { foo => "moose" }, "one key in flash" );
31
32 $c->flash->{bar} = "gorch";
33
34 is_deeply( $c->flash, { foo => "moose", bar => "gorch" }, "two keys in flash");
35
36 $c->finalize;
37 $c->_load_flash;
38
39 is_deeply( $c->flash, { bar => "gorch" }, "one key in flash" );
40
41 $c->finalize;
42 $c->_load_flash;
43
44 is_deeply( $c->flash, {}, "nothing in flash");
45
46 $c->flash->{bar} = "gorch";
47
48 $c->config->{session}{flash_to_stash} = 1;
49
50 $c->finalize;
51 $c->prepare_action;
52
53 is_deeply( $c->stash, { bar => "gorch" }, "flash copied to stash" );
54