Newer
Older
ubFramework / Portal / docroot / lib / HTTP_Session2 / tests / test-session-mdb2.phpt
@Christopher W. Olsen Christopher W. Olsen on 10 Dec 2017 2 KB Cleaning Up Making It A Sub Module
--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"