Browse Source

Fix ServerRequestTest cases

Florian Krämer 8 years ago
parent
commit
f1a647f42f
1 changed files with 219 additions and 185 deletions
  1. 219 185
      tests/TestCase/Http/ServerRequestTest.php

+ 219 - 185
tests/TestCase/Http/ServerRequestTest.php

@@ -69,7 +69,7 @@ class ServerRequestTest extends TestCase
             return $request->param('controller') === $name;
         });
 
-        $request->params = ['controller' => 'cake'];
+        $request = $request->withQueryParams(['controller' => 'cake']);
         $this->assertTrue($request->is('controller', 'cake'));
         $this->assertFalse($request->is('controller', 'nonExistingController'));
         $this->assertTrue($request->isController('cake'));
@@ -86,10 +86,10 @@ class ServerRequestTest extends TestCase
         $request = new ServerRequest();
         $request->addDetector('host', ['header' => ['host' => 'cakephp.org']]);
 
-        $request->env('HTTP_HOST', 'cakephp.org');
+        $request = $request->withEnv('HTTP_HOST', 'cakephp.org');
         $this->assertTrue($request->is('host'));
 
-        $request->env('HTTP_HOST', 'php.net');
+        $request = $request->withEnv('HTTP_HOST', 'php.net');
         $this->assertFalse($request->is('host'));
     }
 
@@ -101,11 +101,11 @@ class ServerRequestTest extends TestCase
     public function testExtensionDetector()
     {
         $request = new ServerRequest();
-        $request->params['_ext'] = 'json';
+        $request = $request->withParam('_ext', 'json');
         $this->assertTrue($request->is('json'));
 
         $request = new ServerRequest();
-        $request->params['_ext'] = 'xml';
+        $request = $request->withParam('_ext', 'xml');
         $this->assertFalse($request->is('json'));
     }
 
@@ -117,11 +117,11 @@ class ServerRequestTest extends TestCase
     public function testAcceptHeaderDetector()
     {
         $request = new ServerRequest();
-        $request->env('HTTP_ACCEPT', 'application/json, text/plain, */*');
+        $request = $request->withEnv('HTTP_ACCEPT', 'application/json, text/plain, */*');
         $this->assertTrue($request->is('json'));
 
         $request = new ServerRequest();
-        $request->env('HTTP_ACCEPT', 'text/plain, */*');
+        $request = $request->withEnv('HTTP_ACCEPT', 'text/plain, */*');
         $this->assertFalse($request->is('json'));
     }
 
@@ -219,14 +219,16 @@ class ServerRequestTest extends TestCase
     public function testAddParams()
     {
         $request = new ServerRequest();
-        $request->params = ['controller' => 'posts', 'action' => 'view'];
+        $request = $request
+            ->withParam('controller', 'posts')
+            ->withParam('action', 'view');
         $result = $request->addParams(['plugin' => null, 'action' => 'index']);
 
         $this->assertSame($result, $request, 'Method did not return itself. %s');
 
-        $this->assertEquals('posts', $request->controller);
-        $this->assertEquals('index', $request->action);
-        $this->assertEquals(null, $request->plugin);
+        $this->assertEquals('posts', $request->getParam('controller'));
+        $this->assertEquals('index', $request->getParam('action'));
+        $this->assertEquals(null, $request->getParam('plugin'));
     }
 
     /**
@@ -637,21 +639,21 @@ class ServerRequestTest extends TestCase
     {
         $post = ['_method' => 'POST'];
         $request = new ServerRequest(compact('post'));
-        $this->assertEquals('POST', $request->env('REQUEST_METHOD'));
+        $this->assertEquals('POST', $request->getEnv('REQUEST_METHOD'));
 
         $post = ['_method' => 'DELETE'];
         $request = new ServerRequest(compact('post'));
-        $this->assertEquals('DELETE', $request->env('REQUEST_METHOD'));
+        $this->assertEquals('DELETE', $request->getEnv('REQUEST_METHOD'));
 
         $request = new ServerRequest(['environment' => ['HTTP_X_HTTP_METHOD_OVERRIDE' => 'PUT']]);
-        $this->assertEquals('PUT', $request->env('REQUEST_METHOD'));
+        $this->assertEquals('PUT', $request->getEnv('REQUEST_METHOD'));
 
         $request = new ServerRequest([
             'environment' => ['REQUEST_METHOD' => 'POST'],
             'post' => ['_method' => 'PUT']
         ]);
-        $this->assertEquals('PUT', $request->env('REQUEST_METHOD'));
-        $this->assertEquals('POST', $request->env('ORIGINAL_REQUEST_METHOD'));
+        $this->assertEquals('PUT', $request->getEnv('REQUEST_METHOD'));
+        $this->assertEquals('POST', $request->getEnv('ORIGINAL_REQUEST_METHOD'));
     }
 
     /**
@@ -659,25 +661,27 @@ class ServerRequestTest extends TestCase
      */
     public function testDefaultEnvValue()
     {
-        $_ENV['DOES_NOT_EXIST'] = null;
-        $request = new ServerRequest();
-        $this->assertNull($request->env('DOES_NOT_EXIST'));
-        $this->assertEquals('default', $request->env('DOES_NOT_EXIST', null, 'default'));
-
-        $_ENV['DOES_EXIST'] = 'some value';
-        $request = new ServerRequest();
-        $this->assertEquals('some value', $request->env('DOES_EXIST'));
-        $this->assertEquals('some value', $request->env('DOES_EXIST', null, 'default'));
-
-        $_ENV['EMPTY_VALUE'] = '';
-        $request = new ServerRequest();
-        $this->assertEquals('', $request->env('EMPTY_VALUE'));
-        $this->assertEquals('', $request->env('EMPTY_VALUE', null, 'default'));
-
-        $_ENV['ZERO'] = '0';
-        $request = new ServerRequest();
-        $this->assertEquals('0', $request->env('ZERO'));
-        $this->assertEquals('0', $request->env('ZERO', null, 'default'));
+        $this->deprecated(function () {
+            $_ENV['DOES_NOT_EXIST'] = null;
+            $request = new ServerRequest();
+            $this->assertNull($request->getEnv('DOES_NOT_EXIST'));
+            $this->assertEquals('default', $request->env('DOES_NOT_EXIST', null, 'default'));
+
+            $_ENV['DOES_EXIST'] = 'some value';
+            $request = new ServerRequest();
+            $this->assertEquals('some value', $request->env('DOES_EXIST'));
+            $this->assertEquals('some value', $request->env('DOES_EXIST', null, 'default'));
+
+            $_ENV['EMPTY_VALUE'] = '';
+            $request = new ServerRequest();
+            $this->assertEquals('', $request->env('EMPTY_VALUE'));
+            $this->assertEquals('', $request->env('EMPTY_VALUE', null, 'default'));
+
+            $_ENV['ZERO'] = '0';
+            $request = new ServerRequest();
+            $this->assertEquals('0', $request->env('ZERO'));
+            $this->assertEquals('0', $request->env('ZERO', null, 'default'));
+        });
     }
 
     /**
@@ -775,21 +779,21 @@ class ServerRequestTest extends TestCase
 
         $this->assertFalse($request->is('undefined-behavior'));
 
-        $request->env('REQUEST_METHOD', 'GET');
+        $request = $request->withEnv('REQUEST_METHOD', 'GET');
         $this->assertTrue($request->is('get'));
 
-        $request->env('REQUEST_METHOD', 'POST');
+        $request = $request->withEnv('REQUEST_METHOD', 'POST');
         $this->assertTrue($request->is('POST'));
 
-        $request->env('REQUEST_METHOD', 'PUT');
+        $request = $request->withEnv('REQUEST_METHOD', 'PUT');
         $this->assertTrue($request->is('put'));
         $this->assertFalse($request->is('get'));
 
-        $request->env('REQUEST_METHOD', 'DELETE');
+        $request = $request->withEnv('REQUEST_METHOD', 'DELETE');
         $this->assertTrue($request->is('delete'));
         $this->assertTrue($request->isDelete());
 
-        $request->env('REQUEST_METHOD', 'delete');
+        $request = $request->withEnv('REQUEST_METHOD', 'delete');
         $this->assertFalse($request->is('delete'));
     }
 
@@ -801,15 +805,15 @@ class ServerRequestTest extends TestCase
     public function testIsJsonAndXml()
     {
         $request = new ServerRequest();
-        $request->env('HTTP_ACCEPT', 'application/json, text/plain, */*');
+        $request = $request->withEnv('HTTP_ACCEPT', 'application/json, text/plain, */*');
         $this->assertTrue($request->is('json'));
 
         $request = new ServerRequest();
-        $request->env('HTTP_ACCEPT', 'application/xml, text/plain, */*');
+        $request = $request->withEnv('HTTP_ACCEPT', 'application/xml, text/plain, */*');
         $this->assertTrue($request->is('xml'));
 
         $request = new ServerRequest();
-        $request->env('HTTP_ACCEPT', 'text/xml, */*');
+        $request = $request->withEnv('HTTP_ACCEPT', 'text/xml, */*');
         $this->assertTrue($request->is('xml'));
     }
 
@@ -822,13 +826,13 @@ class ServerRequestTest extends TestCase
     {
         $request = new ServerRequest();
 
-        $request->env('REQUEST_METHOD', 'GET');
+        $request = $request->withEnv('REQUEST_METHOD', 'GET');
         $this->assertTrue($request->is(['get', 'post']));
 
-        $request->env('REQUEST_METHOD', 'POST');
+        $request = $request->withEnv('REQUEST_METHOD', 'POST');
         $this->assertTrue($request->is(['get', 'post']));
 
-        $request->env('REQUEST_METHOD', 'PUT');
+        $request = $request->withEnv('REQUEST_METHOD', 'PUT');
         $this->assertFalse($request->is(['get', 'post']));
     }
 
@@ -841,8 +845,8 @@ class ServerRequestTest extends TestCase
     {
         $request = new ServerRequest();
 
-        $request->env('HTTP_X_REQUESTED_WITH', 'XMLHttpRequest');
-        $request->env('REQUEST_METHOD', 'GET');
+        $request = $request->withEnv('HTTP_X_REQUESTED_WITH', 'XMLHttpRequest');
+        $request = $request->withEnv('REQUEST_METHOD', 'GET');
 
         $this->assertTrue($request->isAll(['ajax', 'get']));
         $this->assertFalse($request->isAll(['post', 'get']));
@@ -857,9 +861,11 @@ class ServerRequestTest extends TestCase
      */
     public function testMethod()
     {
-        $request = new ServerRequest(['environment' => ['REQUEST_METHOD' => 'delete']]);
+        $this->deprecated(function () {
+            $request = new ServerRequest(['environment' => ['REQUEST_METHOD' => 'delete']]);
 
-        $this->assertEquals('delete', $request->method());
+            $this->assertEquals('delete', $request->method());
+        });
     }
 
     /**
@@ -978,8 +984,8 @@ class ServerRequestTest extends TestCase
 
         $this->assertEquals('80', $request->port());
 
-        $request->env('SERVER_PORT', '443');
-        $request->env('HTTP_X_FORWARDED_PORT', '80');
+        $request = $request->withEnv('SERVER_PORT', '443');
+        $request = $request->withEnv('HTTP_X_FORWARDED_PORT', '80');
         $this->assertEquals('443', $request->port());
 
         $request->trustProxy = true;
@@ -997,7 +1003,7 @@ class ServerRequestTest extends TestCase
 
         $this->assertEquals('example.com', $request->domain());
 
-        $request->env('HTTP_HOST', 'something.example.co.uk');
+        $request = $request->withEnv('HTTP_HOST', 'something.example.co.uk');
         $this->assertEquals('example.co.uk', $request->domain(2));
     }
 
@@ -1012,10 +1018,10 @@ class ServerRequestTest extends TestCase
 
         $this->assertEquals('https', $request->scheme());
 
-        $request->env('HTTPS', '');
+        $request = $request->withEnv('HTTPS', '');
         $this->assertEquals('http', $request->scheme());
 
-        $request->env('HTTP_X_FORWARDED_PROTO', 'https');
+        $request = $request->withEnv('HTTP_X_FORWARDED_PROTO', 'https');
         $request->trustProxy = true;
         $this->assertEquals('https', $request->scheme());
     }
@@ -1031,13 +1037,13 @@ class ServerRequestTest extends TestCase
 
         $this->assertEquals(['something'], $request->subdomains());
 
-        $request->env('HTTP_HOST', 'www.something.example.com');
+        $request = $request->withEnv('HTTP_HOST', 'www.something.example.com');
         $this->assertEquals(['www', 'something'], $request->subdomains());
 
-        $request->env('HTTP_HOST', 'www.something.example.co.uk');
+        $request = $request->withEnv('HTTP_HOST', 'www.something.example.co.uk');
         $this->assertEquals(['www', 'something'], $request->subdomains(2));
 
-        $request->env('HTTP_HOST', 'example.co.uk');
+        $request = $request->withEnv('HTTP_HOST', 'example.co.uk');
         $this->assertEquals([], $request->subdomains(2));
     }
 
@@ -1050,16 +1056,16 @@ class ServerRequestTest extends TestCase
     {
         $request = new ServerRequest();
 
-        $request->env('HTTP_USER_AGENT', 'Shockwave Flash');
+        $request = $request->withEnv('HTTP_USER_AGENT', 'Shockwave Flash');
         $this->assertTrue($request->is('flash'));
 
-        $request->env('HTTP_USER_AGENT', 'Adobe Flash');
+        $request = $request->withEnv('HTTP_USER_AGENT', 'Adobe Flash');
         $this->assertTrue($request->is('flash'));
 
-        $request->env('HTTP_X_REQUESTED_WITH', 'XMLHttpRequest');
+        $request = $request->withEnv('HTTP_X_REQUESTED_WITH', 'XMLHttpRequest');
         $this->assertTrue($request->is('ajax'));
 
-        $request->env('HTTP_X_REQUESTED_WITH', 'XMLHTTPREQUEST');
+        $request = $request->withEnv('HTTP_X_REQUESTED_WITH', 'XMLHTTPREQUEST');
         $this->assertFalse($request->is('ajax'));
         $this->assertFalse($request->isAjax());
     }
@@ -1085,25 +1091,25 @@ class ServerRequestTest extends TestCase
     {
         $request = new ServerRequest();
 
-        $request->env('HTTPS', 1);
+        $request = $request->withEnv('HTTPS', 1);
         $this->assertTrue($request->is('ssl'));
 
-        $request->env('HTTPS', 'on');
+        $request = $request->withEnv('HTTPS', 'on');
         $this->assertTrue($request->is('ssl'));
 
-        $request->env('HTTPS', '1');
+        $request = $request->withEnv('HTTPS', '1');
         $this->assertTrue($request->is('ssl'));
 
-        $request->env('HTTPS', 'I am not empty');
+        $request = $request->withEnv('HTTPS', 'I am not empty');
         $this->assertFalse($request->is('ssl'));
 
-        $request->env('HTTPS', 'off');
+        $request = $request->withEnv('HTTPS', 'off');
         $this->assertFalse($request->is('ssl'));
 
-        $request->env('HTTPS', false);
+        $request = $request->withEnv('HTTPS', false);
         $this->assertFalse($request->is('ssl'));
 
-        $request->env('HTTPS', '');
+        $request = $request->withEnv('HTTPS', '');
         $this->assertFalse($request->is('ssl'));
     }
 
@@ -1114,13 +1120,15 @@ class ServerRequestTest extends TestCase
      */
     public function testMagicget()
     {
-        $request = new ServerRequest();
-        $request->params = ['controller' => 'posts', 'action' => 'view', 'plugin' => 'blogs'];
+        $this->deprecated(function () {
+            $request = new ServerRequest();
+            $request->params = ['controller' => 'posts', 'action' => 'view', 'plugin' => 'blogs'];
 
-        $this->assertEquals('posts', $request->controller);
-        $this->assertEquals('view', $request->action);
-        $this->assertEquals('blogs', $request->plugin);
-        $this->assertNull($request->banana);
+            $this->assertEquals('posts', $request->controller);
+            $this->assertEquals('view', $request->action);
+            $this->assertEquals('blogs', $request->plugin);
+            $this->assertNull($request->banana);
+        });
     }
 
     /**
@@ -1130,16 +1138,18 @@ class ServerRequestTest extends TestCase
      */
     public function testMagicisset()
     {
-        $request = new ServerRequest();
-        $request->params = [
-            'controller' => 'posts',
-            'action' => 'view',
-            'plugin' => 'blogs',
-        ];
-
-        $this->assertTrue(isset($request->controller));
-        $this->assertFalse(isset($request->notthere));
-        $this->assertNotEmpty($request->controller);
+        $this->deprecated(function () {
+            $request = new ServerRequest();
+            $request->params = [
+                'controller' => 'posts',
+                'action' => 'view',
+                'plugin' => 'blogs',
+            ];
+
+            $this->assertTrue(isset($request->controller));
+            $this->assertFalse(isset($request->notthere));
+            $this->assertNotEmpty($request->controller);
+        });
     }
 
     /**
@@ -1149,29 +1159,31 @@ class ServerRequestTest extends TestCase
      */
     public function testArrayAccess()
     {
-        $request = new ServerRequest();
-        $request->params = ['controller' => 'posts', 'action' => 'view', 'plugin' => 'blogs'];
+        $this->deprecated(function () {
+            $request = new ServerRequest();
+            $request->params = ['controller' => 'posts', 'action' => 'view', 'plugin' => 'blogs'];
 
-        $this->assertEquals('posts', $request['controller']);
+            $this->assertEquals('posts', $request['controller']);
 
-        $request['slug'] = 'speedy-slug';
-        $this->assertEquals('speedy-slug', $request->slug);
-        $this->assertEquals('speedy-slug', $request['slug']);
+            $request['slug'] = 'speedy-slug';
+            $this->assertEquals('speedy-slug', $request->slug);
+            $this->assertEquals('speedy-slug', $request['slug']);
 
-        $this->assertTrue(isset($request['action']));
-        $this->assertFalse(isset($request['wrong-param']));
+            $this->assertTrue(isset($request['action']));
+            $this->assertFalse(isset($request['wrong-param']));
 
-        $this->assertTrue(isset($request['plugin']));
-        unset($request['plugin']);
-        $this->assertFalse(isset($request['plugin']));
-        $this->assertNull($request['plugin']);
-        $this->assertNull($request->plugin);
+            $this->assertTrue(isset($request['plugin']));
+            unset($request['plugin']);
+            $this->assertFalse(isset($request['plugin']));
+            $this->assertNull($request['plugin']);
+            $this->assertNull($request->plugin);
 
-        $request = new ServerRequest(['url' => 'some/path?one=something&two=else']);
-        $this->assertTrue(isset($request['url']['one']));
+            $request = new ServerRequest(['url' => 'some/path?one=something&two=else']);
+            $this->assertTrue(isset($request['url']['one']));
 
-        $request->data = ['Post' => ['title' => 'something']];
-        $this->assertEquals('something', $request['data']['Post']['title']);
+            $request->data = ['Post' => ['title' => 'something']];
+            $this->assertEquals('something', $request['data']['Post']['title']);
+        });
     }
 
     /**
@@ -1276,11 +1288,11 @@ class ServerRequestTest extends TestCase
             'HTTP_CONTENT_MD5' => 'abc123'
         ]]);
 
-        $this->assertEquals($request->env('HTTP_HOST'), $request->header('host'));
-        $this->assertEquals($request->env('HTTP_USER_AGENT'), $request->header('User-Agent'));
-        $this->assertEquals($request->env('CONTENT_LENGTH'), $request->header('content-length'));
-        $this->assertEquals($request->env('CONTENT_TYPE'), $request->header('content-type'));
-        $this->assertEquals($request->env('HTTP_CONTENT_MD5'), $request->header('content-md5'));
+        $this->assertEquals($request->getEnv('HTTP_HOST'), $request->getHeaderLine('host'));
+        $this->assertEquals($request->getEnv('HTTP_USER_AGENT'), $request->getHeaderLine('User-Agent'));
+        $this->assertEquals($request->getEnv('CONTENT_LENGTH'), $request->getHeaderLine('content-length'));
+        $this->assertEquals($request->getEnv('CONTENT_TYPE'), $request->getHeaderLine('content-type'));
+        $this->assertEquals($request->getEnv('HTTP_CONTENT_MD5'), $request->getHeaderLine('content-md5'));
     }
 
     /**
@@ -1345,7 +1357,7 @@ class ServerRequestTest extends TestCase
         ]]);
         $this->assertEquals([], $request->getHeader('Not-there'));
 
-        $expected = [$request->env('HTTP_HOST')];
+        $expected = [$request->getEnv('HTTP_HOST')];
         $this->assertEquals($expected, $request->getHeader('Host'));
         $this->assertEquals($expected, $request->getHeader('host'));
         $this->assertEquals($expected, $request->getHeader('HOST'));
@@ -1368,7 +1380,7 @@ class ServerRequestTest extends TestCase
         ]]);
         $this->assertEquals('', $request->getHeaderLine('Authorization'));
 
-        $expected = $request->env('CONTENT_LENGTH');
+        $expected = $request->getEnv('CONTENT_LENGTH');
         $this->assertEquals($expected, $request->getHeaderLine('Content-Length'));
         $this->assertEquals($expected, $request->getHeaderLine('content-Length'));
         $this->assertEquals($expected, $request->getHeaderLine('ConTent-LenGth'));
@@ -1394,11 +1406,16 @@ class ServerRequestTest extends TestCase
 
         $this->assertEquals(1337, $request->getHeaderLine('Content-length'), 'old request is unchanged');
         $this->assertEquals(999, $new->getHeaderLine('Content-length'), 'new request is correct');
-        $this->assertEquals(999, $new->header('Content-Length'));
+        $this->deprecated(function () use ($new) {
+            $this->assertEquals(999, $new->header('Content-Length'));
+        });
 
         $new = $request->withHeader('Double', ['a']);
         $this->assertEquals(['a'], $new->getHeader('Double'), 'List values are overwritten');
-        $this->assertEquals(['a'], $new->header('Double'), 'headers written in bc way.');
+
+        $this->deprecated(function () use ($new) {
+            $this->assertEquals(['a'], $new->header('Double'), 'headers written in bc way.');
+        });
     }
 
     /**
@@ -1914,7 +1931,7 @@ class ServerRequestTest extends TestCase
         $_SERVER['REQUEST_URI'] = '/posts/index/add.add';
         $request = ServerRequestFactory::fromGlobals();
         $this->assertEquals('', $request->base);
-        $this->assertEquals([], $request->query);
+        $this->assertEquals([], $request->getQueryParams());
 
         $_GET = [];
         $_GET['/cake_dev/posts/index/add_add'] = '';
@@ -1922,7 +1939,7 @@ class ServerRequestTest extends TestCase
         $_SERVER['REQUEST_URI'] = '/cake_dev/posts/index/add.add';
         $request = ServerRequestFactory::fromGlobals();
         $this->assertEquals('/cake_dev', $request->base);
-        $this->assertEquals([], $request->query);
+        $this->assertEquals([], $request->getQueryParams());
     }
 
     /**
@@ -1938,7 +1955,7 @@ class ServerRequestTest extends TestCase
         $_SERVER['REQUEST_URI'] = '/posts/add/%E2%88%82%E2%88%82';
         $request = ServerRequestFactory::fromGlobals();
         $this->assertEquals('', $request->base);
-        $this->assertEquals([], $request->query);
+        $this->assertEquals([], $request->getQueryParams());
 
         $_GET = [];
         $_GET['/cake_dev/posts/add/∂∂'] = '';
@@ -1946,7 +1963,7 @@ class ServerRequestTest extends TestCase
         $_SERVER['REQUEST_URI'] = '/cake_dev/posts/add/%E2%88%82%E2%88%82';
         $request = ServerRequestFactory::fromGlobals();
         $this->assertEquals('/cake_dev', $request->base);
-        $this->assertEquals([], $request->query);
+        $this->assertEquals([], $request->getQueryParams());
     }
 
     /**
@@ -2703,23 +2720,27 @@ class ServerRequestTest extends TestCase
             'action' => 'index',
         ]);
 
-        $this->assertInstanceOf('Cake\Http\ServerRequest', $request->param('some', 'thing'), 'Method has not returned $this');
+        $this->assertInstanceOf(
+            'Cake\Http\ServerRequest',
+            $request->withParam('some', 'thing'),
+            'Method has not returned $this'
+        );
 
         $request->param('Post.null', null);
-        $this->assertNull($request->params['Post']['null']);
+        $this->assertNull($request->getQueryParams()['Post']['null']);
 
         $request->param('Post.false', false);
-        $this->assertFalse($request->params['Post']['false']);
+        $this->assertFalse($request->getQueryParams()['Post']['false']);
 
         $request->param('Post.zero', 0);
-        $this->assertSame(0, $request->params['Post']['zero']);
+        $this->assertSame(0, $request->getQueryParams()['Post']['zero']);
 
         $request->param('Post.empty', '');
-        $this->assertSame('', $request->params['Post']['empty']);
+        $this->assertSame('', $request->getQueryParams()['Post']['empty']);
 
-        $this->assertSame('index', $request->action);
+        $this->assertSame('index', $request->getParam('action'));
         $request->param('action', 'edit');
-        $this->assertSame('edit', $request->action);
+        $this->assertSame('edit', $request->getParam('action'));
     }
 
     /**
@@ -2732,28 +2753,27 @@ class ServerRequestTest extends TestCase
         $request = new ServerRequest();
 
         // Weird language
-        $request->env('HTTP_ACCEPT_LANGUAGE', 'inexistent,en-ca');
+        $request = $request->withEnv('HTTP_ACCEPT_LANGUAGE', 'inexistent,en-ca');
         $result = $request->acceptLanguage();
         $this->assertEquals(['inexistent', 'en-ca'], $result, 'Languages do not match');
 
         // No qualifier
-        $request->env('HTTP_ACCEPT_LANGUAGE', 'es_mx,en_ca');
+        $request = $request->withEnv('HTTP_ACCEPT_LANGUAGE', 'es_mx,en_ca');
         $result = $request->acceptLanguage();
         $this->assertEquals(['es-mx', 'en-ca'], $result, 'Languages do not match');
 
         // With qualifier
-        $request->env('HTTP_ACCEPT_LANGUAGE', 'en-US,en;q=0.8,pt-BR;q=0.6,pt;q=0.4');
+        $request = $request->withEnv('HTTP_ACCEPT_LANGUAGE', 'en-US,en;q=0.8,pt-BR;q=0.6,pt;q=0.4');
         $result = $request->acceptLanguage();
         $this->assertEquals(['en-us', 'en', 'pt-br', 'pt'], $result, 'Languages do not match');
 
         // With spaces
-        $request->env('HTTP_ACCEPT_LANGUAGE', 'da, en-gb;q=0.8, en;q=0.7');
+        $request = $request->withEnv('HTTP_ACCEPT_LANGUAGE', 'da, en-gb;q=0.8, en;q=0.7');
         $result = $request->acceptLanguage();
         $this->assertEquals(['da', 'en-gb', 'en'], $result, 'Languages do not match');
 
         // Checking if requested
-        $request->env('HTTP_ACCEPT_LANGUAGE', 'es_mx,en_ca');
-        $result = $request->acceptLanguage();
+        $request = $request->withEnv('HTTP_ACCEPT_LANGUAGE', 'es_mx,en_ca');
 
         $result = $request->acceptLanguage('en-ca');
         $this->assertTrue($result);
@@ -2775,30 +2795,32 @@ class ServerRequestTest extends TestCase
      */
     public function testHere()
     {
-        Configure::write('App.base', '/base_path');
-        $q = ['test' => 'value'];
-        $request = new ServerRequest([
-            'query' => $q,
-            'url' => '/posts/add/1/value',
-            'base' => '/base_path'
-        ]);
-
-        $result = $request->here();
-        $this->assertEquals('/base_path/posts/add/1/value?test=value', $result);
-
-        $result = $request->here(false);
-        $this->assertEquals('/posts/add/1/value?test=value', $result);
-
-        $request = new ServerRequest([
-            'url' => '/posts/base_path/1/value',
-            'query' => ['test' => 'value'],
-            'base' => '/base_path'
-        ]);
-        $result = $request->here();
-        $this->assertEquals('/base_path/posts/base_path/1/value?test=value', $result);
-
-        $result = $request->here(false);
-        $this->assertEquals('/posts/base_path/1/value?test=value', $result);
+        $this->deprecated(function () {
+            Configure::write('App.base', '/base_path');
+            $q = ['test' => 'value'];
+            $request = new ServerRequest([
+                'query' => $q,
+                'url' => '/posts/add/1/value',
+                'base' => '/base_path'
+            ]);
+
+            $result = $request->here();
+            $this->assertEquals('/base_path/posts/add/1/value?test=value', $result);
+
+            $result = $request->here(false);
+            $this->assertEquals('/posts/add/1/value?test=value', $result);
+
+            $request = new ServerRequest([
+                'url' => '/posts/base_path/1/value',
+                'query' => ['test' => 'value'],
+                'base' => '/base_path'
+            ]);
+            $result = $request->here();
+            $this->assertEquals('/base_path/posts/base_path/1/value?test=value', $result);
+
+            $result = $request->here(false);
+            $this->assertEquals('/posts/base_path/1/value?test=value', $result);
+        });
     }
 
     /**
@@ -2808,12 +2830,14 @@ class ServerRequestTest extends TestCase
      */
     public function testHereWithSpaceInUrl()
     {
-        Configure::write('App.base', '');
-        $_GET = ['/admin/settings/settings/prefix/Access_Control' => ''];
-        $request = new ServerRequest('/admin/settings/settings/prefix/Access%20Control');
+        $this->deprecated(function () {
+            Configure::write('App.base', '');
+            $_GET = ['/admin/settings/settings/prefix/Access_Control' => ''];
+            $request = new ServerRequest('/admin/settings/settings/prefix/Access%20Control');
 
-        $result = $request->here();
-        $this->assertEquals('/admin/settings/settings/prefix/Access%20Control', $result);
+            $result = $request->here();
+            $this->assertEquals('/admin/settings/settings/prefix/Access%20Control', $result);
+        });
     }
 
     /**
@@ -2823,11 +2847,13 @@ class ServerRequestTest extends TestCase
      */
     public function testSetInput()
     {
-        $request = new ServerRequest();
+        $this->deprecated(function () {
+            $request = new ServerRequest();
 
-        $request->setInput('I came from setInput');
-        $result = $request->input();
-        $this->assertEquals('I came from setInput', $result);
+            $request->setInput('I came from setInput');
+            $result = $request->input();
+            $this->assertEquals('I came from setInput', $result);
+        });
     }
 
     /**
@@ -3039,10 +3065,16 @@ XML;
                 ]
             ]
         ]);
-        $this->assertEquals('A value in the cookie', $request->cookie('testing'));
+
+        $this->deprecated(function () use ($request) {
+            $this->assertEquals('A value in the cookie', $request->cookie('testing'));
+        });
         $this->assertEquals('A value in the cookie', $request->getCookie('testing'));
 
-        $this->assertNull($request->cookie('not there'));
+        $this->deprecated(function () use ($request) {
+            $this->assertNull($request->cookie('not there'));
+        });
+
         $this->assertNull($request->getCookie('not there'));
         $this->assertSame('default', $request->getCookie('not there', 'default'));
 
@@ -3135,7 +3167,7 @@ XML;
 
         $this->assertTrue($request->allowMethod('put'));
 
-        $request->env('REQUEST_METHOD', 'DELETE');
+        $request = $request->withEnv('REQUEST_METHOD', 'DELETE');
         $this->assertTrue($request->allowMethod(['post', 'delete']));
     }
 
@@ -3170,12 +3202,14 @@ XML;
      */
     public function testSession()
     {
-        $session = new Session;
-        $request = new ServerRequest(['session' => $session]);
-        $this->assertSame($session, $request->session());
+        $this->deprecated(function () {
+            $session = new Session;
+            $request = new ServerRequest(['session' => $session]);
+            $this->assertSame($session, $request->session());
 
-        $request = ServerRequestFactory::fromGlobals();
-        $this->assertEquals($session, $request->session());
+            $request = ServerRequestFactory::fromGlobals();
+            $this->assertEquals($session, $request->session());
+        });
     }
 
     /**
@@ -3222,7 +3256,7 @@ XML;
             'post' => $post,
             'environment' => ['REQUEST_METHOD' => 'POST']
         ]);
-        $this->assertEmpty($request->data);
+        $this->assertEmpty($request->getData());
 
         $post = ['_method' => 'GET', 'foo' => 'bar'];
         $request = new ServerRequest([
@@ -3232,7 +3266,7 @@ XML;
                 'HTTP_X_HTTP_METHOD_OVERRIDE' => 'GET'
             ]
         ]);
-        $this->assertEmpty($request->data);
+        $this->assertEmpty($request->getData());
     }
 
     /**
@@ -3247,17 +3281,17 @@ XML;
         ]);
         $result = $request->withParam('action', 'view');
         $this->assertNotSame($result, $request, 'New instance should be made');
-        $this->assertFalse($request->param('action'), 'No side-effect on original');
-        $this->assertSame('view', $result->param('action'));
+        $this->assertFalse($request->getParam('action'), 'No side-effect on original');
+        $this->assertSame('view', $result->getParam('action'));
 
         $result = $request->withParam('action', 'index')
             ->withParam('plugin', 'DebugKit')
             ->withParam('prefix', 'Admin');
         $this->assertNotSame($result, $request, 'New instance should be made');
-        $this->assertFalse($request->param('action'), 'No side-effect on original');
-        $this->assertSame('index', $result->param('action'));
-        $this->assertSame('DebugKit', $result->param('plugin'));
-        $this->assertSame('Admin', $result->param('prefix'));
+        $this->assertFalse($request->getParam('action'), 'No side-effect on original');
+        $this->assertSame('index', $result->getParam('action'));
+        $this->assertSame('DebugKit', $result->getParam('plugin'));
+        $this->assertSame('Admin', $result->getParam('prefix'));
     }
 
     /**
@@ -3306,11 +3340,11 @@ XML;
             ]
         ]);
         $result = $request->withData('Model.new_value', 'new value');
-        $this->assertNull($request->data('Model.new_value'), 'Original request should not change.');
+        $this->assertNull($request->getData('Model.new_value'), 'Original request should not change.');
         $this->assertNotSame($result, $request);
-        $this->assertEquals('new value', $result->data('Model.new_value'));
-        $this->assertEquals('new value', $result->data['Model']['new_value']);
-        $this->assertEquals('value', $result->data('Model.field'));
+        $this->assertEquals('new value', $result->getData('Model.new_value'));
+        $this->assertEquals('new value', $result->getData()['Model']['new_value']);
+        $this->assertEquals('value', $result->getData('Model.field'));
     }
 
     /**
@@ -3330,11 +3364,11 @@ XML;
         $result = $request->withData('Model.field.new_value', 'new value');
         $this->assertEquals(
             'new value',
-            $result->data('Model.field.new_value')
+            $result->getData('Model.field.new_value')
         );
         $this->assertEquals(
             'new value',
-            $result->data['Model']['field']['new_value']
+            $result->getData()['Model']['field']['new_value']
         );
     }
 
@@ -3360,7 +3394,7 @@ XML;
             'zero' => 0,
             'zero_string' => '0'
         ];
-        $this->assertSame($expected, $result->data());
+        $this->assertSame($expected, $result->getData());
     }
 
     /**
@@ -3439,7 +3473,7 @@ XML;
         ]);
 
         if ($prop === 'session') {
-            $this->assertSame($request->session(), $request->getAttribute($prop));
+            $this->assertSame($request->getSession(), $request->getAttribute($prop));
         } else {
             $this->assertSame($request->{$prop}, $request->getAttribute($prop));
         }