Browse Source

Add test for redirect exception creating a response.

Mark Story 10 years ago
parent
commit
cbe2e9e8a7
1 changed files with 22 additions and 0 deletions
  1. 22 0
      tests/TestCase/Routing/Filter/RoutingFilterTest.php

+ 22 - 0
tests/TestCase/Routing/Filter/RoutingFilterTest.php

@@ -16,6 +16,7 @@ namespace Cake\Test\TestCase\Routing\Filter;
 
 use Cake\Event\Event;
 use Cake\Network\Request;
+use Cake\Network\Response;
 use Cake\Routing\Filter\RoutingFilter;
 use Cake\Routing\Router;
 use Cake\TestSuite\TestCase;
@@ -73,6 +74,27 @@ class RoutingFilterTest extends TestCase
      *
      * @return void
      * @triggers __CLASS__ $this, compact(request)
+     */
+    public function testBeforeDispatchRedirectRoute()
+    {
+        Router::redirect('/home', ['controller' => 'articles']);
+        Router::connect('/:controller/:action/*');
+        $filter = new RoutingFilter();
+
+        $request = new Request("/home");
+        $response = new Response();
+        $event = new Event(__CLASS__, $this, compact('request', 'response'));
+        $response = $filter->beforeDispatch($event);
+        $this->assertInstanceOf('Cake\Network\Response', $response);
+        $this->assertSame('http://localhost/articles/index', $response->header()['Location']);
+        $this->assertSame(301, $response->statusCode());
+    }
+
+    /**
+     * test setting parameters in beforeDispatch method
+     *
+     * @return void
+     * @triggers __CLASS__ $this, compact(request)
      * @triggers __CLASS__ $this, compact(request)
      */
     public function testQueryStringOnRoot()