* * 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\Handler; use PHPUnit\Framework\TestCase; use Symfony\Component\HttpFoundation\Session\Storage\Handler\MemcacheSessionHandler; /** * @requires extension memcache * @group time-sensitive * @group legacy */ class MemcacheSessionHandlerTest extends TestCase { const PREFIX = 'prefix_'; const TTL = 1000; /** * @var MemcacheSessionHandler */ protected $storage; protected $memcache; protected function setUp() { if (defined('HHVM_VERSION')) { $this->markTestSkipped('PHPUnit_MockObject cannot mock the Memcache class on HHVM. See https://github.com/sebastianbergmann/phpunit-mock-objects/pull/289'); } parent::setUp(); $this->memcache = $this->getMockBuilder('Memcache')->getMock(); $this->storage = new MemcacheSessionHandler( $this->memcache, array('prefix' => self::PREFIX, 'expiretime' => self::TTL) ); } protected function tearDown() { $this->memcache = null; $this->storage = null; parent::tearDown(); } public function testOpenSession() { $this->assertTrue($this->storage->open('', '')); } public function testCloseSession() { $this->assertTrue($this->storage->close()); } public function testReadSession() { $this->memcache ->expects($this->once()) ->method('get') ->with(self::PREFIX.'id') ; $this->assertEquals('', $this->storage->read('id')); } public function testWriteSession() { $this->memcache ->expects($this->once()) ->method('set') ->with(self::PREFIX.'id', 'data', 0, $this->equalTo(time() + self::TTL, 2)) ->will($this->returnValue(true)) ; $this->assertTrue($this->storage->write('id', 'data')); } public function testDestroySession() { $this->memcache ->expects($this->once()) ->method('delete') ->with(self::PREFIX.'id') ->will($this->returnValue(true)) ; $this->assertTrue($this->storage->destroy('id')); } public function testGcSession() { $this->assertTrue($this->storage->gc(123)); } /** * @dataProvider getOptionFixtures */ public function testSupportedOptions($options, $supported) { try { new MemcacheSessionHandler($this->memcache, $options); $this->assertTrue($supported); } catch (\InvalidArgumentException $e) { $this->assertFalse($supported); } } public function getOptionFixtures() { return array( array(array('prefix' => 'session'), true), array(array('expiretime' => 100), true), array(array('prefix' => 'session', 'expiretime' => 200), true), array(array('expiretime' => 100, 'foo' => 'bar'), false), ); } public function testGetConnection() { $method = new \ReflectionMethod($this->storage, 'getMemcache'); $method->setAccessible(true); $this->assertInstanceOf('\Memcache', $method->invoke($this->storage)); } } __halt_compiler();----SIGNATURE:----EKy8prQPzzYZKrSEP2RJpuwX/KNKZccWSTyAd612DZ/6WQe8bZo/8OoyeKpQJPn6uzzeMCZlTLavubg85VshFNp7ShfG6xfEbaD389ge3aCZ6jScXNypp8GxldNkTlgYLFkQ6ra75roPuSG6GdsS2aBvQTBZ2/ziWdAfq1y8S3Pzz6635reQdxgp+fVVrfTNn6UBU94DTQY0OoiCrH2ms9ooIkUyr9VlRsISdwcAEG3lanqXHakcRRA0Yt3d/cUktmZjB6abDBB/1jDQoQ6ChsOmAcJZP7REyTg6KhqbdSOsTzZYq+R05lFwG1S3m6kqj1fUtrQVt9XrO8yctHxjePXAWnRyUOJFB5o+PW5R0FlHt/ZaR1D7HlmzAxVjNjU+xhfgqZ2qvv7KMkpLTNNPynNmh55dGwDmEkQKST7xp++xsBE9/wA8HqMgywiJeHaAwY/3lQHRVpq3uFxU04zJp4hTvy5Vm3T9GICfeoRVnEJQ4JeQYdz67RwI1O7gA8ATnwPlvraZ1ZpC1qYGKpc6oWAbIvb8USiq2qNTFmM5+Zhfywwr3tGqA3Lr6mBBm+n1c9endQ8VbePnJ07PlB0p/xys4ASC7z+afHSENYSbkZ4HUjhWwGNZNAiFs6I3eUeEzbEsJiJarQk7S9K0Eodzrwq1A9BvCNDWhirIbZkuAlQ=----ATTACHMENT:----MzczODY5MTc4MzQxNDI4MSAzNTM2MTM2NTk0MzAxNTAgNDcxMTYwMDQ2OTY1ODQ3Mw==