54 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.7 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() {
 | |
|         if (!extension_loaded('PDO') || !extension_loaded('pdo_sqlite')) {
 | |
|             return $this->markTestSkipped('Session test requires PDO and pdo_sqlite');
 | |
|         }
 | |
| 
 | |
|         $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());
 | |
|     }
 | |
| }
 | 
