fixed subclassing when using expose_methods + test
Alexander Hartmaier [Mon, 11 Oct 2010 17:19:30 +0000 (17:19 +0000)]
lib/Catalyst/View/TT.pm
t/12expose_methods.t
t/lib/TestApp/View/TT/ExposeMethodsSubclassed.pm [new file with mode: 0644]

index 3d8c751..d346b61 100644 (file)
@@ -278,7 +278,7 @@ sub template_vars {
     if ($self->expose_methods) {
         my $meta = $self->meta;
         foreach my $method_name (@{$self->expose_methods}) {
-            my $method = $meta->get_method( $method_name );
+            my $method = $meta->find_method_by_name( $method_name );
             unless ($method) {
                 Catalyst::Exception->throw( "$method_name not found in TT view" );
             }
index 06c153a..60a0e5c 100644 (file)
@@ -1,6 +1,6 @@
 use strict;
 use warnings;
-use Test::More tests => 3;
+use Test::More;
 
 use FindBin;
 use lib "$FindBin::Bin/lib";
@@ -10,3 +10,7 @@ use_ok('Catalyst::Test', 'TestApp');
 my $response;
 ok(($response = request("/test?view=ExposeMethods&template=expose_methods.tt"))->is_success, 'request ok');
 is($response->content, "magic added param", 'message ok');
+ok(($response = request("/test?view=ExposeMethodsSubclassed&template=expose_methods.tt"))->is_success, 'request ok');
+is($response->content, "magic added param", 'message ok');
+
+done_testing;
diff --git a/t/lib/TestApp/View/TT/ExposeMethodsSubclassed.pm b/t/lib/TestApp/View/TT/ExposeMethodsSubclassed.pm
new file mode 100644 (file)
index 0000000..a44fdb6
--- /dev/null
@@ -0,0 +1,6 @@
+package TestApp::View::TT::ExposeMethodsSubclassed;
+
+use Moose;
+extends 'TestApp::View::TT::ExposeMethods';
+
+1;