use strict;
use warnings;
+use Test::MockObject::Extends;
-use Test::More tests => 22;
+use Test::More tests => 24;
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::Plugin
+ TestApp::Plugin::AddDispatchTypes
TestApp::Plugin::FullyQualified
);