make sure finalize_session() is called after all other finalize() methods have run
Maurice Aubrey [Mon, 28 May 2007 21:16:50 +0000 (21:16 +0000)]
t/06_finalize.t [new file with mode: 0644]

diff --git a/t/06_finalize.t b/t/06_finalize.t
new file mode 100644 (file)
index 0000000..e4bdd40
--- /dev/null
@@ -0,0 +1,31 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use Test::More tests => 2;
+
+{
+  package MyTestPlugin;
+  use strict;
+
+  my $finalized = 0;
+  sub finalize_session { $finalized = 1 }
+
+  sub finalize { die "already finalized_session()" if $finalized }
+
+  # Structure inheritance so MyTestPlugin->finalize() is called *after* 
+  # Catalyst::Plugin::Session->finalize()
+  package TestApp;
+
+  use Catalyst qw/ Session Session::Store::Dummy Session::State::Cookie +MyTestPlugin /;
+  __PACKAGE__->config(session => { expires => 1000 });
+  __PACKAGE__->setup;
+}
+
+my $m;
+BEGIN { use_ok( $m = "Catalyst::Plugin::Session" ) }
+
+my $c = TestApp->new;
+eval { $c->finalize };
+ok(!$@, "finalize_session() called after all other finalize() methods");