Fix 5.80 bug which causes slurp to fail if called multiple times
[catagits/Catalyst-Runtime.git] / t / lib / TestApp / Controller / Root.pm
CommitLineData
32d5a0c5 1package TestApp::Controller::Root;
5ab21903 2use strict;
3use warnings;
32d5a0c5 4use base 'Catalyst::Controller';
5
6__PACKAGE__->config->{namespace} = '';
7
81e75875 8sub chain_root_index : Chained('/') PathPart('') Args(0) { }
9
53119b78 10sub zero : Path('0') {
11 my ( $self, $c ) = @_;
12 $c->res->header( 'X-Test-Class' => ref($self) );
13 $c->response->content_type('text/plain; charset=utf-8');
14 $c->forward('TestApp::View::Dump::Request');
15}
16
bcc7361a 17sub zerobody : Local {
18 my ($self, $c) = @_;
19 $c->res->body('0');
20}
21
22sub emptybody : Local {
23 my ($self, $c) = @_;
24 $c->res->body('');
25}
26
19c01ee1 27sub localregex : LocalRegex('^localregex$') {
28 my ( $self, $c ) = @_;
29 $c->res->header( 'X-Test-Class' => ref($self) );
30 $c->response->content_type('text/plain; charset=utf-8');
31 $c->forward('TestApp::View::Dump::Request');
32}
33
a202886b 34sub index : Private {
35 my ( $self, $c ) = @_;
36 $c->res->body('root index');
37}
38
39sub global_action : Private {
40 my ( $self, $c ) = @_;
41 $c->forward('TestApp::View::Dump::Request');
42}
43
44sub class_forward_test_method :Private {
45 my ( $self, $c ) = @_;
46 $c->response->headers->header( 'X-Class-Forward-Test-Method' => 1 );
47}
48
49sub loop_test : Local {
50 my ( $self, $c ) = @_;
51
52 for( 1..1001 ) {
53 $c->forward( 'class_forward_test_method' );
54 }
55}
56
57sub recursion_test : Local {
58 my ( $self, $c ) = @_;
59 $c->forward( 'recursion_test' );
60}
61
f23f1634 62sub base_href_test : Local {
63 my ( $self, $c ) = @_;
64
65 my $body = <<"EndOfBody";
66<html>
67 <head>
68 <base href="http://www.example.com/">
69 </head>
70 <body>
71 </body>
72</html>
73EndOfBody
74
75 $c->response->body($body);
76}
77
ffb43803 78sub body_semipredicate : Local {
79 my ($self, $c) = @_;
80 $c->res->body; # Old code tests length($c->res->body), which causes the value to be built (undef), which causes the predicate
81 $c->res->status( $c->res->has_body ? 500 : 200 ); # to return the wrong thing, resulting in a 500.
82 $c->res->body('Body');
83}
84
a0a66cb8 85sub end : Private {
86 my ($self,$c) = @_;
87}
88
32d5a0c5 891;