X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Funit_core_plugin.t;h=93d08d85de530d57dc20d0ea5a0b961b4d91ef0e;hb=cf013d38de7a842c70c9d237a9ee3c18f0a42948;hp=e46797a4807cfd92d87138ee1c5dc2cc2ebfbaa7;hpb=d0d4d785ca0a5c8e0bc62daddd6f5ab6c0b60eca;p=catagits%2FCatalyst-Runtime.git diff --git a/t/unit_core_plugin.t b/t/unit_core_plugin.t index e46797a..93d08d8 100644 --- a/t/unit_core_plugin.t +++ b/t/unit_core_plugin.t @@ -3,7 +3,7 @@ use strict; use warnings; -use Test::More tests => 22; +use Test::More tests => 24; use lib 't/lib'; @@ -16,87 +16,40 @@ 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 ) = @_; - - $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"); - } - - 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; -} +my $warnings = 0; + +use PluginTestApp; +my $logger = Class::MOP::Class->create_anon_class( + methods => { + warn => sub { + if ($_[1] =~ /plugin method is deprecated/) { + $warnings++; + return; + } + die "Caught unexpected warning: " . $_[1]; + }, + }, +)->new_object; +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 );