From 66ccfaf5e238181946a16c98c8ea3e64faa513af Mon Sep 17 00:00:00 2001 From: Stefan Dickmann Date: Tue, 26 Aug 2014 17:47:45 +0200 Subject: [PATCH] session bugfix --- lib/Cake/Model/Datasource/CakeSession.php | 2 +- lib/Cake/Test/Case/Model/Datasource/CakeSessionTest.php | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/Cake/Model/Datasource/CakeSession.php b/lib/Cake/Model/Datasource/CakeSession.php index 96a66d899cd..66497170f8f 100644 --- a/lib/Cake/Model/Datasource/CakeSession.php +++ b/lib/Cake/Model/Datasource/CakeSession.php @@ -267,7 +267,7 @@ public static function id($id = null) { * @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); } diff --git a/lib/Cake/Test/Case/Model/Datasource/CakeSessionTest.php b/lib/Cake/Test/Case/Model/Datasource/CakeSessionTest.php index 7f70ea82ce1..677e38b76ab 100644 --- a/lib/Cake/Test/Case/Model/Datasource/CakeSessionTest.php +++ b/lib/Cake/Test/Case/Model/Datasource/CakeSessionTest.php @@ -365,6 +365,12 @@ public function testStarted() { * @return void */ 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'));