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