[HttpFoundation] NativeSessionStorage method wrongly sets storage as started
This commit is contained in:
parent
68353a6305
commit
8e6ef9cb56
@ -195,6 +195,16 @@ class NativeSessionStorage implements SessionStorageInterface
|
||||
*/
|
||||
public function regenerate($destroy = false, $lifetime = null)
|
||||
{
|
||||
// Cannot regenerate the session ID for non-active sessions.
|
||||
if (PHP_VERSION_ID >= 50400 && \PHP_SESSION_ACTIVE !== session_status()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Check if session ID exists in PHP 5.3
|
||||
if (PHP_VERSION_ID < 50400 && '' === session_id()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (null !== $lifetime) {
|
||||
ini_set('session.cookie_lifetime', $lifetime);
|
||||
}
|
||||
|
@ -130,6 +130,13 @@ class NativeSessionStorageTest extends \PHPUnit_Framework_TestCase
|
||||
$this->assertEquals(42, $_SESSION['_sf2_attributes']['lucky']);
|
||||
}
|
||||
|
||||
public function testRegenerationFailureDoesNotFlagStorageAsStarted()
|
||||
{
|
||||
$storage = $this->getStorage();
|
||||
$this->assertFalse($storage->regenerate());
|
||||
$this->assertFalse($storage->isStarted());
|
||||
}
|
||||
|
||||
public function testDefaultSessionCacheLimiter()
|
||||
{
|
||||
$this->iniSet('session.cache_limiter', 'nocache');
|
||||
|
Reference in New Issue
Block a user