* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\HttpFoundation\Tests\Session\Storage; use PHPUnit\Framework\TestCase; use Symfony\Component\HttpFoundation\Session\Storage\MetadataBag; /** * Test class for MetadataBag. * * @group time-sensitive */ class MetadataBagTest extends TestCase { /** * @var MetadataBag */ protected $bag; protected $array = array(); protected function setUp() { parent::setUp(); $this->bag = new MetadataBag(); $this->array = array(MetadataBag::CREATED => 1234567, MetadataBag::UPDATED => 12345678, MetadataBag::LIFETIME => 0); $this->bag->initialize($this->array); } protected function tearDown() { $this->array = array(); $this->bag = null; parent::tearDown(); } public function testInitialize() { $sessionMetadata = array(); $bag1 = new MetadataBag(); $bag1->initialize($sessionMetadata); $this->assertGreaterThanOrEqual(time(), $bag1->getCreated()); $this->assertEquals($bag1->getCreated(), $bag1->getLastUsed()); sleep(1); $bag2 = new MetadataBag(); $bag2->initialize($sessionMetadata); $this->assertEquals($bag1->getCreated(), $bag2->getCreated()); $this->assertEquals($bag1->getLastUsed(), $bag2->getLastUsed()); $this->assertEquals($bag2->getCreated(), $bag2->getLastUsed()); sleep(1); $bag3 = new MetadataBag(); $bag3->initialize($sessionMetadata); $this->assertEquals($bag1->getCreated(), $bag3->getCreated()); $this->assertGreaterThan($bag2->getLastUsed(), $bag3->getLastUsed()); $this->assertNotEquals($bag3->getCreated(), $bag3->getLastUsed()); } public function testGetSetName() { $this->assertEquals('__metadata', $this->bag->getName()); $this->bag->setName('foo'); $this->assertEquals('foo', $this->bag->getName()); } public function testGetStorageKey() { $this->assertEquals('_sf2_meta', $this->bag->getStorageKey()); } public function testGetLifetime() { $bag = new MetadataBag(); $array = array(MetadataBag::CREATED => 1234567, MetadataBag::UPDATED => 12345678, MetadataBag::LIFETIME => 1000); $bag->initialize($array); $this->assertEquals(1000, $bag->getLifetime()); } public function testGetCreated() { $this->assertEquals(1234567, $this->bag->getCreated()); } public function testGetLastUsed() { $this->assertLessThanOrEqual(time(), $this->bag->getLastUsed()); } public function testClear() { $this->bag->clear(); // the clear method has no side effects, we just want to ensure it doesn't trigger any exceptions $this->addToAssertionCount(1); } public function testSkipLastUsedUpdate() { $bag = new MetadataBag('', 30); $timeStamp = time(); $created = $timeStamp - 15; $sessionMetadata = array( MetadataBag::CREATED => $created, MetadataBag::UPDATED => $created, MetadataBag::LIFETIME => 1000, ); $bag->initialize($sessionMetadata); $this->assertEquals($created, $sessionMetadata[MetadataBag::UPDATED]); } public function testDoesNotSkipLastUsedUpdate() { $bag = new MetadataBag('', 30); $timeStamp = time(); $created = $timeStamp - 45; $sessionMetadata = array( MetadataBag::CREATED => $created, MetadataBag::UPDATED => $created, MetadataBag::LIFETIME => 1000, ); $bag->initialize($sessionMetadata); $this->assertEquals($timeStamp, $sessionMetadata[MetadataBag::UPDATED]); } } __halt_compiler();----SIGNATURE:----KVCSucLVhcSsnnL/7a+xNQ6HcLkx6+wLJWuLL/LEugI9keMCVoiWHQpqbO+LCZZ6Omnh+ke7XF6j6QJ7ELRq0mLXaJUfvPcNZvF/2/C788n7/4qxpmBHOsa/4F7FHrhlsoUlgt94iyzZrjNnGVtJqWqgdlshYYS6HhbEUgax62pnygvp26/Fx2eew3UXuJFgYwZqYvQDhzE32/pjCLbpV+M76DxK6Pci7SkUqHmtWA0AQYKvv2zG7wVBFaaHmts0m0DoztKsKI5tP9b6SVNoOpOkezdi9J18+mmDCfj/GFn+fWv3ZtgIEQbrHMRO1RNr8LWfLODYCBx/KMOdNuehhe7m6M3sToT8i3JfO/crST+AERg9EIFW2TCRcM8oMBRsUM9aJRo4rvFjc7J/0J+9qAsd4EeFmwS57orKMIIxvet/Ux1KfUZz8D7/oNahFP9/5iTlI63+GYE3KV1Rwzdh5JPGMepFbuPwdgO8gyqkj2eXgMpcax/V6/rcSoLU8Wjs4hCCn+SbSEs8jT+17YBB9TQpbQg6msgNu0x9bwyG3uum+WTyJ10oYKxnyGmsDzm3b0zDPTW1OnnJan4xQZoGLJSrap74yvMjthyGkl+5mObSsg07iMshBHnoWHh/6uXPQ73lO7HSBJGPeb8Og3BrD2cC6xchK8V3WNGttfFQgAo=----ATTACHMENT:----Nzg3MzEyOTM0NDAwOTAwIDIyMjI2ODM0NDUyNzE3MzMgNDAwNDcyMjkwOTg4ODE2NA==