Added high performance version of the Sessions code as a branch
[catagits/Catalyst-Plugin-Session.git] / t / lib / SessionTestApp.pm
CommitLineData
95c6f6e8 1#!/usr/bin/perl
2
3package SessionTestApp;
4use Catalyst ( #
5 'SessionHP', #
6 'Session::Store::Dummy', #
7 'SessionHP::State::Cookie'
8);
9
10use strict;
11use warnings;
12
13my $max_lifetime = 6;
14my $min_lifetime = 3;
15
16__PACKAGE__->config(
17 session => {
18 max_lifetime => $max_lifetime,
19 min_lifetime => $min_lifetime,
20 }
21);
22
23sub login : Global {
24 my ( $self, $c ) = @_;
25 $c->session->{logged_in} = 1;
26 $c->res->output("logged in");
27}
28
29sub logout : Global {
30 my ( $self, $c ) = @_;
31 $c->res->output(
32 "logged out after " . $c->session->{counter} . " requests" );
33 $c->delete_session("logout");
34}
35
36sub page : Global {
37 my ( $self, $c ) = @_;
38 if ( $c->session->{logged_in} ) {
39 $c->res->output(
40 "you are logged in, session expires at " . $c->session_expires );
41 $c->session->{counter}++;
42 } else {
43 $c->res->output("please login");
44 }
45}
46
47# This action inspects the session which will cause it to be auto_vivified into
48# a hash. However we should not create a session because of this.
49sub inspect_session : Global {
50 my ( $self, $c ) = @_;
51
52 my $logged_in = $c->session->{logged_in};
53 $logged_in = 'undef' if !defined $logged_in;
54
55 $c->res->output("value of logged_in is '$logged_in'");
56}
57
58__PACKAGE__->setup;
59
60__PACKAGE__;
61