From 41f631b1edfa15aadaac9316ac5744236fc11afb Mon Sep 17 00:00:00 2001 From: Andrzej Lipka Date: Fri, 5 Dec 2014 21:42:45 +0100 Subject: [PATCH] Test show FieldEntry serialization Bug Co-authored-by: Ivan Shakuta --- Tests/Domain/FieldEntryTest.php | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/Tests/Domain/FieldEntryTest.php b/Tests/Domain/FieldEntryTest.php index 12c4cc2..b7452cc 100644 --- a/Tests/Domain/FieldEntryTest.php +++ b/Tests/Domain/FieldEntryTest.php @@ -12,6 +12,7 @@ namespace Symfony\Component\Security\Acl\Tests\Domain; use Symfony\Component\Security\Acl\Domain\FieldEntry; +use Symfony\Component\Security\Acl\Model\SecurityIdentityInterface; class FieldEntryTest extends \PHPUnit\Framework\TestCase { @@ -40,6 +41,27 @@ public function testSerializeUnserialize() $this->assertEquals($ace->isAuditFailure(), $uAce->isAuditFailure()); } + public function testSerializeUnserializeMoreAceWithSameSecurityIdentity() + { + $sid = $this->getSid(); + + $aceFirst = $this->getAce(null, $sid); + $aceSecond = $this->getAce(null, $sid); + + // as used in DoctrineAclCache::putInCache (line 142) + $serialized = serialize([[ + 'fieldOne' => [$aceFirst], + 'fieldTwo' => [$aceSecond], + ]]); + + $unserialized = unserialize($serialized); + $uAceFirst = $unserialized[0]['fieldOne'][0]; + $uAceSecond = $unserialized[0]['fieldTwo'][0]; + + $this->assertInstanceOf(SecurityIdentityInterface::class, $uAceFirst->getSecurityIdentity()); + $this->assertInstanceOf(SecurityIdentityInterface::class, $uAceSecond->getSecurityIdentity()); + } + protected function getAce($acl = null, $sid = null) { if (null === $acl) {