Refactor MailPoet\Model to use new settings
[MAILPOET-1757]
This commit is contained in:
@ -2,6 +2,7 @@
|
||||
namespace MailPoet\Models;
|
||||
use Carbon\Carbon;
|
||||
use MailPoet\Newsletter\Renderer\Renderer;
|
||||
use MailPoet\Settings\SettingsController;
|
||||
use MailPoet\Tasks\Sending as SendingTask;
|
||||
use MailPoet\Util\Helpers;
|
||||
use MailPoet\Util\Security;
|
||||
@ -935,9 +936,10 @@ class Newsletter extends Model {
|
||||
|
||||
static function createOrUpdate($data = array()) {
|
||||
return parent::_createOrUpdate($data, false, function($data) {
|
||||
$settings = new SettingsController();
|
||||
// set default sender based on settings
|
||||
if(empty($data['sender'])) {
|
||||
$sender = Setting::getValue('sender', array());
|
||||
$sender = $settings->get('sender', []);
|
||||
$data['sender_name'] = (
|
||||
!empty($sender['name'])
|
||||
? $sender['name']
|
||||
@ -952,7 +954,7 @@ class Newsletter extends Model {
|
||||
|
||||
// set default reply_to based on settings
|
||||
if(empty($data['reply_to'])) {
|
||||
$reply_to = Setting::getValue('reply_to', array());
|
||||
$reply_to = $settings->get('reply_to', array());
|
||||
$data['reply_to_name'] = (
|
||||
!empty($reply_to['name'])
|
||||
? $reply_to['name']
|
||||
|
@ -2,6 +2,7 @@
|
||||
namespace MailPoet\Models;
|
||||
|
||||
use MailPoet\Cron\CronTrigger;
|
||||
use MailPoet\Settings\SettingsController;
|
||||
use MailPoet\Util\Helpers;
|
||||
|
||||
if(!defined('ABSPATH')) exit;
|
||||
@ -124,10 +125,11 @@ class Setting extends Model {
|
||||
}
|
||||
|
||||
public static function saveDefaultSenderIfNeeded($sender_address, $sender_name) {
|
||||
if(empty($sender_address) || empty($sender_name) || Setting::getValue('sender')) {
|
||||
$settings = new SettingsController();
|
||||
if(empty($sender_address) || empty($sender_name) || $settings->get('sender')) {
|
||||
return;
|
||||
}
|
||||
Setting::setValue('sender', array(
|
||||
$settings->set('sender', array(
|
||||
'address' => $sender_address,
|
||||
'name' => $sender_name
|
||||
));
|
||||
|
@ -2,6 +2,7 @@
|
||||
namespace MailPoet\Models;
|
||||
|
||||
use MailPoet\Newsletter\Scheduler\Scheduler;
|
||||
use MailPoet\Settings\SettingsController;
|
||||
use MailPoet\Subscribers\ConfirmationEmailMailer;
|
||||
use MailPoet\Subscribers\NewSubscriberNotificationMailer;
|
||||
use MailPoet\Subscribers\Source;
|
||||
@ -121,7 +122,8 @@ class Subscriber extends Model {
|
||||
// that should not be editable when subscribing
|
||||
$subscriber_data = self::filterOutReservedColumns($subscriber_data);
|
||||
|
||||
$signup_confirmation_enabled = (bool)Setting::getValue(
|
||||
$settings = new SettingsController();
|
||||
$signup_confirmation_enabled = (bool)$settings->get(
|
||||
'signup_confirmation.enabled'
|
||||
);
|
||||
|
||||
@ -822,10 +824,11 @@ class Subscriber extends Model {
|
||||
}
|
||||
|
||||
static function setRequiredFieldsDefaultValues($data) {
|
||||
$settings = new SettingsController();
|
||||
$required_field_default_values = array(
|
||||
'first_name' => '',
|
||||
'last_name' => '',
|
||||
'status' => (!Setting::getValue('signup_confirmation.enabled')) ? self::STATUS_SUBSCRIBED : self::STATUS_UNCONFIRMED
|
||||
'status' => (!$settings->get('signup_confirmation.enabled')) ? self::STATUS_SUBSCRIBED : self::STATUS_UNCONFIRMED
|
||||
);
|
||||
foreach($required_field_default_values as $field => $value) {
|
||||
if(!isset($data[$field])) {
|
||||
|
@ -2,6 +2,7 @@
|
||||
namespace MailPoet\Test\Models;
|
||||
|
||||
use MailPoet\Models\Setting;
|
||||
use MailPoet\Settings\SettingsController;
|
||||
|
||||
class SettingTest extends \MailPoetTest {
|
||||
function testItCanBeCreated() {
|
||||
@ -128,21 +129,24 @@ class SettingTest extends \MailPoetTest {
|
||||
}
|
||||
|
||||
function testSaveDefaultSenderIfNeededNotSaveEmptyValue() {
|
||||
$settings_controller = new SettingsController();
|
||||
Setting::saveDefaultSenderIfNeeded('', null);
|
||||
expect(Setting::getValue('sender'))->null();
|
||||
expect($settings_controller->get('sender'))->null();
|
||||
}
|
||||
|
||||
function testSaveDefaultSenderIfNeededDoesntOverride() {
|
||||
Setting::setValue('sender', array('name' => 'sender1', 'address' => 'sender1address'));
|
||||
$settings_controller = new SettingsController();
|
||||
$settings_controller->set('sender', array('name' => 'sender1', 'address' => 'sender1address'));
|
||||
Setting::saveDefaultSenderIfNeeded('sender2address', 'sender1');
|
||||
$settings = Setting::getValue('sender');
|
||||
$settings = $settings_controller->get('sender');
|
||||
expect($settings['name'])->equals('sender1');
|
||||
expect($settings['address'])->equals('sender1address');
|
||||
}
|
||||
|
||||
function testSaveDefaultSenderIfNeeded() {
|
||||
$settings_controller = new SettingsController();
|
||||
Setting::saveDefaultSenderIfNeeded('senderAddress', 'sender');
|
||||
$settings = Setting::getValue('sender');
|
||||
$settings = $settings_controller->get('sender');
|
||||
expect($settings['name'])->equals('sender');
|
||||
expect($settings['address'])->equals('senderAddress');
|
||||
}
|
||||
|
@ -14,12 +14,16 @@ use MailPoet\Models\Setting;
|
||||
use MailPoet\Models\Subscriber;
|
||||
use MailPoet\Models\SubscriberCustomField;
|
||||
use MailPoet\Models\SubscriberSegment;
|
||||
use MailPoet\Settings\SettingsController;
|
||||
|
||||
class SubscriberTest extends \MailPoetTest {
|
||||
|
||||
/** @var array */
|
||||
private $test_data;
|
||||
|
||||
/** @var SettingsController */
|
||||
private $settings;
|
||||
|
||||
function _before() {
|
||||
parent::_before();
|
||||
$this->test_data = array(
|
||||
@ -30,7 +34,8 @@ class SubscriberTest extends \MailPoetTest {
|
||||
$this->subscriber = Subscriber::create();
|
||||
$this->subscriber->hydrate($this->test_data);
|
||||
$this->saved = $this->subscriber->save();
|
||||
Setting::setValue('sender', array(
|
||||
$this->settings = new SettingsController();
|
||||
$this->settings->set('sender', array(
|
||||
'name' => 'John Doe',
|
||||
'address' => 'john.doe@example.com'
|
||||
));
|
||||
@ -482,7 +487,7 @@ class SubscriberTest extends \MailPoetTest {
|
||||
expect($newsletter_option->getErrors())->false();
|
||||
}
|
||||
|
||||
Setting::setValue('signup_confirmation.enabled', false);
|
||||
$this->settings->set('signup_confirmation.enabled', false);
|
||||
$subscriber = Subscriber::subscribe($this->test_data, array($segment->id()));
|
||||
expect($subscriber->id() > 0)->equals(true);
|
||||
expect($subscriber->segments()->count())->equals(1);
|
||||
@ -527,9 +532,7 @@ class SubscriberTest extends \MailPoetTest {
|
||||
expect($newsletter_option->getErrors())->false();
|
||||
}
|
||||
|
||||
$signup_confirmation_enabled = (bool)Setting::setValue(
|
||||
'signup_confirmation.enabled', true
|
||||
);
|
||||
$this->settings->set('signup_confirmation.enabled', true);
|
||||
$subscriber = Subscriber::subscribe($this->test_data, array($segment->id()));
|
||||
expect($subscriber->id() > 0)->equals(true);
|
||||
expect($subscriber->segments()->count())->equals(1);
|
||||
@ -578,8 +581,8 @@ class SubscriberTest extends \MailPoetTest {
|
||||
}
|
||||
|
||||
function testItOverwritesSubscriberDataWhenConfirmationIsDisabled() {
|
||||
$original_setting_value = Setting::getValue('signup_confirmation.enabled');
|
||||
Setting::setValue('signup_confirmation.enabled', false);
|
||||
$original_setting_value = $this->settings->get('signup_confirmation.enabled');
|
||||
$this->settings->set('signup_confirmation.enabled', false);
|
||||
|
||||
$segment = Segment::create();
|
||||
$segment->hydrate(array('name' => 'List #1'));
|
||||
@ -621,12 +624,12 @@ class SubscriberTest extends \MailPoetTest {
|
||||
expect($subscriber->first_name)->equals($data2['first_name']);
|
||||
expect($subscriber->last_name)->equals($data2['last_name']);
|
||||
|
||||
Setting::setValue('signup_confirmation.enabled', $original_setting_value);
|
||||
$this->settings->set('signup_confirmation.enabled', $original_setting_value);
|
||||
}
|
||||
|
||||
function testItStoresUnconfirmedSubscriberDataWhenConfirmationIsEnabled() {
|
||||
$original_setting_value = Setting::getValue('signup_confirmation.enabled');
|
||||
Setting::setValue('signup_confirmation.enabled', true);
|
||||
$original_setting_value = $this->settings->get('signup_confirmation.enabled');
|
||||
$this->settings->set('signup_confirmation.enabled', true);
|
||||
|
||||
$segment = Segment::create();
|
||||
$segment->hydrate(array('name' => 'List #1'));
|
||||
@ -690,7 +693,7 @@ class SubscriberTest extends \MailPoetTest {
|
||||
$subscriber = Subscriber::where('email', $data2['email'])->findOne();
|
||||
expect($subscriber->unconfirmed_data)->isEmpty();
|
||||
|
||||
Setting::setValue('signup_confirmation.enabled', $original_setting_value);
|
||||
$this->settings->set('signup_confirmation.enabled', $original_setting_value);
|
||||
}
|
||||
|
||||
function testItCanBeUpdatedByEmail() {
|
||||
@ -1071,7 +1074,7 @@ class SubscriberTest extends \MailPoetTest {
|
||||
|
||||
function testItSetsDefaultStatusDependingOnSingupConfirmationOption() {
|
||||
// when signup confirmation is disabled, status should be 'subscribed'
|
||||
Setting::setValue('signup_confirmation.enabled', false);
|
||||
$this->settings->set('signup_confirmation.enabled', false);
|
||||
expect(Subscriber::setRequiredFieldsDefaultValues(array()))->equals(
|
||||
array(
|
||||
'first_name' => '',
|
||||
@ -1080,7 +1083,7 @@ class SubscriberTest extends \MailPoetTest {
|
||||
)
|
||||
);
|
||||
|
||||
Setting::setValue('signup_confirmation.enabled', true);
|
||||
$this->settings->set('signup_confirmation.enabled', true);
|
||||
// when signup confirmation is enabled, status should be 'unconfirmed'
|
||||
expect(Subscriber::setRequiredFieldsDefaultValues(array()))->equals(
|
||||
array(
|
||||
@ -1091,7 +1094,7 @@ class SubscriberTest extends \MailPoetTest {
|
||||
);
|
||||
|
||||
// when status is specified, it should not change regardless of signup confirmation option
|
||||
Setting::setValue('signup_confirmation.enabled', true);
|
||||
$this->settings->set('signup_confirmation.enabled', true);
|
||||
expect(Subscriber::setRequiredFieldsDefaultValues(array('status' => Subscriber::STATUS_SUBSCRIBED)))->equals(
|
||||
array(
|
||||
'first_name' => '',
|
||||
|
Reference in New Issue
Block a user