PrivateBin/tst/ControllerWithDbTest.php

46 lines
1.3 KiB
PHP
Raw Normal View History

2024-06-04 05:13:55 +00:00
<?php declare(strict_types=1);
2016-07-21 15:09:48 +00:00
use PrivateBin\Data\Database;
use PrivateBin\Persistence\ServerSalt;
use PrivateBin\Persistence\TrafficLimiter;
2016-07-21 15:09:48 +00:00
2018-07-29 13:17:35 +00:00
require_once 'ControllerTest.php';
2018-07-29 13:17:35 +00:00
class ControllerWithDbTest extends ControllerTest
{
private $_options = array(
'usr' => null,
'pwd' => null,
'opt' => array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_PERSISTENT => true,
),
);
public function setUp(): void
{
/* Setup Routine */
$this->_path = sys_get_temp_dir() . DIRECTORY_SEPARATOR . 'privatebin_data';
if (!is_dir($this->_path)) {
mkdir($this->_path);
}
$this->_options['dsn'] = 'sqlite:' . $this->_path . DIRECTORY_SEPARATOR . 'tst.sq3';
$this->_data = new Database($this->_options);
ServerSalt::setStore($this->_data);
TrafficLimiter::setStore($this->_data);
$this->reset();
}
public function reset()
{
parent::reset();
// but then inject a db config
$options = parse_ini_file(CONF, true);
$options['model'] = array(
'class' => 'Database',
);
2017-11-13 21:05:29 +00:00
$options['model_options'] = $this->_options;
Helper::createIniFile(CONF, $options);
}
2016-07-11 12:15:20 +00:00
}