Browse Source

Merge pull request #4405 from php-engineer/master-session-bugfix

CakeSession::delete() bugfix
Mark Story 11 years ago
parent
commit
5863adda42

+ 1 - 1
lib/Cake/Model/Datasource/CakeSession.php

@@ -267,7 +267,7 @@ class CakeSession {
  * @return bool Success
  */
 	public static function delete($name) {
-		if (self::check($name)) {
+		if (self::start() && self::check($name)) {
 			self::_overwrite($_SESSION, Hash::remove($_SESSION, $name));
 			return !self::check($name);
 		}

+ 6 - 0
lib/Cake/Test/Case/Model/Datasource/CakeSessionTest.php

@@ -366,6 +366,12 @@ class CakeSessionTest extends CakeTestCase {
  */
 	public function testDelete() {
 		$this->assertTrue(TestCakeSession::write('Delete.me', 'Clearing out'));
+
+		session_write_close();
+		$this->assertTrue(TestCakeSession::delete('Delete.me'));
+		$this->assertFalse(TestCakeSession::check('Delete.me'));
+
+		$this->assertTrue(TestCakeSession::write('Delete.me', 'Clearing out'));
 		$this->assertTrue(TestCakeSession::delete('Delete.me'));
 		$this->assertFalse(TestCakeSession::check('Delete.me'));
 		$this->assertTrue(TestCakeSession::check('Delete'));