Catalyst-Action-RenderView-ErrorHandler
view release on metacpan or search on metacpan
"test" : {
"requires" : {
"Catalyst" : "0",
"Catalyst::Controller" : "0",
"Catalyst::Test" : "0",
"Catalyst::View" : "0",
"Catalyst::View::TT" : "0",
"File::Find" : "0",
"File::Temp" : "0",
"FindBin" : "0",
"HTTP::Request::AsCGI" : "0",
"Test::More" : "0.96",
"Text::Diff" : "0",
"base" : "0",
"lib" : "0"
}
}
},
"release_status" : "stable",
"resources" : {
"bugtracker" : {
- 'Andreas Marienborg <andremar@cpan.org>'
build_requires:
Catalyst: 0
Catalyst::Controller: 0
Catalyst::Test: 0
Catalyst::View: 0
Catalyst::View::TT: 0
File::Find: 0
File::Temp: 0
FindBin: 0
HTTP::Request::AsCGI: 0
Test::More: 0.96
Text::Diff: 0
base: 0
lib: 0
configure_requires:
ExtUtils::MakeMaker: 6.30
dynamic_config: 0
generated_by: 'Dist::Zilla version 4.300035, CPAN::Meta::Converter version 2.131560'
license: perl
meta-spec:
Makefile.PL view on Meta::CPAN
},
"TEST_REQUIRES" => {
"Catalyst" => 0,
"Catalyst::Controller" => 0,
"Catalyst::Test" => 0,
"Catalyst::View" => 0,
"Catalyst::View::TT" => 0,
"File::Find" => 0,
"File::Temp" => 0,
"FindBin" => 0,
"HTTP::Request::AsCGI" => 0,
"Test::More" => "0.96",
"Text::Diff" => 0,
"base" => 0,
"lib" => 0
},
"VERSION" => "0.100166",
"test" => {
"TESTS" => "t/*.t"
}
);
t/000-report-versions-tiny.t view on Meta::CPAN
eval { $v .= pmver('Catalyst::Action::RenderView','any version') };
eval { $v .= pmver('Catalyst::Controller','any version') };
eval { $v .= pmver('Catalyst::Test','any version') };
eval { $v .= pmver('Catalyst::View','any version') };
eval { $v .= pmver('Catalyst::View::TT','any version') };
eval { $v .= pmver('Class::Inspector','any version') };
eval { $v .= pmver('ExtUtils::MakeMaker','6.30') };
eval { $v .= pmver('File::Find','any version') };
eval { $v .= pmver('File::Temp','any version') };
eval { $v .= pmver('FindBin','any version') };
eval { $v .= pmver('HTTP::Request::AsCGI','any version') };
eval { $v .= pmver('MRO::Compat','any version') };
eval { $v .= pmver('Moose','any version') };
eval { $v .= pmver('Moose::Role','any version') };
eval { $v .= pmver('Pod::Coverage::TrustPod','any version') };
eval { $v .= pmver('Test::More','0.96') };
eval { $v .= pmver('Test::Pod','1.41') };
eval { $v .= pmver('Test::Pod::Coverage','1.08') };
eval { $v .= pmver('Text::Diff','any version') };
eval { $v .= pmver('base','any version') };
eval { $v .= pmver('lib','any version') };
t/01.usage.t view on Meta::CPAN
my $root = $FindBin::Bin;
my ($stderr, $old_stderr);
BEGIN {
no warnings 'redefine';
*Catalyst::Test::local_request = sub {
my ( $class, $request ) = @_;
require HTTP::Request::AsCGI;
my $cgi = HTTP::Request::AsCGI->new( $request, %ENV )->setup;
$class->handle_request;
return $cgi->restore->response;
};
}
#local $SIG{__DIE__} = sub {
#close STDERR;
#open(STDERR, ">&SAVEERR");
#print $stderr . "\n";
t/01.usage.t view on Meta::CPAN
}
sub run_tests {
# test first available view
is($stderr, undef, 'empty stderr at start');
reset_stderr();
{
my $expected = '200 request OK';
my $request =
HTTP::Request->new( GET => 'http://localhost:3000/test_ok' );
ok( my $response = request($request), 'Request' );
ok( $response->is_success, 'Response Successful 2xx' );
is( $response->header( 'Content-Type' ), 'text/html; charset=utf-8', 'Content Type' );
is( $response->code, 200, 'Response Code' );
is($response->content, $expected, 'Content OK' );
is( $stderr, '', "No stderr output");
}
reset_stderr();
# Lets test a dying action
{
my $expected = qr|500 error happened.*"Death by action at .*/lib/TestApp/Controller/Root.pm line \d+."|s;
my $request =
HTTP::Request->new( GET => 'http://localhost:3000/test_die' );
ok( my $response = request($request), 'Request' );
ok( ! $response->is_success, 'Response Successful 2xx' );
is( $response->header( 'Content-Type' ), 'text/html; charset=utf-8', 'Content Type' );
is( $response->code, 500, 'Response Code' );
my $content = $response->content;
like( $response->content, $expected, 'Content OK' );
like( $stderr,
qr|^\[error\] Caught exception in TestApp::Controller::Root->test_die "Death by action at [^\n]*/lib/TestApp/Controller/Root\.pm line \d+\."$|s
);
}
reset_stderr();
# lets test a dying view
{
my $expected = qr|5xx error happened.*"Death by view at .*/lib/TestApp/View/Default.pm line \d+."|s;
my $request =
HTTP::Request->new( GET => 'http://localhost:3000/test_view_death' );
ok( my $response = request($request), 'Request' );
ok( ! $response->is_success, 'Response Successful 2xx' );
is( $response->header( 'Content-Type' ), 'text/html; charset=utf-8', 'Content Type' );
is( $response->code, 501, 'Response Code' );
like( $response->content, $expected, 'Content OK' );
is( $stderr, '', "5xx erros should not be logged");
}
reset_stderr();
# lets try a 4xx error to test fallback
{
my $expected = 'Something awfull happened';
my $request =
HTTP::Request->new( GET => 'http://localhost:3000/test_4xx' );
ok( my $response = request($request), 'Request' );
ok( ! $response->is_success, 'Response Successful 2xx' );
is( $response->header( 'Content-Type' ), 'text/html; charset=utf-8', 'Content Type' );
is( $response->code, 401, 'Response Code' );
is( $response->content, $expected, 'Content OK' );
is( $stderr, '[error] Couldn\'t render template "file error - test_4xx: not found"' . "\n", "we cannot render the template");
}
reset_stderr();
# lets try a 404 error to render template
{
my $expected = qq{Page not found};
my $request =
HTTP::Request->new( GET => 'http://localhost:3000/test_404' );
ok( my $response = request($request), 'Request' );
ok( ! $response->is_success, 'Response Successful 2xx' );
is( $response->header( 'Content-Type' ), 'text/html; charset=utf-8', 'Content Type' );
is( $response->code, 404, 'Response Code' );
is( $response->content, $expected, 'Content OK' );
is( $stderr, '[error] Couldn\'t render template "file error - test_404: not found"' . "\n", "we cannot render the template");
}
reset_stderr();
# lets check if die supersedes redirect
{
my $request = HTTP::Request->
new( GET => 'http://localhost:3000/test_redirect_then_die' );
ok( my $response = request($request), 'Request' );
is( $response->code, 500, 'Should be internal server error');
is( + $response->redirects, 0, "No redirects happened");
is( $response->is_redirect, '', "we don't get a redirect response");
}
reset_stderr();
}
done_testing();
t/02.defaults.t view on Meta::CPAN
my $root = $FindBin::Bin;
my ($stderr, $old_stderr);
BEGIN {
no warnings 'redefine';
*Catalyst::Test::local_request = sub {
my ( $class, $request ) = @_;
require HTTP::Request::AsCGI;
my $cgi = HTTP::Request::AsCGI->new( $request, %ENV )->setup;
$class->handle_request;
return $cgi->restore->response;
};
}
#local $SIG{__DIE__} = sub {
#close STDERR;
#open(STDERR, ">&SAVEERR");
#print $stderr . "\n";
t/02.defaults.t view on Meta::CPAN
}
sub run_tests {
# test first available view
is($stderr, undef, 'empty stderr at start');
reset_stderr();
{
my $expected = 'Everything is OK';
my $request =
HTTP::Request->new( GET => 'http://localhost:3000/test_ok' );
ok( my $response = request($request), 'Request' );
ok( $response->is_success, 'Response Successful 2xx' );
is( $response->header( 'Content-Type' ), 'text/html; charset=utf-8', 'Content Type' );
is( $response->code, 200, 'Response Code' );
is($response->content, $expected, 'Content OK' );
is( $stderr, '', "No stderr output");
}
reset_stderr();
# Lets test a dying action
{
my $expected = qq{Something awfull happened};
my $request =
HTTP::Request->new( GET => 'http://localhost:3000/test_die' );
ok( my $response = request($request), 'Request' );
ok( ! $response->is_success, 'Response Successful 2xx' );
is( $response->header( 'Content-Type' ), 'text/html; charset=utf-8', 'Content Type' );
is( $response->code, 500, 'Response Code' );
my $content = $response->content;
is( $response->content, $expected, 'Content OK' );
like( $stderr,
qr|\[error\] Caught exception in TestApp2::Controller::Root->test_die "Death by action at .*/lib/TestApp2/Controller/Root.pm line \d+."|s
);
}
reset_stderr();
# lets try a 404 error to render template
{
my $expected = qq{Page not found};
my $request =
HTTP::Request->new( GET => 'http://localhost:3000/test_404' );
ok( my $response = request($request), 'Request' );
ok( ! $response->is_success, 'Response Successful 2xx' );
is( $response->header( 'Content-Type' ), 'text/html; charset=utf-8', 'Content Type' );
is( $response->code, 404, 'Response Code' );
is( $response->content, $expected, 'Content OK' );
is( $stderr, '[error] Couldn\'t render template "file error - test_404: not found"' . "\n", "we cannot render the template");
}
reset_stderr();
t/03.debug.t view on Meta::CPAN
my $root = $FindBin::Bin;
my ($stderr, $old_stderr);
BEGIN {
no warnings 'redefine';
*Catalyst::Test::local_request = sub {
my ( $class, $request ) = @_;
require HTTP::Request::AsCGI;
my $cgi = HTTP::Request::AsCGI->new( $request, %ENV )->setup;
$class->handle_request;
return $cgi->restore->response;
};
}
#local $SIG{__DIE__} = sub {
#close STDERR;
#open(STDERR, ">&SAVEERR");
#print $stderr . "\n";
t/03.debug.t view on Meta::CPAN
}
sub run_tests {
# test first available view
is($stderr, undef, 'empty stderr at start');
reset_stderr();
{
my $expected = 'Everything is OK';
my $request =
HTTP::Request->new( GET => 'http://localhost:3000/test_ok' );
ok( my $response = request($request), 'Request' );
ok( $response->is_success, 'Response Successful 2xx' );
is( $response->header( 'Content-Type' ), 'text/html; charset=utf-8', 'Content Type' );
is( $response->code, 200, 'Response Code' );
is($response->content, $expected, 'Content OK' );
isnt( $stderr, '', "No stderr output");
}
reset_stderr();
# Lets test a dying action
{
my $expected = qq{Something awfull happened};
my $request =
HTTP::Request->new( GET => 'http://localhost:3000/test_die' );
ok( my $response = request($request), 'Request' );
ok( ! $response->is_success, 'Response Successful 2xx' );
is( $response->header( 'Content-Type' ), 'text/html; charset=utf-8', 'Content Type' );
is( $response->code, 500, 'Response Code' );
my $content = $response->content;
isnt( $response->content, $expected, 'Content OK' );
isnt( $stderr, '[error] Caught exception in TestApp3->test_die "Death by action at ' . $root . '/lib/TestApp3.pm line 20."' . "\n");
}
t/04.debug_enable.t view on Meta::CPAN
my $root = $FindBin::Bin;
my ( $stderr, $old_stderr );
BEGIN {
no warnings 'redefine';
*Catalyst::Test::local_request = sub {
my ( $class, $request ) = @_;
require HTTP::Request::AsCGI;
my $cgi = HTTP::Request::AsCGI->new( $request, %ENV )->setup;
$class->handle_request;
return $cgi->restore->response;
};
}
open(SAVEERR, ">&STDERR");
close STDERR or print "cannot close STDERR\n";
open(STDERR, ">", \$stderr) or print "CAnnot open: $!\n";
t/04.debug_enable.t view on Meta::CPAN
}
sub run_tests {
# test first available view
is($stderr, undef, 'empty stderr at start');
reset_stderr();
{
my $expected = 'Everything is OK';
my $request =
HTTP::Request->new( GET => 'http://localhost:3000/test_ok' );
ok( my $response = request($request), 'Request' );
ok( $response->is_success, 'Response Successful 2xx' );
is( $response->header( 'Content-Type' ), 'text/html; charset=utf-8', 'Content Type' );
is( $response->code, 200, 'Response Code' );
is($response->content, $expected, 'Content OK' );
isnt( $stderr, '', "No stderr output");
}
reset_stderr();
# Lets test a dying action
{
my $expected = qq{500 error happened};
my $request =
HTTP::Request->new( GET => 'http://localhost:3000/test_die' );
ok( my $response = request($request), 'Request' );
ok( ! $response->is_success, 'Response Successful 2xx' );
is( $response->header( 'Content-Type' ), 'text/html; charset=utf-8', 'Content Type' );
is( $response->code, 500, 'Response Code' );
my $content = $response->content;
isnt( $response->content, $expected, 'Content OK' );
isnt( $stderr, '[error] Caught exception in TestApp4->test_die "Death by action at ' . $root . '/lib/TestApp4.pm line 20."' . "\n");
}
reset_stderr();
# lets try a 404 error to render template
{
my $expected = qq{Page not found};
my $request =
HTTP::Request->new( GET => 'http://localhost:3000/test_404' );
ok( my $response = request($request), 'Request' );
ok( ! $response->is_success, 'Response Successful 2xx' );
is( $response->header( 'Content-Type' ), 'text/html; charset=utf-8', 'Content Type' );
is( $response->code, 404, 'Response Code' );
is( $response->content, $expected, 'Content OK' );
like( $stderr, qr|\[error\] Couldn\'t render template "file error - test_404: not found| );
}
reset_stderr();
( run in 0.617 second using v1.01-cache-2.11-cpan-de7293f3b23 )