Test uri_for with path = 0
[catagits/Catalyst-Runtime.git] / t / aggregate / live_component_controller_action_auto.t
index bf566dc..0720329 100644 (file)
@@ -1,5 +1,3 @@
-#!perl
-
 use strict;
 use warnings;
 
@@ -10,13 +8,13 @@ our $iters;
 
 BEGIN { $iters = $ENV{CAT_BENCH_ITERS} || 1; }
 
-use Test::More tests => 18*$iters;
+use Test::More;
 use Catalyst::Test 'TestApp';
 
 if ( $ENV{CAT_BENCHMARK} ) {
     require Benchmark;
     Benchmark::timethis( $iters, \&run_tests );
-    
+
     # new dispatcher:
     # 11 wallclock secs (10.14 usr +  0.20 sys = 10.34 CPU) @ 15.18/s (n=157)
     # old dispatcher (r1486):
@@ -27,7 +25,7 @@ else {
         run_tests();
     }
 }
-    
+
 sub run_tests {
     # test auto + local method
     {
@@ -35,34 +33,34 @@ sub run_tests {
           TestApp::Controller::Action::Auto->begin
           TestApp::Controller::Action::Auto->auto
           TestApp::Controller::Action::Auto->one
-          TestApp->end
+          TestApp::Controller::Root->end
         ];
-    
+
         my $expected = join( ", ", @expected );
-    
+
         ok( my $response = request('http://localhost/action/auto/one'), 'auto + local' );
         is( $response->header('X-Catalyst-Executed'),
             $expected, 'Executed actions' );
         is( $response->content, 'one', 'Content OK' );
     }
-    
+
     # test auto + default
     {
         my @expected = qw[
           TestApp::Controller::Action::Auto->begin
           TestApp::Controller::Action::Auto->auto
           TestApp::Controller::Action::Auto->default
-          TestApp->end
+          TestApp::Controller::Root->end
         ];
-    
+
         my $expected = join( ", ", @expected );
-    
+
         ok( my $response = request('http://localhost/action/auto/anything'), 'auto + default' );
         is( $response->header('X-Catalyst-Executed'),
             $expected, 'Executed actions' );
         is( $response->content, 'default', 'Content OK' );
     }
-    
+
     # test auto + auto + local
     {
         my @expected = qw[
@@ -70,17 +68,17 @@ sub run_tests {
           TestApp::Controller::Action::Auto->auto
           TestApp::Controller::Action::Auto::Deep->auto
           TestApp::Controller::Action::Auto::Deep->one
-          TestApp->end
+          TestApp::Controller::Root->end
         ];
-    
+
         my $expected = join( ", ", @expected );
-    
+
         ok( my $response = request('http://localhost/action/auto/deep/one'), 'auto + auto + local' );
         is( $response->header('X-Catalyst-Executed'),
             $expected, 'Executed actions' );
         is( $response->content, 'deep one', 'Content OK' );
     }
-    
+
     # test auto + auto + default
     {
         my @expected = qw[
@@ -88,17 +86,17 @@ sub run_tests {
           TestApp::Controller::Action::Auto->auto
           TestApp::Controller::Action::Auto::Deep->auto
           TestApp::Controller::Action::Auto::Deep->default
-          TestApp->end
+          TestApp::Controller::Root->end
         ];
-    
+
         my $expected = join( ", ", @expected );
-    
+
         ok( my $response = request('http://localhost/action/auto/deep/anything'), 'auto + auto + default' );
         is( $response->header('X-Catalyst-Executed'),
             $expected, 'Executed actions' );
         is( $response->content, 'deep default', 'Content OK' );
     }
-    
+
     # test auto + failing auto + local + end
     {
         my @expected = qw[
@@ -107,15 +105,15 @@ sub run_tests {
           TestApp::Controller::Action::Auto::Abort->auto
           TestApp::Controller::Action::Auto::Abort->end
         ];
-    
+
         my $expected = join( ", ", @expected );
-    
+
         ok( my $response = request('http://localhost/action/auto/abort/one'), 'auto + failing auto + local' );
         is( $response->header('X-Catalyst-Executed'),
             $expected, 'Executed actions' );
         is( $response->content, 'abort end', 'Content OK' );
     }
-    
+
     # test auto + default (bug on invocation of default twice)
     {
         my @expected = qw[
@@ -125,12 +123,69 @@ sub run_tests {
           TestApp::Controller::Action::Auto::Default->default
           TestApp::Controller::Action::Auto::Default->end
         ];
-    
+
         my $expected = join( ", ", @expected );
-    
+
         ok( my $response = request('http://localhost/action/auto/default/moose'), 'auto + default' );
         is( $response->header('X-Catalyst-Executed'),
             $expected, 'Executed actions' );
         is( $response->content, 'default (auto: 1)', 'Content OK' );
     }
+
+    # test detach in auto
+    {
+        my @expected = qw[
+          TestApp::Controller::Action::Auto::Detach->begin
+          TestApp::Controller::Action::Auto->auto
+          TestApp::Controller::Action::Auto::Detach->auto
+          TestApp::Controller::Root->end
+        ];
+
+        my $expected = join( ", ", @expected );
+
+        ok( my $response = request('http://localhost/action/auto/detach'), 'auto with detach' );
+        is( $response->header('X-Catalyst-Executed'),
+            $expected, 'Executed actions' );
+        is( $response->content, 'detach auto', 'Content OK' );
+    }
+
+    # test detach in auto forward
+    {
+        my @expected = qw[
+          TestApp::Controller::Action::Auto::Detach->begin
+          TestApp::Controller::Action::Auto->auto
+          TestApp::Controller::Action::Auto::Detach->auto
+          TestApp::Controller::Action::Auto::Detach->with_forward_detach
+          TestApp::Controller::Root->end
+        ];
+
+        my $expected = join( ", ", @expected );
+
+        ok( my $response = request('http://localhost/action/auto/detach?with_forward_detach=1'), 'auto with_forward_detach' );
+        is( $response->header('X-Catalyst-Executed'),
+            $expected, 'Executed actions' );
+        is( $response->content, 'detach with_forward_detach', 'Content OK' );
+    }
+
+    # test detach in auto forward detach action
+    {
+        my @expected = qw[
+          TestApp::Controller::Action::Auto::Detach->begin
+          TestApp::Controller::Action::Auto->auto
+          TestApp::Controller::Action::Auto::Detach->auto
+          TestApp::Controller::Action::Auto::Detach->with_forward_detach
+          TestApp::Controller::Action::Auto::Detach->detach_action
+          TestApp::Controller::Root->end
+        ];
+
+        my $expected = join( ", ", @expected );
+
+        ok( my $response = request('http://localhost/action/auto/detach?with_forward_detach=1&detach_to_action=1'), 'auto with_forward_detach to detach_action' );
+        is( $response->header('X-Catalyst-Executed'),
+            $expected, 'Executed actions' );
+        is( $response->content, 'detach_action', 'Content OK' );
+    }
 }
+
+done_testing;
+