- Fixes DB configuration being partially set

This commit is contained in:
Vlad
2016-12-20 10:14:04 -05:00
parent cad6391fc6
commit 949d6033d7
2 changed files with 24 additions and 62 deletions

View File

@@ -53,9 +53,9 @@ class Initializer {
\ORM::configure('logging', WP_DEBUG); \ORM::configure('logging', WP_DEBUG);
\ORM::configure('driver_options', array( \ORM::configure('driver_options', array(
\PDO::MYSQL_ATTR_INIT_COMMAND => \PDO::MYSQL_ATTR_INIT_COMMAND =>
'SET NAMES utf8, 'SET NAMES utf8, ' .
TIME_ZONE = "' . Env::$db_timezone_offset. '", 'TIME_ZONE = "' . Env::$db_timezone_offset . '", ' .
sql_mode=(SELECT REPLACE(@@sql_mode,"ONLY_FULL_GROUP_BY",""))' 'sql_mode=(SELECT REPLACE(@@sql_mode,"ONLY_FULL_GROUP_BY",""))'
)); ));
$settings = Env::$db_prefix . 'settings'; $settings = Env::$db_prefix . 'settings';

View File

@@ -1,62 +1,24 @@
<?php <?php
use MailPoet\Config\Env; use MailPoet\Config\Env;
class EnvTest extends MailPoetTest { class InitializerTest extends MailPoetTest {
function _before() { function testItSetsDBDriverOptions() {
Env::init('file', '1.0.0'); $result = ORM::for_table("")
} ->raw_query('SELECT ' .
'@@sql_mode as sql_mode, ' .
function testItCanReturnPluginPrefix() { '@@session.time_zone as time_zone, ' .
expect(Env::$plugin_prefix)->equals('mailpoet_'); '@@session.character_set_client as client_character, ' .
} '@@session.character_set_results as results_character, ' .
'@@session.character_set_connection as connection_character')
function testItCanReturnDbPrefix() { ->findOne();
global $wpdb; // disable ONLY_FULL_GROUP_BY
$db_prefix = $wpdb->prefix . 'mailpoet_'; expect($result->sql_mode)->notContains('ONLY_FULL_GROUP_BY');
expect(Env::$db_prefix)->equals($db_prefix); // time zone should be set based on WP's time zone
} expect($result->time_zone)->equals(Env::$db_timezone_offset);
// character set should be set to utf8
function testItCanReturnDbHost() { expect($result->client_character)->equals('utf8');
if(preg_match('/(?=:\d+$)/', DB_HOST)) { expect($result->results_character)->equals('utf8');
expect(Env::$db_host)->equals(explode(':', DB_HOST)[0]); expect($result->connection_character)->equals('utf8');
} else expect(Env::$db_host)->equals(DB_HOST);
}
function testItCanReturnDbPort() {
if(preg_match('/(?=:\d+$)/', DB_HOST)) {
expect(Env::$db_port)->equals(explode(':', DB_HOST)[1]);
} else expect(Env::$db_port)->equals(3306);
}
function testItCanReturnSocket() {
if(!preg_match('/(?=:\d+$)/', DB_HOST)
&& preg_match('/:/', DB_HOST)
) {
expect(Env::$db_socket)->true();
} else expect(Env::$db_socket)->false();
}
function testItCanReturnDbName() {
expect(Env::$db_name)->equals(DB_NAME);
}
function testItCanReturnDbUser() {
expect(Env::$db_username)->equals(DB_USER);
}
function testItCanReturnDbPassword() {
expect(Env::$db_password)->equals(DB_PASSWORD);
}
function testItCanReturnDbCharset() {
global $wpdb;
$charset = $wpdb->get_charset_collate();
expect(Env::$db_charset)->equals($charset);
}
function testItCanGenerateDbSourceName() {
$source_name = ((!ENV::$db_socket) ? 'mysql:host=' : 'mysql:unix_socket=') .
ENV::$db_host . ';port=' . ENV::$db_port . ';dbname=' . DB_NAME;
expect(Env::$db_source_name)->equals($source_name);
} }
} }