Fix my retardedness with ::MVC:: warning having no conditional. Pull all the stuff...
[catagits/Catalyst-Runtime.git] / t / lib / Catalyst / Plugin / Test / Plugin.pm
index 2f7c06d..09ee8f7 100644 (file)
@@ -1,30 +1,43 @@
 package Catalyst::Plugin::Test::Plugin;
 
 use strict;
+use warnings;
+use MRO::Compat;
 
 use base qw/Catalyst::Base Class::Data::Inheritable/;
 
  __PACKAGE__->mk_classdata('ran_setup');
 
-no warnings 'Class::C3::Adopt::NEXT';
-
 sub setup {
    my $c = shift;
    $c->ran_setup('1');
 }
 
-sub  prepare {
-
+sub prepare {
     my $class = shift;
 
-# Note: This use of NEXT is deliberately left here (without a use NEXT)
-#       to ensure back compat, as NEXT always used to be loaded, but 
-#       is now replaced by Class::C3::Adopt::NEXT.
-    my $c = $class->NEXT::prepare(@_);
+    my $c = $class->next::method(@_);
     $c->response->header( 'X-Catalyst-Plugin-Setup' => $c->ran_setup );
 
     return $c;
+}
 
+# Note: This is horrible, but Catalyst::Plugin::Server forces the body to
+#       be parsed, by calling the $c->req->body method in prepare_action.
+#       We need to test this, as this was broken by 5.80. See also
+#       t/aggregate/live_engine_request_body.t. Better ways to test this
+#       appreciated if you have suggestions :)
+{
+    my $have_req_body = 0;
+    sub prepare_action {
+        my $c = shift;
+        $have_req_body++ if $c->req->body;
+        $c->next::method(@_);
+    }
+    sub have_req_body_in_prepare_action : Local {
+        my ($self, $c) = @_;
+        $c->res->body($have_req_body);
+    }
 }
 
 sub end : Private {