use Catalyst::Log;
use Catalyst::Utils;
use Catalyst::Controller;
+use Catalyst::Context;
use Devel::InnerPackage ();
use Module::Pluggable::Object ();
use Text::SimpleTable ();
engine_class context_class request_class response_class stats_class
setup_finished/;
+__PACKAGE__->context_class('Catalyst::Context');
__PACKAGE__->dispatcher_class('Catalyst::Dispatcher');
__PACKAGE__->engine_class('Catalyst::Engine::CGI');
__PACKAGE__->request_class('Catalyst::Request');
# into the application.
$class->context_class( ref $class || $class ) unless $class->context_class;
- my $c = $class->context_class->new({});
+ my $app = $class->new({});
+ my $c = $class->context_class->new( application => $app );
# For on-demand data
$c->request->_context($c);
$c->prepare_read;
# Parse the body unless the user wants it on-demand
- unless ( ref($c)->config->{parse_on_demand} ) {
+ unless ( $app->config->{parse_on_demand} ) {
$c->prepare_body;
}
}
use Moose;
use bytes;
use B::Hooks::EndOfScope ();
+use Catalyst;
use Catalyst::Exception::Detach;
use Catalyst::Exception::Go;
use Catalyst::Request;
debug
dispatcher_class
request_class
+ response_class
dispatcher
prepare
engine_class
setup_finalize
welcome_message
components
- context_class setup_actions
+ context_class
+ setup_actions
search_extra
root
parse_on_demand
my ( $self, $c ) = @_;
$c->res->content_type('text/html; charset=utf-8');
- my $name = ref($c)->config->{name} || join(' ', split('::', ref $c));
+ my $name = $c->config->{name} || join(' ', split('::', ref $c));
my ( $title, $error, $infos );
if ( $c->debug ) {
sub prepare_body {
my ( $self, $c ) = @_;
- my $appclass = ref($c) || $c;
if ( my $length = $self->read_length ) {
my $request = $c->request;
unless ( $request->_body ) {
my $type = $request->header('Content-Type');
$request->_body(HTTP::Body->new( $type, $length ));
- $request->_body->tmpdir( $appclass->config->{uploadtmp} )
- if exists $appclass->config->{uploadtmp};
+ $request->_body->tmpdir( $c->config->{uploadtmp} )
+ if exists $c->config->{uploadtmp};
}
while ( my $buffer = $self->read($c) ) {
PROXY_CHECK:
{
- unless ( ref($c)->config->{using_frontend_proxy} ) {
+ unless ( $c->config->{using_frontend_proxy} ) {
last PROXY_CHECK if $ENV{REMOTE_ADDR} ne '127.0.0.1';
- last PROXY_CHECK if ref($c)->config->{ignore_frontend_proxy};
+ last PROXY_CHECK if $c->config->{ignore_frontend_proxy};
}
last PROXY_CHECK unless $ENV{HTTP_X_FORWARDED_FOR};
# If we are running as a backend proxy, get the true hostname
PROXY_CHECK:
{
- unless ( ref($c)->config->{using_frontend_proxy} ) {
+ unless ( $c->config->{using_frontend_proxy} ) {
last PROXY_CHECK if $host !~ /localhost|127.0.0.1/;
- last PROXY_CHECK if ref($c)->config->{ignore_frontend_proxy};
+ last PROXY_CHECK if $c->config->{ignore_frontend_proxy};
}
last PROXY_CHECK unless $ENV{HTTP_X_FORWARDED_HOST};
--- /dev/null
+use strict;
+use warnings;
+
+package TestAppSimple;
+
+use Catalyst qw/
+ Test::MangleDollarUnderScore
+ Test::Errors
+ Test::Headers
+ Test::Plugin
+/;
+
+our $VERSION = '0.01';
+
+__PACKAGE__->config( name => 'TestAppStats', root => '/some/dir' );
+
+__PACKAGE__->setup;
+
+1;
+
+
--- /dev/null
+package TestAppSimple::Controller::Root;
+use base 'Catalyst::Controller';
+use Scalar::Util ();
+
+__PACKAGE__->config->{namespace} = '';
+
+sub index : Private {
+ my ( $self, $c ) = @_;
+ $c->res->body('root index');
+}
+
+sub some_action : Local {
+ my ( $self, $c ) = @_;
+ $c->res->body('some_action');
+}
+
+
+1;
--- /dev/null
+use FindBin;
+use lib "$FindBin::Bin/lib";
+use Catalyst::Test 'TestAppSimple', {default_host => 'default.com'};
+use Catalyst::Request;
+
+use Test::More;
+
+content_like('/',qr/root/,'root check');
+#content_like('/some_action',qr/some_action/,'some_action check');
+
+done_testing;
+