- Updates the format of db timezone offset to two-digit hours and minutes
This commit is contained in:
@ -80,12 +80,13 @@ class Env {
|
|||||||
return implode('', $source_name);
|
return implode('', $source_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static function getDbTimezoneOffset() {
|
static function getDbTimezoneOffset($offset = false) {
|
||||||
$mins = get_option('gmt_offset') * 60;
|
$offset = ($offset) ? $offset : get_option('gmt_offset');
|
||||||
|
$mins = $offset * 60;
|
||||||
$sgn = ($mins < 0 ? -1 : 1);
|
$sgn = ($mins < 0 ? -1 : 1);
|
||||||
$mins = abs($mins);
|
$mins = abs($mins);
|
||||||
$hrs = floor($mins / 60);
|
$hrs = floor($mins / 60);
|
||||||
$mins -= $hrs * 60;
|
$mins -= $hrs * 60;
|
||||||
return sprintf('%+d:%02d', $hrs * $sgn, $mins);
|
return sprintf('%+03d:%02d', $hrs * $sgn, $mins);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -53,11 +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,
|
||||||
\PDO::MYSQL_ATTR_INIT_COMMAND =>
|
TIME_ZONE = "' . Env::$db_timezone_offset. '",
|
||||||
'SET TIME_ZONE = "' . Env::$db_timezone_offset. '"',
|
sql_mode=(SELECT REPLACE(@@sql_mode,"ONLY_FULL_GROUP_BY",""))'
|
||||||
\PDO::MYSQL_ATTR_INIT_COMMAND =>
|
|
||||||
'SET sql_mode=(SELECT REPLACE(@@sql_mode,"ONLY_FULL_GROUP_BY",""))'
|
|
||||||
));
|
));
|
||||||
|
|
||||||
$settings = Env::$db_prefix . 'settings';
|
$settings = Env::$db_prefix . 'settings';
|
||||||
|
@ -59,4 +59,10 @@ class EnvTest extends MailPoetTest {
|
|||||||
ENV::$db_host . ';port=' . ENV::$db_port . ';dbname=' . DB_NAME;
|
ENV::$db_host . ';port=' . ENV::$db_port . ';dbname=' . DB_NAME;
|
||||||
expect(Env::$db_source_name)->equals($source_name);
|
expect(Env::$db_source_name)->equals($source_name);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
function testItCanGetDbTimezoneOffset() {
|
||||||
|
expect(Env::getDbTimezoneOffset('+1.5'))->equals("+01:30");
|
||||||
|
expect(Env::getDbTimezoneOffset('+11'))->equals("+11:00");
|
||||||
|
expect(Env::getDbTimezoneOffset('-5.5'))->equals("-05:30");
|
||||||
|
}
|
||||||
|
}
|
62
tests/unit/Config/InitializerTest.php
Normal file
62
tests/unit/Config/InitializerTest.php
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
<?php
|
||||||
|
use MailPoet\Config\Env;
|
||||||
|
|
||||||
|
class EnvTest extends MailPoetTest {
|
||||||
|
function _before() {
|
||||||
|
Env::init('file', '1.0.0');
|
||||||
|
}
|
||||||
|
|
||||||
|
function testItCanReturnPluginPrefix() {
|
||||||
|
expect(Env::$plugin_prefix)->equals('mailpoet_');
|
||||||
|
}
|
||||||
|
|
||||||
|
function testItCanReturnDbPrefix() {
|
||||||
|
global $wpdb;
|
||||||
|
$db_prefix = $wpdb->prefix . 'mailpoet_';
|
||||||
|
expect(Env::$db_prefix)->equals($db_prefix);
|
||||||
|
}
|
||||||
|
|
||||||
|
function testItCanReturnDbHost() {
|
||||||
|
if(preg_match('/(?=:\d+$)/', DB_HOST)) {
|
||||||
|
expect(Env::$db_host)->equals(explode(':', DB_HOST)[0]);
|
||||||
|
} 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);
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user