add some tests to t/cat_test.t
[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
2a1463db 16sub login_without_address : Global {
17 my ( $self, $c ) = @_;
18 $c->session;
19 $c->log->debug($c->request->address);
20 delete $c->session->{__address};
21 $c->res->output("logged in (without address)");
22}
23
064c3709 24sub logout : Global {
25 my ( $self, $c ) = @_;
26 $c->res->output(
27 "logged out after " . $c->session->{counter} . " requests" );
28 $c->delete_session("logout");
29}
30
1b41775a 31sub logout_redirect : Global {
a2e23c04 32 my ( $self, $c ) = @_;
1b41775a 33
34 $c->logout;
35 $c->res->output("redirect from here");
36 $c->res->redirect( $c->uri_for('from_logout_redirect') );
37}
38
39sub from_logout_redirect : Global {
40 my ( $self, $c ) = @_;
41 $c->res->output( "got here from logout_redirect" );
a2e23c04 42}
43
064c3709 44sub set_session_variable : Global {
45 my ( $self, $c, $var, $val ) = @_;
46 $c->session->{$var} = $val;
47 $c->res->output("session variable set");
48}
49
50sub get_session_variable : Global {
51 my ( $self, $c, $var ) = @_;
52 my $val = $c->session->{$var} || 'n.a.';
53 $c->res->output("VAR_$var=$val");
54}
55
56sub get_sessid : Global {
57 my ( $self, $c ) = @_;
58 my $sid = $c->sessionid || 'n.a.';
59 $c->res->output("SID=$sid");
60}
61
62sub dump_session : Global {
63 my ( $self, $c ) = @_;
64 my $sid = $c->sessionid || 'n.a.';
65 my $dump = Dumper($c->session || 'n.a.');
66 $c->res->output("[SID=$sid]\n$dump");
67}
68
69sub change_sessid : Global {
70 my ( $self, $c ) = @_;
71 $c->change_session_id;
72 $c->res->output("session id changed");
73}
74
75sub page : Global {
76 my ( $self, $c ) = @_;
77 if ( $c->session_is_valid ) {
78 $c->res->output("you are logged in, session expires at " . $c->session_expires);
79 $c->session->{counter}++;
80 }
81 else {
82 $c->res->output("please login");
83 }
84}
85
86sub user_agent : Global {
87 my ( $self, $c ) = @_;
88 $c->res->output('UA=' . $c->req->user_agent);
89}
90
a491a59b 91sub accessor_test : Global {
92 my ( $self, $c ) = @_;
93
94 $c->session(
95 one => 1,
96 two => 2,
97 );
98
99 $c->session( {
100 three => 3,
101 four => 4,
102 },
103 );
104
105 $c->session->{five} = 5;
106
107 for my $key (keys %{ $c->session }) {
108 $c->res->write("$key: " . $c->session->{$key} . "\n");
109 }
110}
111
834ab0b8 112sub dump_these_loads_session : Global {
113 my ($self, $c) = @_;
114
115 $c->dump_these();
116 if ($c->_session) {
117 $c->res->write('LOADED')
118 }
119 else {
120 $c->res->write('NOT');
121 }
122}
123
601be17a 124sub change_session_expires : Global {
d32c2b5a 125 my ($self, $c) = @_;
601be17a 126 $c->change_session_expires(31536000);
d32c2b5a 127 $c->res->output($c->session_expires);
128}
129
71bde3b4 130sub reset_session_expires : Global {
131 my ($self, $c) = @_;
132 $c->reset_session_expires;
133 $c->res->output($c->session_expires);
134}
135
064c3709 1361;