Default status is set depending on the signup confirmation option

This commit is contained in:
Vlad
2017-08-31 18:47:11 -04:00
parent 5b8b8c8441
commit c8d92b3cd2
2 changed files with 37 additions and 2 deletions

View File

@ -875,7 +875,8 @@ class Subscriber extends Model {
static function setRequiredFieldsDefaultValues($data) { static function setRequiredFieldsDefaultValues($data) {
$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
); );
foreach($required_field_default_values as $field => $value) { foreach($required_field_default_values as $field => $value) {
if(!isset($data[$field])) { if(!isset($data[$field])) {

View File

@ -1020,7 +1020,40 @@ class SubscriberTest extends \MailPoetTest {
expect(Subscriber::setRequiredFieldsDefaultValues(array()))->equals( expect(Subscriber::setRequiredFieldsDefaultValues(array()))->equals(
array( array(
'first_name' => '', 'first_name' => '',
'last_name' => '' 'last_name' => '',
'status' => Subscriber::STATUS_UNCONFIRMED
)
);
}
function testItSetsDefaultStatusDependingOnSingupConfirmationOption() {
// when signup confirmation is disabled, status should be 'subscribed'
Setting::setValue('signup_confirmation.enabled', false);
expect(Subscriber::setRequiredFieldsDefaultValues(array()))->equals(
array(
'first_name' => '',
'last_name' => '',
'status' => Subscriber::STATUS_SUBSCRIBED
)
);
Setting::setValue('signup_confirmation.enabled', true);
// when signup confirmation is enabled, status should be 'unconfirmed'
expect(Subscriber::setRequiredFieldsDefaultValues(array()))->equals(
array(
'first_name' => '',
'last_name' => '',
'status' => Subscriber::STATUS_UNCONFIRMED
)
);
// when status is specified, it should not change regardless of signup confirmation option
Setting::setValue('signup_confirmation.enabled', true);
expect(Subscriber::setRequiredFieldsDefaultValues(array('status' => Subscriber::STATUS_SUBSCRIBED)))->equals(
array(
'first_name' => '',
'last_name' => '',
'status' => Subscriber::STATUS_SUBSCRIBED
) )
); );
} }
@ -1034,6 +1067,7 @@ class SubscriberTest extends \MailPoetTest {
expect($result->getErrors())->false(); expect($result->getErrors())->false();
expect($result->first_name)->isEmpty(); expect($result->first_name)->isEmpty();
expect($result->last_name)->isEmpty(); expect($result->last_name)->isEmpty();
expect($result->status)->equals(Subscriber::STATUS_UNCONFIRMED);
} }
function testItDoesNotSetDefaultValuesForExistingSubscribers() { function testItDoesNotSetDefaultValuesForExistingSubscribers() {