use strict;
use warnings;
+use Data::Dumper;
+
+__PACKAGE__->config->{session} = {
+ # needed for live_verify_user_agent.t; should be harmless for other tests
+ verify_user_agent => 1,
+};
+
sub login : Global {
my ( $self, $c ) = @_;
$c->session;
$c->delete_session("logout");
}
+sub set_session_variable : Global {
+ my ( $self, $c, $var, $val ) = @_;
+ $c->session->{$var} = $val;
+ $c->res->output("session variable set");
+}
+
+sub get_session_variable : Global {
+ my ( $self, $c, $var ) = @_;
+ my $val = $c->session->{$var} || 'n.a.';
+ $c->res->output("VAR_$var=$val");
+}
+
+sub get_sessid : Global {
+ my ( $self, $c ) = @_;
+ my $sid = $c->sessionid || 'n.a.';
+ $c->res->output("SID=$sid");
+}
+
+sub dump_session : Global {
+ my ( $self, $c ) = @_;
+ my $sid = $c->sessionid || 'n.a.';
+ my $dump = Dumper($c->session || 'n.a.');
+ $c->res->output("[SID=$sid]\n$dump");
+}
+
+sub change_sessid : Global {
+ my ( $self, $c ) = @_;
+ #$c->change_session_id;
+ $c->create_session_id;
+ $c->res->output("session id changed");
+}
+
sub page : Global {
my ( $self, $c ) = @_;
- if ( $c->sessionid ) {
- $c->res->output("you are logged in");
- $c->session->{counter}++;
+ if ( $c->session_is_valid ) {
+ $c->res->output("you are logged in, session expires at " . $c->session_expires);
+ $c->session->{counter}++;
}
else {
$c->res->output("please login");
}
}
+sub user_agent : Global {
+ my ( $self, $c ) = @_;
+ $c->res->output('UA=' . $c->req->user_agent);
+}
+
__PACKAGE__->setup;
__PACKAGE__;