--TEST-- HTTP_Session2 with phpDoctrine container (and sqlite) write and read --SKIPIF-- <?php $skip = true; if ($skip === true) { die('Skip This is an incomplete test.'); } if (!extension_loaded('pdo')) { die('Skip This test needs pdo, please make sure it\'s loaded.'); } if (!extension_loaded('pdo_sqlite')) { die('Skip This test needs pdo_sqlite, please make sure it\'s loaded.'); } include_once 'Doctrine/lib/Doctrine.php'; if (!class_exists('Doctrine')) { die('Skip This test needs phpDoctrine, please make sure it\'s installed.'); } ?> --FILE-- <?php $_tmp = dirname(__FILE__) . '/tmp'; $_db = $_tmp . '/test-doctrine.db'; require_once 'HTTP/Session2.php'; /** * This is a hack. * * @param string $_db Path to the db. * * @return void */ function createDB($db) { require_once 'Doctrine/lib/Doctrine.php'; spl_autoload_register(array('Doctrine', 'autoload')); try { $db = Doctrine_Manager::connection("sqlite:///$db"); $path = '@include_path@/HTTP/Session2/Container/Doctrine'; if (strstr($path, '@include_path@')) { // for from VCS $path = str_replace( '@include_path@', realpath(dirname(__FILE__) . '/../'), $path ); } $sql = Doctrine::generateSqlFromModels($path); $db->execute($sql); } catch (Doctrine_Exception $e) { if (!strstr($e->getMessage(), 'already exists')) { die("createDB sql error: {$e->getMessage()} ({$e->getCode()})"); } } } if (!file_exists($_tmp)) { mkdir($_tmp); } createDB($_db); try { HTTP_Session2::useCookies(false); HTTP_Session2::setContainer('Doctrine', array('dsn' => "sqlite:///{$_db}", 'table' => 'sessiondata')); HTTP_Session2::start('testSession'); HTTP_Session2::id('sessionTest'); $nCount = 0; while (++$nCount <= 2) { $_var = HTTP_Session2::get('test', 'bar'); if ($_var == 'bar') { var_dump("Setting.."); HTTP_Session2::set('test', 'foobar'); } else { var_dump("Retrieving.."); var_dump(HTTP_Session2::get('test')); } } } catch (Exception $e) { die($e->getMessage()); } --CLEAN-- <?php $_tmp = dirname(__FILE__) . '/tmp'; include dirname(__FILE__) . '/functions.php'; unlinkRecursive($_tmp); --EXPECT-- string(9) "Setting.." string(12) "Retrieving.." string(6) "foobar"