X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Flib%2FTestApp%2FController%2FRoot.pm;h=8541e2ec67395cdbef9c0d674b637d023210a902;hb=8a1b06bea91f32966b5f067d6502209e0338827f;hp=fc88317f26e6d9979f28ad7ada9800c67a03332d;hpb=53119b7876049abfe0d4e4bea5e85724dd4778d7;p=catagits%2FCatalyst-Runtime.git
diff --git a/t/lib/TestApp/Controller/Root.pm b/t/lib/TestApp/Controller/Root.pm
index fc88317..8541e2e 100644
--- a/t/lib/TestApp/Controller/Root.pm
+++ b/t/lib/TestApp/Controller/Root.pm
@@ -1,6 +1,8 @@
package TestApp::Controller::Root;
-
+use strict;
+use warnings;
use base 'Catalyst::Controller';
+use utf8;
__PACKAGE__->config->{namespace} = '';
@@ -13,4 +15,132 @@ sub zero : Path('0') {
$c->forward('TestApp::View::Dump::Request');
}
+sub zerobody : Local {
+ my ($self, $c) = @_;
+ $c->res->body('0');
+}
+
+sub emptybody : Local {
+ my ($self, $c) = @_;
+ $c->res->body('');
+}
+
+sub index : Private {
+ my ( $self, $c ) = @_;
+ $c->res->body('root index');
+}
+
+sub global_action : Private {
+ my ( $self, $c ) = @_;
+ $c->forward('TestApp::View::Dump::Request');
+}
+
+sub class_forward_test_method :Private {
+ my ( $self, $c ) = @_;
+ $c->response->headers->header( 'X-Class-Forward-Test-Method' => 1 );
+}
+
+sub loop_test : Local {
+ my ( $self, $c ) = @_;
+
+ for( 1..1001 ) {
+ $c->forward( 'class_forward_test_method' );
+ }
+}
+
+sub recursion_test : Local {
+ my ( $self, $c ) = @_;
+ no warnings 'recursion';
+ $c->forward( 'recursion_test' );
+}
+
+sub base_href_test : Local {
+ my ( $self, $c ) = @_;
+
+ my $body = <<"EndOfBody";
+
+
+
+
+
+
+
+EndOfBody
+
+ $c->response->body($body);
+}
+
+sub body_semipredicate : Local {
+ my ($self, $c) = @_;
+ $c->res->body; # Old code tests length($c->res->body), which causes the value to be built (undef), which causes the predicate
+ $c->res->status( $c->res->has_body ? 500 : 200 ); # to return the wrong thing, resulting in a 500.
+ $c->res->body('Body');
+}
+
+
+sub test_redirect :Global {
+ my ($self, $c) = @_;
+ # Don't set content_type
+ # Don't set body
+ $c->res->redirect('/go_here');
+ # route for /go_here doesn't exist
+ # it is only for checking HTTP response code, content-type etc.
+}
+
+sub test_redirect_uri_for :Global {
+ my ($self, $c) = @_;
+ # Don't set content_type
+ # Don't set body
+ $c->res->redirect($c->uri_for('/go_here'));
+ # route for /go_here doesn't exist
+ # it is only for checking HTTP response code, content-type etc.
+}
+
+sub test_redirect_with_contenttype :Global {
+ my ($self, $c) = @_;
+ # set content_type but don't set body
+ $c->res->content_type('image/jpeg');
+ $c->res->redirect('/go_here');
+ # route for /go_here doesn't exist
+ # it is only for checking HTTP response code, content-type etc.
+}
+
+sub test_redirect_with_content :Global {
+ my ($self, $c) = @_;
+ $c->res->content_type('text/plain');
+ $c->res->body('Please kind sir, I beg you to go to /go_here.');
+ $c->res->redirect('/go_here');
+ # route for /go_here doesn't exist
+ # it is only for checking HTTP response code, content-type etc.
+}
+
+sub test_remove_body_with_304 :Global {
+ my ($self, $c) = @_;
+ $c->res->status(304);
+ $c->res->content_type('text/html');
+ $c->res->body("Body should not be set");
+}
+
+sub test_remove_body_with_204 :Global {
+ my ($self, $c) = @_;
+ $c->res->status(204);
+ $c->res->content_type('text/html');
+ $c->res->body("Body should not be set");
+}
+
+sub test_remove_body_with_100 :Global {
+ my ($self, $c) = @_;
+ $c->res->status(100);
+ $c->res->body("Body should not be set");
+}
+
+sub test_nobody_with_100 :Global {
+ my ($self, $c) = @_;
+ $c->res->status(100);
+}
+
+sub end : Private {
+ my ($self,$c) = @_;
+}
+
1;