Add test controller with its own meta method, still works
Tomas Doran [Mon, 11 May 2009 23:16:31 +0000 (23:16 +0000)]
t/lib/TestAppWithMeta/Controller/Root.pm [new file with mode: 0644]
t/meta_method_unneeded.t

diff --git a/t/lib/TestAppWithMeta/Controller/Root.pm b/t/lib/TestAppWithMeta/Controller/Root.pm
new file mode 100644 (file)
index 0000000..abda837
--- /dev/null
@@ -0,0 +1,19 @@
+package TestAppWithMeta::Controller::Root;
+use Moose;
+use namespace::clean -except => 'meta';
+
+BEGIN { extends 'Catalyst::Controller' }
+
+__PACKAGE__->config( namespace => '' );
+
+no warnings 'redefine';
+sub meta { 'fnar' }
+use warnings 'redefine';
+
+sub default : Private {
+    my ($self, $c) = @_;
+    $c->res->body($self->meta);
+}
+
+1;
+
index f083fce..6820f3f 100644 (file)
@@ -1,12 +1,13 @@
 use strict;
 use warnings;
-use Test::More tests => 1;
+use FindBin qw/$Bin/;
+use lib "$Bin/lib";
+use Test::More tests => 2;
 use Test::Exception;
 use Carp ();
-$SIG{__DIE__} = \&Carp::confess; # Stacktrace please.
 
 # Doing various silly things, like for example
-# use CGI qw/:stanard/ in your conrtoller / app
+# use CGI qw/:standard/ in your conrtoller / app
 # will overwrite your meta method, therefore Catalyst
 # can't depend on it being there correctly.
 
@@ -19,5 +20,11 @@ $SIG{__DIE__} = \&Carp::confess; # Stacktrace please.
     no warnings 'redefine';
     sub meta {}
 }
+BEGIN {
+    lives_ok { TestAppWithMeta->setup } 'Can setup an app which defines its own meta method';
+}
+
+use Catalyst::Test 'TestAppWithMeta';
+
+ok( request('/')->is_success );
 
-lives_ok { TestAppWithMeta->setup } 'Can setup an app which defines its own meta method';