[feature/dbal-tests] Make the PDO prefix depend on the dbms.

The database base test will need a few more changes to run on all the
databases we support. But those really need to be made on a system where
they run and can be tested. Patches welcome!
This commit is contained in:
Nils Adermann 2010-04-01 19:08:11 +02:00
parent 23beaceadd
commit 53ab8886b1

View file

@ -25,38 +25,47 @@ abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_Test
'firebird' => array( 'firebird' => array(
'SCHEMA' => 'firebird', 'SCHEMA' => 'firebird',
'DELIM' => ';;', 'DELIM' => ';;',
'PDO' => 'firebird',
), ),
'mysqli' => array( 'mysqli' => array(
'SCHEMA' => 'mysql_41', 'SCHEMA' => 'mysql_41',
'DELIM' => ';', 'DELIM' => ';',
'PDO' => 'mysql',
), ),
'mysql' => array( 'mysql' => array(
'SCHEMA' => 'mysql', 'SCHEMA' => 'mysql',
'DELIM' => ';', 'DELIM' => ';',
'PDO' => 'mysql',
), ),
'mssql' => array( 'mssql' => array(
'SCHEMA' => 'mssql', 'SCHEMA' => 'mssql',
'DELIM' => 'GO', 'DELIM' => 'GO',
'PDO' => 'odbc',
), ),
'mssql_odbc'=> array( 'mssql_odbc'=> array(
'SCHEMA' => 'mssql', 'SCHEMA' => 'mssql',
'DELIM' => 'GO', 'DELIM' => 'GO',
'PDO' => 'odbc',
), ),
'mssqlnative' => array( 'mssqlnative' => array(
'SCHEMA' => 'mssql', 'SCHEMA' => 'mssql',
'DELIM' => 'GO', 'DELIM' => 'GO',
'PDO' => 'odbc',
), ),
'oracle' => array( 'oracle' => array(
'SCHEMA' => 'oracle', 'SCHEMA' => 'oracle',
'DELIM' => '/', 'DELIM' => '/',
'PDO' => 'oci',
), ),
'postgres' => array( 'postgres' => array(
'SCHEMA' => 'postgres', 'SCHEMA' => 'postgres',
'DELIM' => ';', 'DELIM' => ';',
'PDO' => 'pgsql',
), ),
'sqlite' => array( 'sqlite' => array(
'SCHEMA' => 'sqlite', 'SCHEMA' => 'sqlite',
'DELIM' => ';', 'DELIM' => ';',
'PDO' => 'sqlite',
), ),
); );
@ -95,13 +104,15 @@ abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_Test
$this->init_test_case_helpers(); $this->init_test_case_helpers();
$database_config = $this->test_case_helpers->get_database_config(); $database_config = $this->test_case_helpers->get_database_config();
$dbms_data = $this->get_dbms_data($database_config['dbms']);
if ($already_connected) if ($already_connected)
{ {
$pdo = new PDO('mysql:host=' . $database_config['dbhost'] . ';dbname=' . $database_config['dbname'], $database_config['dbuser'], $database_config['dbpasswd']); $pdo = new PDO($dbms_data['PDO'] . ':host=' . $database_config['dbhost'] . ';dbname=' . $database_config['dbname'], $database_config['dbuser'], $database_config['dbpasswd']);
} }
else else
{ {
$pdo = new PDO('mysql:host=' . $database_config['dbhost'] . ';', $database_config['dbuser'], $database_config['dbpasswd']); $pdo = new PDO($dbms_data['PDO'] . ':host=' . $database_config['dbhost'] . ';', $database_config['dbuser'], $database_config['dbpasswd']);
try try
{ {
@ -113,7 +124,6 @@ abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_Test
$pdo = new PDO('mysql:host=' . $database_config['dbhost'] . ';dbname=' . $database_config['dbname'], $database_config['dbuser'], $database_config['dbpasswd']); $pdo = new PDO('mysql:host=' . $database_config['dbhost'] . ';dbname=' . $database_config['dbname'], $database_config['dbuser'], $database_config['dbpasswd']);
$dbms_data = $this->get_dbms_data($database_config['dbms']);
if ($database_config['dbms'] == 'mysql') if ($database_config['dbms'] == 'mysql')
{ {
$pdo->exec('SELECT VERSION() AS version'); $pdo->exec('SELECT VERSION() AS version');