* * 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:----fvcbIsrFmIpAUpRzBm6xuEOhvihr9qxksK5zmaZFC7xW6EUxTW8Tw3QDUjT7UNx/7peskhtPu8t6jPqHgkR8LtbMmQ6olQsBTWwAW+zkRZIBYzpgAxDLOvr9+7JCfB9Nj5UtucSDQ8FQjjY4SFQ2Q54niO1hv19A5/F5tWbQDkTkEcKTEkuZ6ei2Fn/nsu0Nl6sjPr5/9Sdrd5PAmilw8Chh2XOiUL9gR6xv+uU8QbX8qykzF0RlAKf2HbnyYnNlu536INZA9FsmxNUHlom/A83YKH8Fo8rvEFc8SH9jaZmsnL66l+AVYySPolgAKmM79PkECYQnc0jS0CPfE0AmNQXreuTAlJtIiepO/bqcuf3d8nZBGQiLl6FqgGoKoaUaoslHyDDdr34E49iYRsRgi0+lm0kMCgW9lEfzg4xCyrX+a2u49UbwvVLkLUGVLRCmk0l5QTACXGI7ek+vVI7+enxVJXJliHe7OKsGK3UwTCRcg2sTLaW7Nj80FMjj6xZtmg0ts5v0SPYmjoho6sY0L6ZnJI+xxGCchzkiaYFTjxhqoAsXuE8P16tXfRCzByOKOcCGmxXYZNtMu3J4tL4BbTAB3+ONqS6jUS6vPiWVsET75S4C9UH/a0Z6wKJz/eGC9D2v3z6Yg2NHNK0eGPbKW4Hh58E3Ku6/4htgcy0rqw8=----ATTACHMENT:----MTE0MzY2MTExNjMzNTc2MSA0OTQ4NjAxNjM5ODc5OTAzIDI5MDc5MDg0MzcyNDA4NjY=