bug #40544 [FrameworkBundle] ensure TestBrowserToken::$firewallName is serialized (kbond)

This PR was merged into the 5.2 branch.

Discussion
----------

[FrameworkBundle] ensure TestBrowserToken::$firewallName is serialized

| Q             | A
| ------------- | ---
| Branch?       | 5.2
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | n/a
| License       | MIT
| Doc PR        | n/a

Fixes a bug introduced in #40368. When `TestBrowserToken` in unserialized, `$firewallName` is `null` so trying to access it via `getFirewallName` throws a `TypeError`.

Commits
-------

8ba12ece57 [FrameworkBundle] ensure TestBrowserToken::$firewallName is serialized
This commit is contained in:
Nicolas Grekas 2021-03-23 12:16:14 +01:00
commit 4c2f77e5b1
2 changed files with 28 additions and 0 deletions

View File

@ -43,4 +43,16 @@ class TestBrowserToken extends AbstractToken
{
return null;
}
public function __serialize(): array
{
return [$this->firewallName, parent::__serialize()];
}
public function __unserialize(array $data): void
{
[$this->firewallName, $parentData] = $data;
parent::__unserialize($parentData);
}
}

View File

@ -0,0 +1,16 @@
<?php
namespace Symfony\Bundle\FrameworkBundle\Tests\Test;
use PHPUnit\Framework\TestCase;
use Symfony\Bundle\FrameworkBundle\Test\TestBrowserToken;
final class TestBrowserTokenTest extends TestCase
{
public function testCanBeSerializedAndUnserialized()
{
$token = unserialize(serialize(new TestBrowserToken()));
$this->assertSame('main', $token->getFirewallName());
}
}