mirror of
https://github.com/phpbb/phpbb.git
synced 2025-04-21 16:22:22 +02:00
[feature/dbal-tests] Load phpbb-schema after creating the connection to the database
This commit is contained in:
parent
af654814f6
commit
a7581085e0
@ -19,12 +19,59 @@ abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_Test
|
||||
}
|
||||
}
|
||||
|
||||
function split_sql_file($sql, $delimiter)
|
||||
{
|
||||
$sql = str_replace("\r" , '', $sql);
|
||||
$data = preg_split('/' . preg_quote($delimiter, '/') . '$/m', $sql);
|
||||
|
||||
$data = array_map('trim', $data);
|
||||
|
||||
// The empty case
|
||||
$end_data = end($data);
|
||||
|
||||
if (empty($end_data))
|
||||
{
|
||||
unset($data[key($data)]);
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function getConnection()
|
||||
{
|
||||
static $already_connected;
|
||||
|
||||
$this->init_test_case_helpers();
|
||||
$database_config = $this->test_case_helpers->get_database_config();
|
||||
|
||||
$pdo = new PDO('mysql:host=' . $database_config['dbhost'] . ';dbname=' . $database_config['dbname'], $database_config['dbuser'], $database_config['dbpasswd']);
|
||||
if ($already_connected)
|
||||
{
|
||||
$pdo = new PDO('mysql:host=' . $database_config['dbhost'] . ';dbname=' . $database_config['dbname'], $database_config['dbuser'], $database_config['dbpasswd']);
|
||||
}
|
||||
else
|
||||
{
|
||||
$pdo = new PDO('mysql:host=' . $database_config['dbhost'] . ';', $database_config['dbuser'], $database_config['dbpasswd']);
|
||||
|
||||
try
|
||||
{
|
||||
$pdo->exec('DROP DATABASE ' . $database_config['dbname']);
|
||||
}
|
||||
catch (PDOException $e){} // ignore non existent db
|
||||
|
||||
$pdo->exec('CREATE DATABASE ' . $database_config['dbname']);
|
||||
|
||||
$pdo = new PDO('mysql:host=' . $database_config['dbhost'] . ';dbname=' . $database_config['dbname'], $database_config['dbuser'], $database_config['dbpasswd']);
|
||||
|
||||
$sql_query = $this->split_sql_file(file_get_contents('../phpBB/install/schemas/mysql_41_schema.sql'), ';');
|
||||
|
||||
foreach ($sql_query as $sql)
|
||||
{
|
||||
$pdo->exec($sql);
|
||||
}
|
||||
|
||||
$already_connected = true;
|
||||
}
|
||||
|
||||
return $this->createDefaultDBConnection($pdo, 'testdb');
|
||||
}
|
||||
|
||||
|
@ -23,13 +23,16 @@ class phpbb_test_case_helpers
|
||||
if (!file_exists('test_config.php'))
|
||||
{
|
||||
trigger_error("You have to create a test_config.php like this:
|
||||
<?php
|
||||
\"<?php
|
||||
$dbms = 'mysqli';
|
||||
$dbhost = 'localhost';
|
||||
$dbport = '';
|
||||
$dbname = 'database';
|
||||
$dbuser = 'user';
|
||||
$dbpasswd = 'password';", E_USER_ERROR);
|
||||
$dbpasswd = 'password';
|
||||
\"
|
||||
|
||||
NOTE: The database is dropped and recreated with the phpbb-db-schema! Do NOT specify a database with important data.", E_USER_ERROR);
|
||||
}
|
||||
include('test_config.php');
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user