diff --git a/.travis.yml b/.travis.yml index 82b5a5d218..b722fe77f1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,11 +10,9 @@ php: services: - mysql env: - - USER=travis DB=test + - MYSQL_HOST=localhost MYSQL_PORT=3306 MYSQL_USERNAME=travis MYSQL_PASSWORD= MYSQL_DATABASE=test install: - composer install before_script: - mysql -e 'CREATE DATABASE IF NOT EXISTS test;' - # In order to avoid bin/worker.php warnings - - touch .htconfig.php diff --git a/htconfig.php b/htconfig.php index 0e838bd90d..87c1301abd 100644 --- a/htconfig.php +++ b/htconfig.php @@ -23,17 +23,19 @@ $db_data = 'mysqldatabasename'; // Use environment variables for mysql if they are set beforehand if (!empty(getenv('MYSQL_HOST')) - && !empty(getenv('MYSQL_PORT')) && (!empty(getenv('MYSQL_USERNAME')) || !empty(getenv('MYSQL_USER'))) - && !empty(getenv('MYSQL_PASSWORD')) + && !getenv('MYSQL_PASSWORD') === false && !empty(getenv('MYSQL_DATABASE'))) { - $db_host = getenv('MYSQL_HOST') . ':' . getenv('MYSQL_PORT'); + $db_host = getenv('MYSQL_HOST'); + if (!empty(getenv('MYSQL_PORT'))) { + $db_host .= ':' . getenv('MYSQL_PORT'); + } if (!empty(getenv('MYSQL_USERNAME'))) { $db_user = getenv('MYSQL_USERNAME'); - } elseif (!empty(getenv('MYSQL_USER'))) { + } else { $db_user = getenv('MYSQL_USER'); } - $db_pass = getenv('MYSQL_PASSWORD'); + $db_pass = (string) getenv('MYSQL_PASSWORD'); $db_data = getenv('MYSQL_DATABASE'); } diff --git a/tests/DatabaseTest.php b/tests/DatabaseTest.php index 6edd45e575..b53d59161a 100644 --- a/tests/DatabaseTest.php +++ b/tests/DatabaseTest.php @@ -33,15 +33,13 @@ abstract class DatabaseTest extends TestCase $base_config_file_path = stream_resolve_include_path($base_config_file_name); $config_file_path = dirname($base_config_file_path) . DIRECTORY_SEPARATOR . $config_file_name; - $config_string = file_get_contents($base_config_file_path); + if (!file_exists($config_file_path)) { + $config_string = file_get_contents($base_config_file_path); - $config_string = str_replace('die(', '// die(', $config_string); - $config_string = str_replace('your.mysqlhost.com', 'localhost', $config_string); - $config_string = str_replace('mysqlusername' , getenv('USER'), $config_string); - $config_string = str_replace('mysqlpassword' , getenv('PASS'), $config_string); - $config_string = str_replace('mysqldatabasename' , getenv('DB'), $config_string); + $config_string = str_replace('die(', '// die(', $config_string); - file_put_contents($config_file_path, $config_string); + file_put_contents($config_file_path, $config_string); + } } /** @@ -58,7 +56,7 @@ abstract class DatabaseTest extends TestCase protected function getConnection() { if (!dba::$connected) { - dba::connect('localhost', getenv('USER'), getenv('PASS'), getenv('DB')); + dba::connect(getenv('MYSQL_HOST') . ':' . getenv('MYSQL_PORT'), getenv('MYSQL_USERNAME'), getenv('MYSQL_PASSWORD'), getenv('MYSQL_DATABASE')); if (dba::$connected) { $app = get_app();