Version 0.31
[catagits/Catalyst-Plugin-Session.git] / t / lib / SessionTestApp / Controller / Root.pm
CommitLineData
064c3709 1package SessionTestApp::Controller::Root;
2use strict;
3use warnings;
4use Data::Dumper;
5
6use base qw/Catalyst::Controller/;
7
8__PACKAGE__->config( namespace => '' );
9
10sub login : Global {
11 my ( $self, $c ) = @_;
12 $c->session;
13 $c->res->output("logged in");
14}
15
16sub logout : Global {
17 my ( $self, $c ) = @_;
18 $c->res->output(
19 "logged out after " . $c->session->{counter} . " requests" );
20 $c->delete_session("logout");
21}
22
23sub set_session_variable : Global {
24 my ( $self, $c, $var, $val ) = @_;
25 $c->session->{$var} = $val;
26 $c->res->output("session variable set");
27}
28
29sub get_session_variable : Global {
30 my ( $self, $c, $var ) = @_;
31 my $val = $c->session->{$var} || 'n.a.';
32 $c->res->output("VAR_$var=$val");
33}
34
35sub get_sessid : Global {
36 my ( $self, $c ) = @_;
37 my $sid = $c->sessionid || 'n.a.';
38 $c->res->output("SID=$sid");
39}
40
41sub dump_session : Global {
42 my ( $self, $c ) = @_;
43 my $sid = $c->sessionid || 'n.a.';
44 my $dump = Dumper($c->session || 'n.a.');
45 $c->res->output("[SID=$sid]\n$dump");
46}
47
48sub change_sessid : Global {
49 my ( $self, $c ) = @_;
50 $c->change_session_id;
51 $c->res->output("session id changed");
52}
53
54sub page : Global {
55 my ( $self, $c ) = @_;
56 if ( $c->session_is_valid ) {
57 $c->res->output("you are logged in, session expires at " . $c->session_expires);
58 $c->session->{counter}++;
59 }
60 else {
61 $c->res->output("please login");
62 }
63}
64
65sub user_agent : Global {
66 my ( $self, $c ) = @_;
67 $c->res->output('UA=' . $c->req->user_agent);
68}
69
a491a59b 70sub accessor_test : Global {
71 my ( $self, $c ) = @_;
72
73 $c->session(
74 one => 1,
75 two => 2,
76 );
77
78 $c->session( {
79 three => 3,
80 four => 4,
81 },
82 );
83
84 $c->session->{five} = 5;
85
86 for my $key (keys %{ $c->session }) {
87 $c->res->write("$key: " . $c->session->{$key} . "\n");
88 }
89}
90
834ab0b8 91sub dump_these_loads_session : Global {
92 my ($self, $c) = @_;
93
94 $c->dump_these();
95 if ($c->_session) {
96 $c->res->write('LOADED')
97 }
98 else {
99 $c->res->write('NOT');
100 }
101}
102
064c3709 1031;