Browse Source

Stop using deprecated properties in Components.

Update components and their tests to not use deprecated properties.
Mark Story 8 years ago
parent
commit
986c23c35b

+ 1 - 4
src/Controller/Component/AuthComponent.php

@@ -441,10 +441,7 @@ class AuthComponent extends Component
      */
     protected function _isLoginAction(Controller $controller)
     {
-        $url = '';
-        if (isset($controller->request->url)) {
-            $url = $controller->request->url;
-        }
+        $url = $controller->request->getRequestTarget();
         $url = Router::normalize($url);
         $loginAction = Router::normalize($this->_config['loginAction']);
 

+ 1 - 1
src/Controller/Component/CookieComponent.php

@@ -128,7 +128,7 @@ class CookieComponent extends Component
         }
 
         if (empty($this->_config['path'])) {
-            $this->setConfig('path', $this->request->webroot);
+            $this->setConfig('path', $this->request->getAttribute('webroot'));
         }
     }
 

+ 15 - 15
tests/TestCase/Controller/Component/AuthComponentTest.php

@@ -130,12 +130,12 @@ class AuthComponentTest extends TestCase
 
         $this->Auth->setAuthenticateObject(0, $AuthLoginFormAuthenticate);
 
-        $this->Controller->request->data = [
+        $this->Controller->request = $this->Controller->request->withParsedBody([
             'AuthUsers' => [
                 'username' => 'mark',
                 'password' => Security::hash('cake', null, true)
             ]
-        ];
+        ]);
 
         $user = [
             'id' => 1,
@@ -171,12 +171,12 @@ class AuthComponentTest extends TestCase
 
         $this->Auth->setAuthenticateObject(0, $AuthLoginFormAuthenticate);
 
-        $this->Controller->request->data = [
+        $this->Controller->request = $this->Controller->request->withParsedBody([
             'AuthUsers' => [
                 'username' => 'mark',
                 'password' => Security::hash('cake', null, true)
             ]
-        ];
+        ]);
 
         $user = new \ArrayObject([
             'id' => 1,
@@ -1134,7 +1134,7 @@ class AuthComponentTest extends TestCase
             'url' => '/ajax_auth/add',
             'environment' => ['HTTP_X_REQUESTED_WITH' => 'XMLHttpRequest'],
         ]);
-        $this->Controller->request->params['action'] = 'add';
+        $this->Controller->request = $this->Controller->request->withParam('action', 'add');
 
         $event = new Event('Controller.startup', $this->Controller);
         $this->Auth->setConfig('ajaxLogin', 'test_element');
@@ -1162,7 +1162,7 @@ class AuthComponentTest extends TestCase
             'url' => '/ajax_auth/add',
             'environment' => ['HTTP_X_REQUESTED_WITH' => 'XMLHttpRequest'],
         ]);
-        $this->Controller->request->params['action'] = 'add';
+        $this->Controller->request = $this->Controller->request->withParam('action', 'add');
 
         $event = new Event('Controller.startup', $this->Controller);
         $response = $this->Auth->startup($event);
@@ -1411,7 +1411,7 @@ class AuthComponentTest extends TestCase
         $this->Auth->Flash = $this->getMockBuilder('Cake\Controller\Component\FlashComponent')
             ->setConstructorArgs([$this->Controller->components()])
             ->getMock();
-        $this->Controller->request->params['action'] = 'add';
+        $this->Controller->request = $this->Controller->request->withParam('action', 'add');
         $this->Auth->startup(new Event('Controller.startup', $this->Controller));
 
         $this->Auth->Flash->expects($this->at(0))
@@ -1461,7 +1461,7 @@ class AuthComponentTest extends TestCase
     public function testRedirectQueryStringRead()
     {
         $this->Auth->setConfig('loginAction', ['controller' => 'users', 'action' => 'login']);
-        $this->Controller->request->query = ['redirect' => '/users/custom'];
+        $this->Controller->request = $this->Controller->request->withQueryParams(['redirect' => '/users/custom']);
 
         $result = $this->Auth->redirectUrl();
         $this->assertEquals('/users/custom', $result);
@@ -1474,10 +1474,10 @@ class AuthComponentTest extends TestCase
      */
     public function testRedirectQueryStringReadDuplicateBase()
     {
-        $this->Controller->request->webroot = '/waves/';
-        $this->Controller->request->base = '/waves';
-
-        $this->Controller->request->query = ['redirect' => '/waves/add'];
+        $this->Controller->request = $this->Controller->request
+            ->withAttribute('webroot', '/waves/')
+            ->withAttribute('base', '/waves')
+            ->withQueryParams(['redirect' => '/waves/add']);
 
         Router::setRequestInfo($this->Controller->request);
 
@@ -1497,7 +1497,7 @@ class AuthComponentTest extends TestCase
             'loginAction' => ['controller' => 'users', 'action' => 'login'],
             'loginRedirect' => ['controller' => 'users', 'action' => 'home']
         ]);
-        $this->Controller->request->query = ['redirect' => '/users/login'];
+        $this->Controller->request = $this->Controller->request->withQueryParams(['redirect' => '/users/login']);
 
         $result = $this->Auth->redirectUrl();
         $this->assertEquals('/users/home', $result);
@@ -1515,12 +1515,12 @@ class AuthComponentTest extends TestCase
             'loginAction' => ['controller' => 'users', 'action' => 'login'],
             'loginRedirect' => ['controller' => 'users', 'action' => 'home']
         ]);
-        $this->Controller->request->query = ['redirect' => 'http://some.domain.example/users/login'];
+        $this->Controller->request = $this->Controller->request->withQueryParams(['redirect' => 'http://some.domain.example/users/login']);
 
         $result = $this->Auth->redirectUrl();
         $this->assertEquals('/users/home', $result);
 
-        $this->Controller->request->query = ['redirect' => '//some.domain.example/users/login'];
+        $this->Controller->request = $this->Controller->request->withQueryParams(['redirect' => '//some.domain.example/users/login']);
 
         $result = $this->Auth->redirectUrl();
         $this->assertEquals('/users/home', $result);

+ 14 - 14
tests/TestCase/Controller/Component/CookieComponentTest.php

@@ -167,9 +167,9 @@ class CookieComponentTest extends TestCase
     {
         $this->expectException(\RuntimeException::class);
         $this->expectExceptionMessage('Invalid encryption cipher. Must be one of aes, rijndael.');
-        $this->request->cookies = [
+        $this->Controller->request = $this->request->withCookieParams([
             'Test' => $this->_encrypt('value'),
-        ];
+        ]);
         $this->Cookie->setConfig('encryption', 'derp');
         $this->Cookie->read('Test');
     }
@@ -215,14 +215,14 @@ class CookieComponentTest extends TestCase
      */
     public function testReadMultipleNames()
     {
-        $this->request->cookies = [
+        $this->Controller->request = $this->request->withCookieParams([
             'CakeCookie' => [
                 'key' => 'value'
             ],
             'OtherCookie' => [
                 'key' => 'other value'
             ]
-        ];
+        ]);
         $this->assertEquals('value', $this->Cookie->read('CakeCookie.key'));
         $this->assertEquals(['key' => 'value'], $this->Cookie->read('CakeCookie'));
         $this->assertEquals('other value', $this->Cookie->read('OtherCookie.key'));
@@ -261,9 +261,9 @@ class CookieComponentTest extends TestCase
      */
     public function testWriteThanRead()
     {
-        $this->request->cookies = [
+        $this->Controller->request = $this->request->withCookieParams([
             'User' => ['name' => 'mark']
-        ];
+        ]);
         $this->Cookie->write('Testing', 'value');
         $this->assertEquals('mark', $this->Cookie->read('User.name'));
     }
@@ -617,7 +617,7 @@ class CookieComponentTest extends TestCase
         $data = $this->Cookie->read('Plain_multi_cookies');
         $this->assertNull($data);
 
-        $this->request->cookies = [
+        $this->Controller->request = $this->request->withCookieParams([
             'Encrypted_array' => $this->_encrypt(['name' => 'CakePHP', 'version' => '1.2.0.x', 'tag' => 'CakePHP Rocks!']),
             'Encrypted_multi_cookies' => [
                 'name' => $this->_encrypt('CakePHP'),
@@ -630,7 +630,7 @@ class CookieComponentTest extends TestCase
                 'version' => '1.2.0.x',
                 'tag' => 'CakePHP Rocks!'
             ]
-        ];
+        ]);
 
         $data = $this->Cookie->read('Encrypted_array');
         $expected = ['name' => 'CakePHP', 'version' => '1.2.0.x', 'tag' => 'CakePHP Rocks!'];
@@ -656,9 +656,9 @@ class CookieComponentTest extends TestCase
      */
     public function testReadLegacyCookieValue()
     {
-        $this->request->cookies = [
+        $this->Controller->request = $this->request->withCookieParams([
             'Legacy' => ['value' => $this->_oldImplode([1, 2, 3])]
-        ];
+        ]);
         $result = $this->Cookie->read('Legacy.value');
         $expected = [1, 2, 3];
         $this->assertEquals($expected, $result);
@@ -671,12 +671,12 @@ class CookieComponentTest extends TestCase
      */
     public function testReadEmpty()
     {
-        $this->request->cookies = [
+        $this->Controller->request = $this->request->withCookieParams([
             'JSON' => '{"name":"value"}',
             'Empty' => '',
             'String' => '{"somewhat:"broken"}',
             'Array' => '{}'
-        ];
+        ]);
         $this->assertEquals(['name' => 'value'], $this->Cookie->read('JSON'));
         $this->assertEquals('value', $this->Cookie->read('JSON.name'));
         $this->assertEquals('', $this->Cookie->read('Empty'));
@@ -743,10 +743,10 @@ class CookieComponentTest extends TestCase
      */
     public function testDeleteRemovesChildren()
     {
-        $this->request->cookies = [
+        $this->Controller->request = $this->request->withCookieParams([
             'User' => ['email' => 'example@example.com', 'name' => 'mark'],
             'other' => 'value'
-        ];
+        ]);
         $this->assertEquals('mark', $this->Cookie->read('User.name'));
 
         $this->Cookie->delete('User');

+ 2 - 2
tests/TestCase/Controller/Component/CsrfComponentTest.php

@@ -214,7 +214,7 @@ class CsrfComponentTest extends TestCase
         $event = new Event('Controller.startup', $controller);
         $result = $this->component->startup($event);
         $this->assertNull($result, 'No exception means valid.');
-        $this->assertFalse(isset($controller->request->data['_csrfToken']));
+        $this->assertNull($controller->request->getData('_csrfToken'));
     }
 
     /**
@@ -313,7 +313,7 @@ class CsrfComponentTest extends TestCase
         $event = new Event('Controller.startup', $controller);
         $result = $this->component->startup($event);
         $this->assertNull($result, 'No error.');
-        $this->assertEquals('testing123', $controller->request->params['_csrfToken']);
+        $this->assertEquals('testing123', $controller->request->getParam('_csrfToken'));
     }
 
     /**

+ 1 - 1
tests/TestCase/Controller/Component/PaginatorComponentTest.php

@@ -1294,7 +1294,7 @@ class PaginatorComponentTest extends TestCase
      */
     public function testPaginateQueryWithLimit()
     {
-        $this->controller->request->query = ['page' => '-1'];
+        $this->controller->request = $this->controller->request->withQueryParams(['page' => '-1']);
         $settings = [
             'PaginatorPosts' => [
                 'contain' => ['PaginatorAuthor'],

+ 11 - 11
tests/TestCase/Controller/Component/RequestHandlerComponentTest.php

@@ -129,7 +129,7 @@ class RequestHandlerComponentTest extends TestCase
     public function testInitializeCallback()
     {
         $this->assertNull($this->RequestHandler->ext);
-        $this->Controller->request->params['_ext'] = 'rss';
+        $this->Controller->request = $this->Controller->request->withParam('_ext', 'rss');
         $this->RequestHandler->startup(new Event('Controller.startup', $this->Controller));
         $this->assertEquals('rss', $this->RequestHandler->ext);
     }
@@ -411,7 +411,7 @@ class RequestHandlerComponentTest extends TestCase
         $this->RequestHandler->initialize([]);
         $this->Controller->beforeFilter($event);
         $this->RequestHandler->startup($event);
-        $this->assertTrue($this->Controller->request->params['isAjax']);
+        $this->assertTrue($this->Controller->request->getParam('isAjax'));
     }
 
     /**
@@ -431,10 +431,10 @@ class RequestHandlerComponentTest extends TestCase
 
         $this->assertEquals($this->Controller->viewClass, 'Cake\View\AjaxView');
         $view = $this->Controller->createView();
-        $this->assertEquals('ajax', $view->layout);
+        $this->assertEquals('ajax', $view->getLayout());
 
         $this->_init();
-        $this->Controller->request->params['_ext'] = 'js';
+        $this->Controller->request = $this->Controller->request->withParam('_ext', 'js');
         $this->RequestHandler->initialize([]);
         $this->RequestHandler->startup($event);
         $this->assertNotEquals($this->Controller->viewClass, 'Cake\View\AjaxView');
@@ -449,7 +449,7 @@ class RequestHandlerComponentTest extends TestCase
     public function testJsonViewLoaded()
     {
         Router::extensions(['json', 'xml', 'ajax'], false);
-        $this->Controller->request->params['_ext'] = 'json';
+        $this->Controller->request = $this->Controller->request->withParam('_ext', 'json');
         $event = new Event('Controller.startup', $this->Controller);
         $this->RequestHandler->initialize([]);
         $this->RequestHandler->startup($event);
@@ -457,7 +457,7 @@ class RequestHandlerComponentTest extends TestCase
         $this->RequestHandler->beforeRender($event);
         $this->assertEquals('Cake\View\JsonView', $this->Controller->viewClass);
         $view = $this->Controller->createView();
-        $this->assertEquals('json', $view->layoutPath);
+        $this->assertEquals('json', $view->getLayoutPath());
         $this->assertEquals('json', $view->subDir);
     }
 
@@ -470,7 +470,7 @@ class RequestHandlerComponentTest extends TestCase
     public function testXmlViewLoaded()
     {
         Router::extensions(['json', 'xml', 'ajax'], false);
-        $this->Controller->request->params['_ext'] = 'xml';
+        $this->Controller->request = $this->Controller->request->withParam('_ext', 'xml');
         $event = new Event('Controller.startup', $this->Controller);
         $this->RequestHandler->initialize([]);
         $this->RequestHandler->startup($event);
@@ -478,7 +478,7 @@ class RequestHandlerComponentTest extends TestCase
         $this->RequestHandler->beforeRender($event);
         $this->assertEquals('Cake\View\XmlView', $this->Controller->viewClass);
         $view = $this->Controller->createView();
-        $this->assertEquals('xml', $view->layoutPath);
+        $this->assertEquals('xml', $view->getLayoutPath());
         $this->assertEquals('xml', $view->subDir);
     }
 
@@ -491,7 +491,7 @@ class RequestHandlerComponentTest extends TestCase
     public function testAjaxViewLoaded()
     {
         Router::extensions(['json', 'xml', 'ajax'], false);
-        $this->Controller->request->params['_ext'] = 'ajax';
+        $this->Controller->request = $this->Controller->request->withParam('_ext', 'ajax');
         $event = new Event('Controller.startup', $this->Controller);
         $this->RequestHandler->initialize([]);
         $this->RequestHandler->startup($event);
@@ -499,7 +499,7 @@ class RequestHandlerComponentTest extends TestCase
         $this->RequestHandler->beforeRender($event);
         $this->assertEquals('Cake\View\AjaxView', $this->Controller->viewClass);
         $view = $this->Controller->createView();
-        $this->assertEquals('ajax', $view->layout);
+        $this->assertEquals('ajax', $view->getLayout());
     }
 
     /**
@@ -511,7 +511,7 @@ class RequestHandlerComponentTest extends TestCase
     public function testNoViewClassExtension()
     {
         Router::extensions(['json', 'xml', 'ajax', 'csv'], false);
-        $this->Controller->request->params['_ext'] = 'csv';
+        $this->Controller->request = $this->Controller->request->withParam('_ext', 'csv');
         $event = new Event('Controller.startup', $this->Controller);
         $this->RequestHandler->initialize([]);
         $this->RequestHandler->startup($event);