[Catalyst-commits] r10118 - in Catalyst-Runtime/5.80/trunk: . t
t/lib
t0m at dev.catalyst.perl.org
t0m at dev.catalyst.perl.org
Wed May 13 18:15:19 GMT 2009
Author: t0m
Date: 2009-05-13 18:15:18 +0000 (Wed, 13 May 2009)
New Revision: 10118
Added:
Catalyst-Runtime/5.80/trunk/t/lib/TestAppPluginWithConstructor.pm
Catalyst-Runtime/5.80/trunk/t/lib/TestPluginWithConstructor.pm
Modified:
Catalyst-Runtime/5.80/trunk/TODO
Catalyst-Runtime/5.80/trunk/t/plugin_new_method_backcompat.t
Log:
Move the inline packages out into their own files so that the new test passes. All sane apps have it like this anyway, I may just have to go beat on the test suites of some of the modules I've scribbled in TODO
Modified: Catalyst-Runtime/5.80/trunk/TODO
===================================================================
--- Catalyst-Runtime/5.80/trunk/TODO 2009-05-13 18:04:40 UTC (rev 10117)
+++ Catalyst-Runtime/5.80/trunk/TODO 2009-05-13 18:15:18 UTC (rev 10118)
@@ -9,12 +9,18 @@
- Certain errors in your application to do with using other code which does
not exist can cause an 'Unknown error' issue.
- Test app: http://github.com/bobtfish/catalyst-app-bug-unknown-error/tree/master
- < rafl> 21:13:03 < vincent> hah, Class::MOP::Method::Generated->_eval_closure
- < rafl> 21:13:40 < vincent> right, shove a local $@ in there
- < rafl> i can do that and add tests in an hour or two
+ This is now fixed, by moving back to B::Hooks::EndOfScope, but this (used
+ to) cause issues with the following modules:
+ - Catalyst-Plugin-Session-State-Cookie
+ - Catalyst-Plugin-Session-Store-FastMmap
+ - Catalyst-Plugin-Session-PerUser
+ - Catalyst-Plugin-Session-Store-File
+ - Catalyst-Authentication-Credential-HTTP
+ - Catalyst-Plugin-SmartURI
+ according to comments in r8991. Retest these before shipping anything..
+
- -restarter.t will fail if you don't have ::StashChange installed, and
also quite often at other times.
Added: Catalyst-Runtime/5.80/trunk/t/lib/TestAppPluginWithConstructor.pm
===================================================================
--- Catalyst-Runtime/5.80/trunk/t/lib/TestAppPluginWithConstructor.pm (rev 0)
+++ Catalyst-Runtime/5.80/trunk/t/lib/TestAppPluginWithConstructor.pm 2009-05-13 18:15:18 UTC (rev 10118)
@@ -0,0 +1,22 @@
+# See t/plugin_new_method_backcompat.t
+package TestAppPluginWithConstructor;
+use Test::Exception;
+use Catalyst qw/+TestPluginWithConstructor/;
+use Moose;
+BEGIN { extends qw/Catalyst Catalyst::Controller/ } # Ewww, FIXME.
+
+sub foo : Local {
+ my ($self, $c) = @_;
+ $c->res->body('foo');
+}
+
+__PACKAGE__->setup;
+our $MODIFIER_FIRED = 0;
+
+lives_ok {
+ before 'dispatch' => sub { $MODIFIER_FIRED = 1 }
+} 'Can apply method modifier';
+no Moose;
+
+1;
+
Added: Catalyst-Runtime/5.80/trunk/t/lib/TestPluginWithConstructor.pm
===================================================================
--- Catalyst-Runtime/5.80/trunk/t/lib/TestPluginWithConstructor.pm (rev 0)
+++ Catalyst-Runtime/5.80/trunk/t/lib/TestPluginWithConstructor.pm 2009-05-13 18:15:18 UTC (rev 10118)
@@ -0,0 +1,11 @@
+# See t/plugin_new_method_backcompat.t
+package TestPluginWithConstructor;
+use strict;
+use warnings;
+sub new {
+ my $class = shift;
+ return bless $_[0], $class;
+}
+
+1;
+
Modified: Catalyst-Runtime/5.80/trunk/t/plugin_new_method_backcompat.t
===================================================================
--- Catalyst-Runtime/5.80/trunk/t/plugin_new_method_backcompat.t 2009-05-13 18:04:40 UTC (rev 10117)
+++ Catalyst-Runtime/5.80/trunk/t/plugin_new_method_backcompat.t 2009-05-13 18:15:18 UTC (rev 10118)
@@ -1,60 +1,25 @@
# Test that plugins with their own new method don't break applications.
-# 5.70 creates all of the request/response structure itself in prepare,
+# 5.70 creates all of the request/response structure itself in prepare,
# and as the new method in our plugin just blesses our args, that works nicely.
-# In 5.80, we rely on the new method to appropriately initialise data
+# In 5.80, we rely on the new method to appropriately initialise data
# structures, and therefore we need to inline a new method on MyApp to ensure
# that plugins don't get it wrong for us.
# Also tests method modifiers and etc in MyApp.pm still work as expected.
use Test::More tests => 4;
use Test::Exception;
-
-{
- package NewTestPlugin;
- use strict;
- use warnings;
- sub new {
- my $class = shift;
- return bless $_[0], $class;
- }
-}
-
-{ # This is all in the same file so that the setup method on the
- # application is called at runtime, rather than at compile time.
- # This ensures that the end of scope hook has to happen at runtime
- # correctly, otherwise the test will fail (ergo the switch from
- # B::Hooks::EndOfScope to Sub::Uplevel)
- package TestAppPluginWithNewMethod;
- use Test::Exception;
- use Catalyst qw/+NewTestPlugin/;
-
- sub foo : Local {
- my ($self, $c) = @_;
- $c->res->body('foo');
- }
-
- use Moose; # Just testing method modifiers still work.
- __PACKAGE__->setup;
- our $MODIFIER_FIRED = 0;
-
- lives_ok {
- before 'dispatch' => sub { $MODIFIER_FIRED = 1 }
- } 'Can apply method modifier';
- no Moose;
-}
-
use FindBin;
use lib "$FindBin::Bin/lib";
-use Catalyst::Test qw/TestAppPluginWithNewMethod/;
-ok request('/foo')->is_success;
-is $TestAppPluginWithNewMethod::MODIFIER_FIRED, 1, 'Before modifier was fired correctly.';
+use Catalyst::Test qw/TestAppPluginWithConstructor/;
+ok request('/foo')->is_success;
+is $TestAppPluginWithConstructor::MODIFIER_FIRED, 1, 'Before modifier was fired correctly.';
throws_ok {
package TestAppBadlyImmutable;
- use Catalyst qw/+NewTestPlugin/;
+ use Catalyst qw/+TestPluginWithConstructor/;
TestAppBadlyImmutable->setup;
More information about the Catalyst-commits
mailing list