Skip to content

Commit

Permalink
[HttpFoundation] NativeSessionStorage method wrongly sets storage as …
Browse files Browse the repository at this point in the history
…started
  • Loading branch information
iambrosi authored and fabpot committed Sep 28, 2015
1 parent 68353a6 commit 8e6ef9c
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 0 deletions.
Expand Up @@ -195,6 +195,16 @@ public function setName($name)
*/
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);
}
Expand Down
Expand Up @@ -130,6 +130,13 @@ public function testSessionGlobalIsUpToDateAfterIdRegeneration()
$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');
Expand Down

0 comments on commit 8e6ef9c

Please sign in to comment.