59 lines
1.6 KiB
PHP
59 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace Ratchet\Session\Storage;
|
|
|
|
|
|
use Ratchet\Session\Serialize\PhpHandler;
|
|
use Symfony\Component\HttpFoundation\Session\Attribute\AttributeBag;
|
|
use Symfony\Component\HttpFoundation\Session\Flash\FlashBag;
|
|
use Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler;
|
|
|
|
class VirtualSessionStoragePDOTest extends \PHPUnit_Framework_TestCase
|
|
{
|
|
/**
|
|
* @var VirtualSessionStorage
|
|
*/
|
|
protected $_virtualSessionStorage;
|
|
|
|
protected $_pathToDB;
|
|
|
|
public function setUp()
|
|
{
|
|
$schema = <<<SQL
|
|
CREATE TABLE `sessions` (
|
|
`sess_id` VARBINARY(128) NOT NULL PRIMARY KEY,
|
|
`sess_data` BLOB NOT NULL,
|
|
`sess_time` INTEGER UNSIGNED NOT NULL,
|
|
`sess_lifetime` MEDIUMINT NOT NULL
|
|
);
|
|
SQL;
|
|
$this->_pathToDB = tempnam(sys_get_temp_dir(), 'SQ3');;
|
|
$dsn = 'sqlite:' . $this->_pathToDB;
|
|
|
|
$pdo = new \PDO($dsn);
|
|
$pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
|
|
$pdo->exec($schema);
|
|
$pdo = null;
|
|
|
|
$sessionHandler = new PdoSessionHandler($dsn);
|
|
$serializer = new PhpHandler();
|
|
$this->_virtualSessionStorage = new VirtualSessionStorage($sessionHandler, 'foobar', $serializer);
|
|
$this->_virtualSessionStorage->registerBag(new FlashBag());
|
|
$this->_virtualSessionStorage->registerBag(new AttributeBag());
|
|
}
|
|
|
|
public function tearDown()
|
|
{
|
|
unlink($this->_pathToDB);
|
|
}
|
|
|
|
public function testStartWithDSN()
|
|
{
|
|
$this->_virtualSessionStorage->start();
|
|
|
|
$this->assertTrue($this->_virtualSessionStorage->isStarted());
|
|
}
|
|
|
|
|
|
}
|