Fixed Setting::getValue issue where defaults were not returned for single keys
- updated static strings with constants
This commit is contained in:
@ -91,7 +91,7 @@ class Mailer {
|
||||
|
||||
function getMailer($mailer = false) {
|
||||
if(!$mailer) {
|
||||
$mailer = Setting::getValue('mta', null);
|
||||
$mailer = Setting::getValue('mta');
|
||||
if(!$mailer || !isset($mailer['method'])) throw new \Exception(__('Mailer is not configured.'));
|
||||
}
|
||||
$mailer['class'] = 'MailPoet\\Mailer\\Methods\\' . $mailer['method'];
|
||||
|
@ -56,7 +56,11 @@ class Setting extends Model {
|
||||
if(count($keys) === 1) {
|
||||
$setting = Setting::where('name', $key)->findOne();
|
||||
if($setting === false) {
|
||||
if($default === null && array_key_exists($key, $defaults)) {
|
||||
return $defaults[$key];
|
||||
} else {
|
||||
return $default;
|
||||
}
|
||||
} else {
|
||||
if(is_serialized($setting->value)) {
|
||||
$value = unserialize($setting->value);
|
||||
|
@ -68,7 +68,7 @@ class Scheduler {
|
||||
}
|
||||
|
||||
static function schedulePostNotification($post_id) {
|
||||
$newsletters = self::getNewsletters('notification');
|
||||
$newsletters = self::getNewsletters(Newsletter::TYPE_NOTIFICATION);
|
||||
if(!count($newsletters)) return;
|
||||
foreach($newsletters as $newsletter) {
|
||||
$post = NewsletterPost::where('newsletter_id', $newsletter->id)
|
||||
@ -92,8 +92,9 @@ class Scheduler {
|
||||
$subscriber_id,
|
||||
array $segments
|
||||
) {
|
||||
$newsletters = self::getNewsletters('welcome');
|
||||
if(!count($newsletters)) return;
|
||||
$newsletters = self::getNewsletters(Newsletter::TYPE_WELCOME);
|
||||
if(empty($newsletters)) return;
|
||||
|
||||
foreach($newsletters as $newsletter) {
|
||||
if($newsletter->event === 'segment' &&
|
||||
in_array($newsletter->segment, $segments)
|
||||
@ -108,14 +109,16 @@ class Scheduler {
|
||||
array $wp_user,
|
||||
$old_user_data
|
||||
) {
|
||||
$newsletters = self::getNewsletters('welcome');
|
||||
if(!count($newsletters)) return;
|
||||
$newsletters = self::getNewsletters(Newsletter::TYPE_WELCOME);
|
||||
if(empty($newsletters)) return;
|
||||
|
||||
foreach($newsletters as $newsletter) {
|
||||
if($newsletter->event === 'user') {
|
||||
if($old_user_data) {
|
||||
// do not schedule welcome newsletter if roles have not changed
|
||||
$old_role = (array)$old_user_data->roles;
|
||||
$new_role = (array)$wp_user->roles;
|
||||
|
||||
if($newsletter->role === self::WORDPRESS_ALL_ROLES ||
|
||||
!array_diff($old_role, $new_role)
|
||||
) {
|
||||
|
@ -47,7 +47,7 @@ class SettingTest extends MailPoetTest {
|
||||
->equals($default_settings['signup_confirmation']);
|
||||
}
|
||||
|
||||
function testItReturnsDefaultValueIfNotSet() {
|
||||
function testItCanSetAndGetValues() {
|
||||
// try to get an "unknown" key
|
||||
$setting = Setting::getValue('unknown_key', 'default_value');
|
||||
expect($setting)->equals('default_value');
|
||||
@ -69,6 +69,26 @@ class SettingTest extends MailPoetTest {
|
||||
expect($setting)->equals('default_value');
|
||||
}
|
||||
|
||||
function testItShouldReturnDefaultsSetInModelIfNotSet() {
|
||||
// model specified default settings
|
||||
$default_settings = Setting::getDefaults();
|
||||
|
||||
// try to get the MTA settings (which don't exist in the database)
|
||||
$mta_settings = Setting::getValue('mta');
|
||||
expect($mta_settings)->equals($default_settings['mta']);
|
||||
}
|
||||
|
||||
function testItShouldReturnCustomDefaultsInsteadOfDefaultsSetInModel() {
|
||||
// try to get the MTA settings (which don't exist in the database)
|
||||
// but specify a custom default value
|
||||
$custom_mta_settings = Setting::getValue('mta', array(
|
||||
'custom_default' => 'value'
|
||||
));
|
||||
expect($custom_mta_settings)->equals(array(
|
||||
'custom_default' => 'value'
|
||||
));
|
||||
}
|
||||
|
||||
function testItCanCreateOrUpdate() {
|
||||
$data = array(
|
||||
'name' => 'new',
|
||||
|
Reference in New Issue
Block a user