put Catalyst::Plugin::Test::MangleDollarUnderScore into a better namespace
[catagits/Catalyst-Runtime.git] / t / unit_core_plugin.t
index e46797a..cb48159 100644 (file)
@@ -2,8 +2,9 @@
 
 use strict;
 use warnings;
+use Test::MockObject::Extends;
 
-use Test::More tests => 22;
+use Test::More tests => 24;
 
 use lib 't/lib';
 
@@ -16,87 +17,37 @@ use lib 't/lib';
     sub count { $count++ }
 }
 
-{
-
-    package PluginTestApp;
-    use Test::More;
-
-    use Catalyst qw(
-      Test::Plugin
-      +TestApp::Plugin::FullyQualified
-    );
-
-    sub compile_time_plugins : Local {
-        my ( $self, $c ) = @_;
-
-        isa_ok $c, 'Catalyst::Plugin::Test::Plugin';
-        isa_ok $c, 'TestApp::Plugin::FullyQualified';
-
-        can_ok $c, 'registered_plugins';
-        $c->_test_plugins;
-
-        $c->res->body("ok");
-    }
-
-    sub run_time_plugins : Local {
-        my ( $self, $c ) = @_;
+my $warnings = 0;
 
-        $c->_test_plugins;
-        my $faux_plugin = 'Faux::Plugin';
-
-        # Trick perl into thinking the plugin is already loaded
-        $INC{'Faux/Plugin.pm'} = 1;
-
-        __PACKAGE__->plugin( faux => $faux_plugin );
-
-        isa_ok $c, 'Catalyst::Plugin::Test::Plugin';
-        isa_ok $c, 'TestApp::Plugin::FullyQualified';
-        ok !$c->isa($faux_plugin),
-          '... and it should not inherit from the instant plugin';
-        can_ok $c, 'faux';
-        is $c->faux->count, 1, '... and it should behave correctly';
-        is_deeply [ $c->registered_plugins ],
-            [
-                qw/Catalyst::Plugin::Test::Plugin
-                   Faux::Plugin
-                   TestApp::Plugin::FullyQualified/
-            ],
-            'registered_plugins() should report all plugins';
-        ok $c->registered_plugins('Faux::Plugin'),
-            '... and even the specific instant plugin';
-
-        $c->res->body("ok");
+use PluginTestApp;
+my $logger = Test::MockObject::Extends->new(PluginTestApp->log);
+$logger->mock('warn', sub {
+    if ($_[1] =~ /plugin method is deprecated/) {
+        $warnings++;
+        return;
     }
-
-    sub _test_plugins {
-        my $c = shift;
-        is_deeply [ $c->registered_plugins ],
-            [
-                qw/Catalyst::Plugin::Test::Plugin
-                   TestApp::Plugin::FullyQualified/
-            ],
-            '... and it should report the correct plugins';
-        ok $c->registered_plugins('Catalyst::Plugin::Test::Plugin'),
-            '... or if we have a particular plugin';
-        ok $c->registered_plugins('Test::Plugin'),
-            '... even if it is not fully qualified';
-        ok !$c->registered_plugins('No::Such::Plugin'),
-            '... and it should return false if the plugin does not exist';
-    }
-
-    __PACKAGE__->setup;
-}
+    die "Caught unexpected warning: " . $_[1];
+});
+#PluginTestApp->log($logger);
 
 use Catalyst::Test qw/PluginTestApp/;
 
 ok( get("/compile_time_plugins"), "get ok" );
+is( $warnings, 0, 'no warnings' );
+# FIXME - Run time plugin support is insane, and should be removed
+#         for Catalyst 5.9
 ok( get("/run_time_plugins"),     "get ok" );
 
+is( $warnings, 1, '1 warning' );
+
 use_ok 'TestApp';
 my @expected = qw(
   Catalyst::Plugin::Test::Errors
   Catalyst::Plugin::Test::Headers
+  Catalyst::Plugin::Test::Inline
+  Catalyst::Plugin::Test::MangleDollarUnderScore
   Catalyst::Plugin::Test::Plugin
+  TestApp::Plugin::AddDispatchTypes
   TestApp::Plugin::FullyQualified
 );