Merge branch 'melmothx-invalid-get-param-unicode' into unicode-exception-issue
[catagits/Catalyst-Runtime.git] / t / plugin_new_method_backcompat.t
index d7778b8..28455fb 100644 (file)
@@ -8,23 +8,27 @@
 # that plugins don't get it wrong for us.
 
 # Also tests method modifiers and etc in MyApp.pm still work as expected.
-use Test::More tests => 4;
-use Test::Exception;
+use Test::More;
+use Moose::Util qw/find_meta/;
 use FindBin;
 use lib "$FindBin::Bin/lib";
 
 use Catalyst::Test qw/TestAppPluginWithConstructor/;
-ok request('/foo')->is_success;
+TestAppPluginWithConstructor->_make_immutable_if_needed;
+ok find_meta('TestAppPluginWithConstructor')->is_immutable,
+    'Am immutable after use';
+
+ok request('/foo')->is_success, 'Can get /foo';
 is $TestAppPluginWithConstructor::MODIFIER_FIRED, 1, 'Before modifier was fired correctly.';
 
-throws_ok {
-    package TestAppBadlyImmutable;
-    use Catalyst qw/+TestPluginWithConstructor/;
+my $warning;
+eval "use TestAppBadlyImmutable";
+local $SIG{__WARN__} = sub { $warning .= $_[0] };
+
+TestAppBadlyImmutable->_make_immutable_if_needed;
 
-    TestAppBadlyImmutable->setup;
+like $warning, qr/\QYou made your application class (TestAppBadlyImmutable) immutable/,
+    'An application class that is already immutable but does not inline the constructor warns at ->setup';
 
-    __PACKAGE__->meta->make_immutable( inline_constructor => 0 );
-}
-    qr/\QYou made your application class (TestAppBadlyImmutable) immutable/,
-    'An application class that is already immutable but does not inline the constructor dies at ->setup';
+done_testing;