From: Mark Ellis Date: Fri, 14 Jun 2013 12:11:42 +0000 (+0200) Subject: Fixed bug where if encoding was set in the config file it wasn't used, X-Git-Tag: 5.90041~5 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=commitdiff_plain;h=7cc51a2eb3005f91064c24141551628fc599f990 Fixed bug where if encoding was set in the config file it wasn't used, it had to be set in app.pm->config --- diff --git a/lib/Catalyst.pm b/lib/Catalyst.pm index 4e62289..d796e12 100644 --- a/lib/Catalyst.pm +++ b/lib/Catalyst.pm @@ -3001,7 +3001,7 @@ the plugin name does not begin with C. () } : $_ } @$plugins ]; - unshift @$plugins, $class->_default_plugins; + push @$plugins, $class->_default_plugins; $plugins = Data::OptList::mkopt($plugins || []); my @plugins = map { diff --git a/t/encoding_set_in_app.t b/t/encoding_set_in_app.t new file mode 100644 index 0000000..976760a --- /dev/null +++ b/t/encoding_set_in_app.t @@ -0,0 +1,15 @@ +use strict; +use warnings; + +use FindBin '$Bin'; +use lib "$Bin/lib"; + +use Test::More; + +#for this test encoding => 'UTF-8' is set in TestAppEncodingSetInApp.pm +use Catalyst::Test 'TestAppEncodingSetInApp'; + +my ( undef, $c ) = ctx_request('/'); +isa_ok( $c->encoding, 'Encode::utf8', '$c->encoding' ); + +done_testing; diff --git a/t/encoding_set_in_config.t b/t/encoding_set_in_config.t new file mode 100644 index 0000000..d15d4df --- /dev/null +++ b/t/encoding_set_in_config.t @@ -0,0 +1,15 @@ +use strict; +use warnings; + +use FindBin '$Bin'; +use lib "$Bin/lib"; + +use Test::More; + +#for this test encoding => 'UTF-8' is set in testappencodingsetinconfig.json +use Catalyst::Test 'TestAppEncodingSetInConfig'; + +my ( undef, $c ) = ctx_request('/'); +isa_ok( $c->encoding, 'Encode::utf8', '$c->encoding' ); + +done_testing; diff --git a/t/lib/Catalyst/Plugin/Test/Plugin.pm b/t/lib/Catalyst/Plugin/Test/Plugin.pm index f4f835b..0ec67b3 100644 --- a/t/lib/Catalyst/Plugin/Test/Plugin.pm +++ b/t/lib/Catalyst/Plugin/Test/Plugin.pm @@ -11,6 +11,8 @@ use base qw/Class::Data::Inheritable/; sub setup { my $c = shift; $c->ran_setup('1'); + + return $c->next::method( @_ ); } sub prepare { diff --git a/t/lib/TestAppEncodingSetInApp.pm b/t/lib/TestAppEncodingSetInApp.pm new file mode 100644 index 0000000..4869b94 --- /dev/null +++ b/t/lib/TestAppEncodingSetInApp.pm @@ -0,0 +1,14 @@ +package TestAppEncodingSetInApp; +use Moose; + +use Catalyst; + +extends 'Catalyst'; + +__PACKAGE__->config( + encoding => 'UTF-8', +); + +__PACKAGE__->setup; + +1; diff --git a/t/lib/TestAppEncodingSetInApp/Controller/Root.pm b/t/lib/TestAppEncodingSetInApp/Controller/Root.pm new file mode 100644 index 0000000..608f2af --- /dev/null +++ b/t/lib/TestAppEncodingSetInApp/Controller/Root.pm @@ -0,0 +1,15 @@ +package TestAppEncodingSetInApp::Controller::Root; +use Moose; +use namespace::autoclean; + +BEGIN { extends 'Catalyst::Controller'; } + +__PACKAGE__->config(namespace => ''); + +sub default: Local{ + my ( $self, $c ) = @_; + + $c->res->body(''); +} + +1; diff --git a/t/lib/TestAppEncodingSetInConfig.pm b/t/lib/TestAppEncodingSetInConfig.pm new file mode 100644 index 0000000..7abd703 --- /dev/null +++ b/t/lib/TestAppEncodingSetInConfig.pm @@ -0,0 +1,10 @@ +package TestAppEncodingSetInConfig; +use Moose; + +use Catalyst qw/ConfigLoader/; + +extends 'Catalyst'; + +__PACKAGE__->setup; + +1; diff --git a/t/lib/TestAppEncodingSetInConfig/Controller/Root.pm b/t/lib/TestAppEncodingSetInConfig/Controller/Root.pm new file mode 100644 index 0000000..6362e93 --- /dev/null +++ b/t/lib/TestAppEncodingSetInConfig/Controller/Root.pm @@ -0,0 +1,15 @@ +package TestAppEncodingSetInConfig::Controller::Root; +use Moose; +use namespace::autoclean; + +BEGIN { extends 'Catalyst::Controller'; } + +__PACKAGE__->config(namespace => ''); + +sub default: Local{ + my ( $self, $c ) = @_; + + $c->res->body(''); +} + +1; diff --git a/t/lib/TestAppEncodingSetInConfig/testappencodingsetinconfig.json b/t/lib/TestAppEncodingSetInConfig/testappencodingsetinconfig.json new file mode 100644 index 0000000..2b8b413 --- /dev/null +++ b/t/lib/TestAppEncodingSetInConfig/testappencodingsetinconfig.json @@ -0,0 +1,3 @@ +{ + "encoding": "UTF-8" +}