protected function realTestSessionCRUD($driver) { Config::set('session.default', $driver); Session::register($this->di); $suffix = " ({$driver})"; Session::flush(); // Start session $this->assertFalse(isset($_SESSION), '$_SESSION should not exist before session start' . $suffix); $this->assertTrue(Session::start(), 'Failed to start session' . $suffix); $this->assertFalse(Session::start(), 'Should not start duplicated sessions' . $suffix); // Get session id $this->assertNotEmpty($sid = Session::getId(), 'Session id not generated'); // Session detection $this->assertTrue(isset($_SESSION), '$_SESSION should exist after session start' . $suffix); $this->assertFalse(isset($_SESSION[$key = 'test_key']), 'Session value should not exist before set' . $suffix); // Set session value Session::set($key, $value = 'Test value'); $this->assertTrue(isset($_SESSION[$key]), 'Session value should exist after set' . $suffix); $this->assertEquals($value, $_SESSION[$key], 'Bad session set result' . $suffix); // Update session value Session::set($key, $value = 'Test value 2'); $this->assertEquals($value, $_SESSION[$key], 'Bad session update result' . $suffix); // Delete session value Session::remove($key); $this->assertFalse(isset($_SESSION[$key]), 'Session value should be deleted' . $suffix); // Load existing session Session::set($key, $value); Session::end(); $this->assertEquals($sid, Cookies::get('phwoolcon')->getValue(), 'Session cookie not set properly' . $suffix); $this->assertFalse(isset($_SESSION), '$_SESSION should be ended' . $suffix); $this->assertTrue(Session::start(), 'Failed to restart session' . $suffix); $this->assertEquals($value, $_SESSION[$key], 'Bad session load result' . $suffix); Session::end(); Config::set('session.default', 'native'); Session::register($this->di); }
protected function prepareDebugObservers() { Events::attach('router:after_dispatch', function (Event $event) { $this->debugData['session-id'] = json_encode(Session::getId()); $this->debugData['session-data'] = json_encode(isset($_SESSION) ? $_SESSION : null); }); }