[HttpFoundation] NativeSessionStorage method wrongly sets storage as started

This commit is contained in:
Ismael Ambrosi 2015-09-14 18:59:44 -03:00 committed by Fabien Potencier
parent 68353a6305
commit 8e6ef9cb56
2 changed files with 17 additions and 0 deletions

View File

@ -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);
}

View File

@ -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');