More aggregated tests.
[catagits/Catalyst-Runtime.git] / t / aggregate / unit_core_plugin.t
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5
6 use Test::More tests => 24;
7
8 use lib 't/lib';
9
10 {
11
12     package Faux::Plugin;
13
14     sub new { bless {}, shift }
15     my $count = 1;
16     sub count { $count++ }
17 }
18
19 my $warnings = 0;
20
21 use PluginTestApp;
22 my $logger = Class::MOP::Class->create_anon_class(
23     methods => {
24         error => sub {0},
25         debug => sub {0},
26         info => sub {0},
27         warn => sub {
28             if ($_[1] =~ /plugin method is deprecated/) {
29                $warnings++;
30                 return;
31             }
32             die "Caught unexpected warning: " . $_[1];
33         },
34     },
35 )->new_object;
36 PluginTestApp->log($logger);
37
38 use Catalyst::Test qw/PluginTestApp/;
39
40 ok( get("/compile_time_plugins"), "get ok" );
41 is( $warnings, 0, 'no warnings' );
42 # FIXME - Run time plugin support is insane, and should be removed
43 #         for Catalyst 5.9
44 ok( get("/run_time_plugins"),     "get ok" );
45
46 local $ENV{CATALYST_DEBUG} = 0;
47
48 is( $warnings, 1, '1 warning' );
49
50 use_ok 'TestApp';
51 my @expected = qw(
52   Catalyst::Plugin::Test::Errors
53   Catalyst::Plugin::Test::Headers
54   Catalyst::Plugin::Test::Inline
55   Catalyst::Plugin::Test::MangleDollarUnderScore
56   Catalyst::Plugin::Test::Plugin
57   TestApp::Plugin::AddDispatchTypes
58   TestApp::Plugin::FullyQualified
59 );
60
61 # Faux::Plugin is no longer reported
62 is_deeply [ TestApp->registered_plugins ], \@expected,
63   'registered_plugins() should only report the plugins for the current class';
64