foo
[catagits/Catalyst-Plugin-Session.git] / t / 06_finalize.t
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5
6 use Test::More;
7
8 BEGIN {
9     if ( eval { require Catalyst::Plugin::Session::State::Cookie } ) {
10         plan tests => 3;
11     } else {
12         plan skip_all => "Catalyst::Plugin::Session::State::Cookie required";
13     }
14 }
15
16 my $finalized = 0;
17
18 {
19   package TestPlugin;
20
21   sub finalize_session { $finalized = 1 }
22
23   sub finalize { die "already finalized_session()" if $finalized }
24
25   # Structure inheritance so TestPlugin->finalize() is called *after* 
26   # Catalyst::Plugin::Session->finalize()
27   package TestApp;
28
29   use Catalyst qw/
30     Session Session::Store::Dummy Session::State::Cookie +TestPlugin 
31   /;
32   __PACKAGE__->setup;
33 }
34
35 BEGIN { use_ok('Catalyst::Plugin::Session') }
36
37 my $c = TestApp->new;
38 eval { $c->finalize };
39 ok(!$@, "finalize_session() called after all other finalize() methods");
40 ok($finalized, "finalize_session() called");