From 9dca5645195f1e49c44be9b30e990300127ac69c Mon Sep 17 00:00:00 2001 From: dogmatic69 Date: Sun, 25 May 2014 00:46:40 +0100 Subject: [PATCH] make the default return false so it matches previous use, improve tests for new method --- lib/Cake/Network/CakeRequest.php | 2 +- .../Test/Case/Network/CakeRequestTest.php | 77 ++++++++++++++----- 2 files changed, 58 insertions(+), 21 deletions(-) diff --git a/lib/Cake/Network/CakeRequest.php b/lib/Cake/Network/CakeRequest.php index f8553a45c..5ee40b0a0 100644 --- a/lib/Cake/Network/CakeRequest.php +++ b/lib/Cake/Network/CakeRequest.php @@ -875,7 +875,7 @@ class CakeRequest implements ArrayAccess { */ public function param($name) { if (!isset($this->params[$name])) { - return Hash::get($this->params, $name); + return Hash::get($this->params, $name, false); } return $this->params[$name]; } diff --git a/lib/Cake/Test/Case/Network/CakeRequestTest.php b/lib/Cake/Test/Case/Network/CakeRequestTest.php index 2dc28941c..2309d2f94 100644 --- a/lib/Cake/Test/Case/Network/CakeRequestTest.php +++ b/lib/Cake/Test/Case/Network/CakeRequestTest.php @@ -1995,26 +1995,6 @@ class CakeRequestTest extends CakeTestCase { $this->assertNull($result); } -/** - * Test using param() - * - * @return void - */ - public function testReadingParams() { - $request = new CakeRequest(); - $request->addParams(array( - 'controller' => 'posts', - 'admin' => true, - 'truthy' => 1, - 'zero' => '0', - )); - $this->assertFalse($request->param('not_set')); - $this->assertTrue($request->param('admin')); - $this->assertEquals(1, $request->param('truthy')); - $this->assertEquals('posts', $request->param('controller')); - $this->assertEquals('0', $request->param('zero')); - } - /** * Test the data() method reading * @@ -2077,6 +2057,63 @@ class CakeRequestTest extends CakeTestCase { $this->assertSame('', $request->data['Post']['empty']); } +/** + * @dataProvider paramReadingDataProvider + */ + public function testParamReading($toRead, $expected) { + $request = new CakeRequest('/'); + $request->addParams(array( + 'action' => 'index', + 'foo' => 'bar', + 'baz' => array( + 'a' => array( + 'b' => 'c', + ), + ), + 'admin' => true, + 'truthy' => 1, + 'zero' => '0', + )); + $this->assertEquals($expected, $request->param($toRead)); + } + + public function paramReadingDataProvider() { + return array( + array( + 'action', + 'index', + ), + array( + 'baz', + array( + 'a' => array( + 'b' => 'c', + ), + ), + ), + array( + 'baz.a.b', + 'c', + ), + array( + 'does_not_exist', + false, + ), + array( + 'admin', + true, + ), + array( + 'truthy', + 1, + ), + array( + 'zero', + '0', + ), + ); + } + /** * Test accept language *