/** * @runInSeparateProcess * @outputBuffering disabled */ public function testProtectedController() { if (!function_exists('xdebug_get_headers')) { $this->markTestSkipped('Xdebug not installed'); } $autoloader = new Autoloader(); $autoloader->register(); $autoloader->addNamespaces([['Linna\\FOO', dirname(__DIR__) . '/FOO']]); //config options $session = new Session(); $session->start(); $password = new Password(); $storedPassword = $password->hash('password'); //attemp first login $login = new Login($session, $password); $login->login('root', 'password', $storedUser = '******', $storedPassword, 1); $loginLogged = $login->logged; $model = new FOOModel(); $controller1 = new FOOProtectedController($model, $login); $controllerTest1 = $controller1->test; $login->logout(); $loginNoLogged = $login->logged; ob_start(); $controller2 = new FOOProtectedController($model, $login); $headers_list = xdebug_get_headers(); ob_end_clean(); $this->assertEquals(true, $loginLogged); $this->assertEquals(false, $loginNoLogged); $this->assertEquals(true, $controllerTest1); $this->assertEquals(true, in_array('Location: http://localhost', $headers_list)); $session->destroy(); }
/** * @runInSeparateProcess */ public function testExpiredSession() { $MysqlAdapter = new MysqlPDOAdapter($GLOBALS['db_type'] . ':host=' . $GLOBALS['db_host'] . ';dbname=' . $GLOBALS['db_name'] . ';charset=utf8mb4', $GLOBALS['db_username'], $GLOBALS['db_password'], array(\PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_OBJ, \PDO::ATTR_ERRMODE => \PDO::ERRMODE_WARNING)); $dbase = new Database($MysqlAdapter); $sessionHandler = new DatabaseSessionHandler($dbase); $session = new Session(['expire' => 8]); $session->setSessionHandler($sessionHandler); $session->start(); $session_id = $session->id; $session->time = $session->time - 1800; $session->commit(); $session->setSessionHandler($sessionHandler); $session->start(); $session_id2 = $session->id; $test = $session_id === $session_id2 ? 1 : 0; $this->assertEquals(0, $test); $session->destroy(); }
/** * @runInSeparateProcess */ public function testExpiredSession() { if (!class_exists('Memcached')) { $this->markTestSkipped('Memcached module not installed'); } //create memcached instance $memcached = new Memcached(); //connect to memcached server $memcached->addServer($GLOBALS['mem_host'], $GLOBALS['mem_port']); $sessionHandler = new MemcachedSessionHandler($memcached, 8); $session = new Session(['expire' => 8]); $session->setSessionHandler($sessionHandler); $session->start(); $session_id = $session->id; $session->time = $session->time - 1800; $session->commit(); $session->setSessionHandler($sessionHandler); $session->start(); $session_id2 = $session->id; $test = $session_id === $session_id2 ? 1 : 0; $this->assertEquals(0, $test); $session->destroy(); }