diff --git a/lib/Cake/Controller/Component/CookieComponent.php b/lib/Cake/Controller/Component/CookieComponent.php index 45551a8af..bdf344a5b 100644 --- a/lib/Cake/Controller/Component/CookieComponent.php +++ b/lib/Cake/Controller/Component/CookieComponent.php @@ -281,6 +281,20 @@ class CookieComponent extends Component { return $this->_values[$this->name][$key]; } +/** + * Returns true if given variable is set in cookie. + * + * @param string $var Variable name to check for + * @return boolean True if variable is there + */ + public function check($key = null) { + if (empty($key)) { + return false; + } + $result = $this->read($key); + return isset($result); + } + /** * Delete a cookie value * diff --git a/lib/Cake/Core/Configure.php b/lib/Cake/Core/Configure.php index 09615825c..f2101f795 100644 --- a/lib/Cake/Core/Configure.php +++ b/lib/Cake/Core/Configure.php @@ -170,6 +170,20 @@ class Configure { return Hash::get(self::$_values, $var); } +/** + * Returns true if given variable is set in Configure. + * + * @param string $var Variable name to check for + * @return boolean True if variable is there + */ + public static function check($var = null) { + if (empty($var)) { + return false; + } + $result = Hash::get(self::$_values, $var); + return isset($result); + } + /** * Used to delete a variable from Configure. * diff --git a/lib/Cake/Test/Case/Controller/Component/CookieComponentTest.php b/lib/Cake/Test/Case/Controller/Component/CookieComponentTest.php index 6ed65a673..7609b89ae 100644 --- a/lib/Cake/Test/Case/Controller/Component/CookieComponentTest.php +++ b/lib/Cake/Test/Case/Controller/Component/CookieComponentTest.php @@ -536,6 +536,60 @@ class CookieComponentTest extends CakeTestCase { $this->assertNull($this->Cookie->read('value')); } +/** + * testCheck method + * + * @return void + */ + public function testCheck() { + $this->Cookie->write('CookieComponentTestCase', 'value'); + $this->assertTrue($this->Cookie->check('CookieComponentTestCase')); + + $this->assertFalse($this->Cookie->check('NotExistingCookieComponentTestCase')); + } + +/** + * testCheckingSavedEmpty method + * + * @return void + */ + public function testCheckingSavedEmpty() { + $this->Cookie->write('CookieComponentTestCase', 0); + $this->assertTrue($this->Cookie->check('CookieComponentTestCase')); + + $this->Cookie->write('CookieComponentTestCase', '0'); + $this->assertTrue($this->Cookie->check('CookieComponentTestCase')); + + $this->Cookie->write('CookieComponentTestCase', false); + $this->assertTrue($this->Cookie->check('CookieComponentTestCase')); + + $this->Cookie->write('CookieComponentTestCase', null); + $this->assertFalse($this->Cookie->check('CookieComponentTestCase')); + } + +/** + * testCheckKeyWithSpaces method + * + * @return void + */ + public function testCheckKeyWithSpaces() { + $this->Cookie->write('CookieComponent Test', "test"); + $this->assertTrue($this->Cookie->check('CookieComponent Test')); + $this->Cookie->delete('CookieComponent Test'); + + $this->Cookie->write('CookieComponent Test.Test Case', "test"); + $this->assertTrue($this->Cookie->check('CookieComponent Test.Test Case')); + } + +/** + * testCheckEmpty + * + * @return void + */ + public function testCheckEmpty() { + $this->assertFalse($this->Cookie->check()); + } + /** * test that deleting a top level keys kills the child elements too. * diff --git a/lib/Cake/Test/Case/Core/ConfigureTest.php b/lib/Cake/Test/Case/Core/ConfigureTest.php index 7351f83f1..5dd1fe0b6 100644 --- a/lib/Cake/Test/Case/Core/ConfigureTest.php +++ b/lib/Cake/Test/Case/Core/ConfigureTest.php @@ -177,6 +177,60 @@ class ConfigureTest extends CakeTestCase { $this->assertTrue($result === null); } +/** + * testCheck method + * + * @return void + */ + public function testCheck() { + Configure::write('ConfigureTestCase', 'value'); + $this->assertTrue(Configure::check('ConfigureTestCase')); + + $this->assertFalse(Configure::check('NotExistingConfigureTestCase')); + } + +/** + * testCheckingSavedEmpty method + * + * @return void + */ + public function testCheckingSavedEmpty() { + $this->assertTrue(Configure::write('ConfigureTestCase', 0)); + $this->assertTrue(Configure::check('ConfigureTestCase')); + + $this->assertTrue(Configure::write('ConfigureTestCase', '0')); + $this->assertTrue(Configure::check('ConfigureTestCase')); + + $this->assertTrue(Configure::write('ConfigureTestCase', false)); + $this->assertTrue(Configure::check('ConfigureTestCase')); + + $this->assertTrue(Configure::write('ConfigureTestCase', null)); + $this->assertFalse(Configure::check('ConfigureTestCase')); + } + +/** + * testCheckKeyWithSpaces method + * + * @return void + */ + public function testCheckKeyWithSpaces() { + $this->assertTrue(Configure::write('Configure Test', "test")); + $this->assertTrue(Configure::check('Configure Test')); + Configure::delete('Configure Test'); + + $this->assertTrue(Configure::write('Configure Test.Test Case', "test")); + $this->assertTrue(Configure::check('Configure Test.Test Case')); + } + +/** + * testCheckEmpty + * + * @return void + */ + public function testCheckEmpty() { + $this->assertFalse(Configure::check()); + } + /** * testLoad method * diff --git a/lib/Cake/Test/Case/Model/Datasource/CakeSessionTest.php b/lib/Cake/Test/Case/Model/Datasource/CakeSessionTest.php index a2276972f..0c98febaa 100644 --- a/lib/Cake/Test/Case/Model/Datasource/CakeSessionTest.php +++ b/lib/Cake/Test/Case/Model/Datasource/CakeSessionTest.php @@ -231,7 +231,7 @@ class CakeSessionTest extends CakeTestCase { TestCakeSession::write('SessionTestCase', 'value'); $this->assertTrue(TestCakeSession::check('SessionTestCase')); - $this->assertFalse(TestCakeSession::check('NotExistingSessionTestCase'), false); + $this->assertFalse(TestCakeSession::check('NotExistingSessionTestCase')); } /**