#!/usr/bin/perl
package RewritingTestApp::Controller::URI;
use strict;
use warnings;
use Test::More; # love singletons (sometimes)
use base qw/Catalyst::Controller/;
sub first_request : Global {
my ( $self, $c ) = @_;
$c->config->{session}{rewrite_body} = 1;
$c->config->{session}{rewrite_redirect} = 1;
ok( !$c->session_is_valid, "no session" );
$c->session->{counter} = 1;
$c->forward("add_some_html");
}
sub second_request : Global {
my ( $self, $c ) = @_;
$c->config->{session}{rewrite_body} = 1;
$c->config->{session}{rewrite_redirect} = 1;
ok( $c->session_is_valid, "session exists" );
is( ++$c->session->{counter}, 2, "counter is OK" );
$c->forward("add_some_html");
}
sub third_request : Global {
my ( $self, $c ) = @_;
$c->config->{session}{rewrite_body} = 1;
$c->config->{session}{rewrite_redirect} = 1;
ok( $c->session_is_valid, "session exists" );
is( ++$c->session->{counter}, 3, "counter is OK" );
$c->forward("add_some_html");
}
sub add_some_html : Private {
my ( $self, $c ) = @_;
# no using uri_for, because it's overloaded
my $counter = $c->session->{counter};
$c->response->content_type("text/html");
$c->response->body( <
I like Moose
counter: $counter
second
third
HTML
}
sub text_request : Global {
my ( $self, $c ) = @_;
$c->config->{session}{rewrite_body} = 1;
$c->config->{session}{rewrite_redirect} = 1;
$c->session->{counter} = 42;
$c->forward("add_some_html");
$c->response->content_type("text/plain") if $c->request->param("plain");
}
sub redirect : Global {
my ( $self, $c ) = @_;
$c->config->{session}{rewrite_body} = 1;
$c->config->{session}{rewrite_redirect} = 1;
$c->session->{counter} = 43;
$c->response->status(302);
$c->response->location( '/whatever' );
}
sub only_rewrite_redirect : Global {
my ( $self, $c ) = @_;
$c->config->{session}{rewrite_body} = 0;
$c->config->{session}{rewrite_redirect} = 1;
$c->session->{counter} = 43;
$c->response->status(302);
$c->response->location( '/whatever' );
}
sub dont_rewrite_redirect : Global {
my ( $self, $c ) = @_;
$c->config->{session}{rewrite_body} = 0;
$c->config->{session}{rewrite_redirect} = 0;
$c->session->{counter} = 43;
$c->response->status(302);
$c->response->location( '/whatever' );
}
sub only_rewrite_body : Global {
my ( $self, $c ) = @_;
$c->config->{session}{rewrite_body} = 1;
$c->config->{session}{rewrite_redirect} = 0;
$c->session->{counter} = 43;
$c->forward("add_some_html");
}
sub dont_rewrite_body : Global {
my ( $self, $c ) = @_;
$c->config->{session}{rewrite_body} = 0;
$c->config->{session}{rewrite_redirect} = 0;
$c->session->{counter} = 43;
$c->forward("add_some_html");
}
__PACKAGE__;
__END__