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