* * 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:----KZkHQxH808Y12E+lO5ybNNcw/As1Wzb5NuAKATC+mPpHzPCwDisx5wrx56sM2u7qncx6lAele1doMGDNh/clyYNzkTvRriwy80ENvEeV3pBPkCc7fHEt1aAdid6hsaCBN1fyIU5HXtdKDPEZGJeZNUUcF2Smbrsr7q2HFO4xbYboUeSRx1x+pKgke+twvNPqmls7YS/bJ/5Iv52cx+AaftK/Wdo08fmfovOSFgftcR7yUb2zMrkP3nCaGxBBCTZRAcJUIKnT3MeTrz6UhjzQBOFerJal2gX7tuqcNHxrUTRol5Vt1DmYSXrBGLXCm9JxEcR0se5wMI53OjUOMzA239G26xvftpR3Mt7GAxOHLqaqxop9iAIO8eboDmToxkI1KEMh5TgZy69mHsdN11O/lMhBa655Ljs2hRwLoYZwJXo3o2zmh2MxfsRVDeEbSfxjwsDJKpP+6Kib8bEjcR4zh0OZkvzgqcMB6rw95KGFY3glP1Ha9kp8Xf+j+D8tTj8v+rHW9HOJihbQ7rBeIoOMfhtSo0KU0svyy/8qHrI4bxDgyxYSVn2bD05p9BjXPlMox7O7LoS2a7h668yoO7NEF2Vjq+ls9FUS/1gqp7N3AbwJX7JdbNwBBaNB/UtKcFO82VSvTBd5pq7nYA6YTA/Hyxw1MgZmjT19F7jb1WU12Dw=----ATTACHMENT:----MzUwOTQ0MDY2OTg3OTg4OCA1NTkxMTM1MDEwNTIzNjYzIDMyMTE1OTM5OTYyMTI0NDk=