PrivateBinWithDbTest.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. use PrivateBin\Data\Database;
  3. use PrivateBin\Persistence\ServerSalt;
  4. require_once 'PrivateBinTest.php';
  5. class PrivateBinWithDbTest extends PrivateBinTest
  6. {
  7. private $_options = array(
  8. 'usr' => null,
  9. 'pwd' => null,
  10. 'opt' => array(
  11. PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
  12. PDO::ATTR_PERSISTENT => true,
  13. ),
  14. );
  15. public function setUp()
  16. {
  17. /* Setup Routine */
  18. $this->_path = sys_get_temp_dir() . DIRECTORY_SEPARATOR . 'privatebin_data';
  19. if (!is_dir($this->_path)) {
  20. mkdir($this->_path);
  21. }
  22. ServerSalt::setPath($this->_path);
  23. $this->_options['dsn'] = 'sqlite:' . $this->_path . DIRECTORY_SEPARATOR . 'tst.sq3';
  24. $this->_model = Database::getInstance($this->_options);
  25. $this->reset();
  26. }
  27. public function reset()
  28. {
  29. parent::reset();
  30. // but then inject a db config
  31. $options = parse_ini_file(CONF, true);
  32. $options['model'] = array(
  33. 'class' => 'Database',
  34. );
  35. $options['purge']['dir'] = $this->_path;
  36. $options['traffic']['dir'] = $this->_path;
  37. $options['model_options'] = $this->_options;
  38. Helper::confBackup();
  39. Helper::createIniFile(CONF, $options);
  40. }
  41. }