1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-07-30 21:40:43 +02:00

[feature/dbal-tests] Load phpbb-schema after creating the connection to the database

This commit is contained in:
Joas Schilling
2010-03-26 17:37:01 +01:00
parent af654814f6
commit a7581085e0
2 changed files with 53 additions and 3 deletions

View File

@@ -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');
}