Browse Source

check() for CookieComponent and Configure (similar to `CakeSession::check()`)

euromark 13 years ago
parent
commit
2170d87488

+ 14 - 0
lib/Cake/Controller/Component/CookieComponent.php

@@ -282,6 +282,20 @@ class CookieComponent extends Component {
 	}
 
 /**
+ * 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
  *
  * Optional [Name.], required key

+ 14 - 0
lib/Cake/Core/Configure.php

@@ -171,6 +171,20 @@ class Configure {
 	}
 
 /**
+ * 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.
  *
  * Usage:

+ 54 - 0
lib/Cake/Test/Case/Controller/Component/CookieComponentTest.php

@@ -537,6 +537,60 @@ class CookieComponentTest extends CakeTestCase {
 	}
 
 /**
+ * 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.
  *
  * @return void

+ 54 - 0
lib/Cake/Test/Case/Core/ConfigureTest.php

@@ -178,6 +178,60 @@ class ConfigureTest extends CakeTestCase {
 	}
 
 /**
+ * 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
  *
  * @expectedException RuntimeException

+ 1 - 1
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'));
 	}
 
 /**