Skip to content

Commit

Permalink
Support tests running with an sqlite database
Browse files Browse the repository at this point in the history
  • Loading branch information
thomascube committed May 12, 2015
1 parent 9ed8584 commit 0d4d433
Showing 1 changed file with 17 additions and 15 deletions.
32 changes: 17 additions & 15 deletions tests/Selenium/bootstrap.php
Expand Up @@ -62,30 +62,32 @@ class bootstrap
public static function init_db()
{
$rcmail = rcmail::get_instance();
$dsn = rcube_db::parse_dsn($rcmail->config->get('db_dsnw'));

if ($dsn['phptype'] == 'mysql' || $dsn['phptype'] == 'mysqli') {
// drop all existing tables first
$db = $rcmail->get_dbh();
$db->query("SET FOREIGN_KEY_CHECKS=0");
$sql_res = $db->query("SHOW TABLES");
while ($sql_arr = $db->fetch_array($sql_res)) {
$table = reset($sql_arr);
$db->query("DROP TABLE $table");
}

// drop all existing tables first
$db = $rcmail->get_dbh();
$db->query("SET FOREIGN_KEY_CHECKS=0");
$sql_res = $db->query("SHOW TABLES");
while ($sql_arr = $db->fetch_array($sql_res)) {
$table = reset($sql_arr);
$db->query("DROP TABLE $table");
}

// init database with schema
$dsn = parse_url($rcmail->config->get('db_dsnw'));
$db_name = trim($dsn['path'], '/');

if ($dsn['scheme'] == 'mysql' || $dsn['scheme'] == 'mysqli') {
// init database with schema
system(sprintf('cat %s %s | mysql -h %s -u %s --password=%s %s',
realpath(INSTALL_PATH . '/SQL/mysql.initial.sql'),
realpath(TESTS_DIR . 'Selenium/data/mysql.sql'),
escapeshellarg($dsn['host']),
escapeshellarg($dsn['user']),
escapeshellarg($dsn['pass']),
escapeshellarg($db_name)
escapeshellarg($dsn['database'])
));
}
else if ($dsn['phptype'] == 'sqlite') {
// delete database file -- will be re-initialized on first access
system(sprintf('rm -f %s', escapeshellarg($dsn['database'])));
}
}

/**
Expand Down

0 comments on commit 0d4d433

Please sign in to comment.