Browse Source

Adding test for host url redirect.

mscherer 9 years ago
parent
commit
ffa464d06e
1 changed files with 21 additions and 3 deletions
  1. 21 3
      tests/TestCase/Controller/Component/AuthComponentTest.php

+ 21 - 3
tests/TestCase/Controller/Component/AuthComponentTest.php

@@ -23,8 +23,8 @@ use Cake\Event\EventManager;
 use Cake\Network\Request;
 use Cake\Network\Response;
 use Cake\ORM\TableRegistry;
-use Cake\Routing\Route\InflectedRoute;
 use Cake\Routing\Router;
+use Cake\Routing\Route\InflectedRoute;
 use Cake\TestSuite\TestCase;
 use Cake\Utility\Security;
 use TestApp\Controller\AuthTestController;
@@ -1326,10 +1326,10 @@ class AuthComponentTest extends TestCase
     public function testRedirectQueryStringRead()
     {
         $this->Auth->config('loginAction', ['controller' => 'users', 'action' => 'login']);
-        $this->Auth->request->query = ['redirect' => '/users/home'];
+        $this->Auth->request->query = ['redirect' => '/users/custom'];
 
         $result = $this->Auth->redirectUrl();
-        $this->assertEquals('/users/home', $result);
+        $this->assertEquals('/users/custom', $result);
     }
 
     /**
@@ -1369,6 +1369,24 @@ class AuthComponentTest extends TestCase
     }
 
     /**
+     * Tests that redirect does not return loginAction if that contains a host,
+     * instead loginRedirect should be used.
+     *
+     * @return void
+     */
+    public function testRedirectQueryStringInvalid()
+    {
+        $this->Auth->config([
+            'loginAction' => ['controller' => 'users', 'action' => 'login'],
+            'loginRedirect' => ['controller' => 'users', 'action' => 'home']
+        ]);
+        $this->Auth->request->query = ['redirect' => 'http://some.domain.example/users/login'];
+
+        $result = $this->Auth->redirectUrl();
+        $this->assertEquals('/users/home', $result);
+    }
+
+    /**
      * test that the returned URL doesn't contain the base URL.
      *
      * @return void This test method doesn't return anything.