--TEST--
HTTP_Session2 with MDB2 container (and sqlite) write and read
--SKIPIF--
<?php
if (
false === @include_once 'MDB2.php'
|| false === @include_once 'MDB2/Driver/sqlite.php'
) {
die('skip Please install MDB2 (and its SQLite driver) to run this test.');
}
if (!extension_loaded('sqlite')) {
die('skip Please install the sqlite extension to run this test.');
}
?>
--FILE--
<?php
$_tmp = dirname(__FILE__) . '/tmp';
$_db = $_tmp . '/test.db';
require_once 'MDB2.php';
require_once 'HTTP/Session2.php';
/**
* This is a hack.
*
* @param string $_db Path to the db.
*
* @return void
*/
function createDB($db)
{
if (!file_exists($db)) {
if ($db = sqlite_open($db, "0666", $sqliteerror)) {
// create table
$sql = 'CREATE TABLE "sessiondata" (';
$sql .= '"id" VARCHAR(32) NOT NULL,';
$sql .= '"expiry" INT UNSIGNED NOT NULL DEFAULT 0,';
$sql .= '"data" TEXT NOT NULL,';
$sql .= 'PRIMARY KEY ("id")';
$sql .= ');';
sqlite_query($db, $sql);
sqlite_close($db);
} else {
die($sqliteerror);
}
}
}
if (!file_exists($_tmp)) {
mkdir($_tmp);
}
createDB($_db);
try {
HTTP_Session2::useCookies(false);
HTTP_Session2::setContainer('MDB2',
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 (HTTP_Session2_Exception $e) {
die($e->getMessage());
}
--CLEAN--
<?php
$_tmp = dirname(__FILE__) . '/tmp';
$_db = $_tmp . '/test.db';
unlink($_db);
include dirname(__FILE__) . '/functions.php';
unlinkRecursive($_tmp, true);
--EXPECT--
string(9) "Setting.."
string(12) "Retrieving.."
string(6) "foobar"