Fix array offset access on null/boolean and with curly braces [MAILPOET-2577]

This commit is contained in:
wxa
2020-01-23 01:36:35 +03:00
committed by Jack Kitterhing
parent 12c71511e4
commit 3584b717dc
7 changed files with 30 additions and 25 deletions

View File

@ -230,9 +230,9 @@ class XLSXWriter
$file->write('<c r="' . $cell . '" s="' . $s . '" t="n"><v>' . self::convert_date_time($value) . '</v></c>');
} elseif (!is_string($value)) {
$file->write('<c r="' . $cell . '" s="' . $s . '" t="n"><v>' . ($value * 1) . '</v></c>');//int,float, etc
} elseif ($value{0} != '0' && filter_var($value, FILTER_VALIDATE_INT)){ //excel wants to trim leading zeros
} elseif ($value[0] != '0' && filter_var($value, FILTER_VALIDATE_INT)){ //excel wants to trim leading zeros
$file->write('<c r="' . $cell . '" s="' . $s . '" t="n"><v>' . ($value) . '</v></c>');//numeric string
} elseif ($value{0} == '='){
} elseif ($value[0] == '='){
$file->write('<c r="' . $cell . '" s="' . $s . '" t="s"><f>' . self::xmlspecialchars($value) . '</f></c>');
} elseif ($value !== ''){
$file->write('<c r="' . $cell . '" s="' . $s . '" t="s"><v>' . self::xmlspecialchars($this->setSharedString($value)) . '</v></c>');

View File

@ -28,7 +28,7 @@ class Beacon {
$mta = $this->settings->get('mta');
$currentTheme = WPFunctions::get()->wpGetTheme();
$currentUser = WPFunctions::get()->wpGetCurrentUser();
$sender = $this->settings->get('sender');
$sender = $this->settings->get('sender', ['address' => null]);
$premiumKey = $this->settings->get(Bridge::PREMIUM_KEY_SETTING_NAME) ?: $this->settings->get(Bridge::API_KEY_SETTING_NAME);
$cronHelper = ContainerWrapper::getInstance()->get(CronHelper::class);
$cronPingUrl = $cronHelper->getCronUrl(

View File

@ -95,7 +95,12 @@ class State
null,
$queue
),
] : null,
] : [
'newsletter_id' => null,
'queue_id' => null,
'subject' => null,
'preview_url' => null,
],
];
}
}

View File

@ -166,7 +166,6 @@ class CronHelperTest extends \MailPoetTest {
'run_access' => $time - 4,
'run_start' => $time - 10,
],
null,
];
foreach ($testInputs as $testInput) {
$daemon = $this->getDeamonTestData();

View File

@ -54,6 +54,7 @@ class SendingQueueTest extends \MailPoetTest {
public $subscriberSegment;
public $segment;
public $subscriber;
private $mailerTaskDummyResponse = ['response' => true];
/** @var SendingErrorHandler */
private $sendingErrorHandler;
/** @var SettingsController */
@ -185,7 +186,7 @@ class SendingQueueTest extends \MailPoetTest {
Stub::make(
new MailerTask(),
[
'sendBulk' => null,
'sendBulk' => $this->mailerTaskDummyResponse,
]
)
);
@ -223,7 +224,7 @@ class SendingQueueTest extends \MailPoetTest {
Stub::make(
new MailerTask(),
[
'sendBulk' => null,
'sendBulk' => $this->mailerTaskDummyResponse,
]
)
);
@ -291,7 +292,7 @@ class SendingQueueTest extends \MailPoetTest {
'subscriber_status' => 'subscribed',
'subscriber_source' => 'administrator',
]);
return true;
return $this->mailerTaskDummyResponse;
}),
],
$this
@ -321,7 +322,7 @@ class SendingQueueTest extends \MailPoetTest {
'subscriber_status' => 'subscribed',
'subscriber_source' => 'administrator',
]);
return true;
return $this->mailerTaskDummyResponse;
}),
],
$this
@ -344,7 +345,7 @@ class SendingQueueTest extends \MailPoetTest {
// newsletter body should not be empty
expect(!empty($newsletter['body']['html']))->true();
expect(!empty($newsletter['body']['text']))->true();
return true;
return $this->mailerTaskDummyResponse;
}),
],
$this
@ -393,7 +394,7 @@ class SendingQueueTest extends \MailPoetTest {
// newsletter body should not be empty
expect(!empty($newsletter[0]['body']['html']))->true();
expect(!empty($newsletter[0]['body']['text']))->true();
return true;
return $this->mailerTaskDummyResponse;
}),
'getProcessingMethod' => Expected::exactly(1, function() {
return 'bulk';
@ -445,7 +446,7 @@ class SendingQueueTest extends \MailPoetTest {
// newsletter body should not be empty
expect(!empty($newsletter['body']['html']))->true();
expect(!empty($newsletter['body']['text']))->true();
return true;
return $this->mailerTaskDummyResponse;
}),
],
$this
@ -522,7 +523,7 @@ class SendingQueueTest extends \MailPoetTest {
// newsletter body should not be empty
expect(!empty($newsletter['body']['html']))->true();
expect(!empty($newsletter['body']['text']))->true();
return true;
return $this->mailerTaskDummyResponse;
}),
],
$this
@ -604,7 +605,7 @@ class SendingQueueTest extends \MailPoetTest {
new MailerTask(),
[
'send' => Expected::exactly(1, function() {
return true;
return $this->mailerTaskDummyResponse;
}),
],
$this
@ -639,7 +640,7 @@ class SendingQueueTest extends \MailPoetTest {
$sendingQueueWorker = $this->sendingQueueWorker;
$sendingQueueWorker->mailerTask = Stub::make(
new MailerTask(),
['send' => true]
['send' => $this->mailerTaskDummyResponse]
);
$sendingQueueWorker->process();
@ -660,7 +661,7 @@ class SendingQueueTest extends \MailPoetTest {
$sendingQueueWorker = $this->sendingQueueWorker;
$sendingQueueWorker->mailerTask = Stub::make(
new MailerTask(),
['send' => true]
['send' => $this->mailerTaskDummyResponse]
);
// newsletter is sent to existing subscriber
@ -687,7 +688,7 @@ class SendingQueueTest extends \MailPoetTest {
$sendingQueueWorker = $this->sendingQueueWorker;
$sendingQueueWorker->mailerTask = Stub::make(
new MailerTask(),
['send' => true]
['send' => $this->mailerTaskDummyResponse]
);
// newsletter is not sent to globally unsubscribed subscriber
@ -705,7 +706,7 @@ class SendingQueueTest extends \MailPoetTest {
$sendingQueueWorker = $this->sendingQueueWorker;
$sendingQueueWorker->mailerTask = Stub::make(
new MailerTask(),
['send' => true]
['send' => $this->mailerTaskDummyResponse]
);
// newsletter is not sent to subscriber unsubscribed from segment
@ -723,7 +724,7 @@ class SendingQueueTest extends \MailPoetTest {
$sendingQueueWorker = $this->sendingQueueWorker;
$sendingQueueWorker->mailerTask = Stub::make(
new MailerTask(),
['send' => true]
['send' => $this->mailerTaskDummyResponse]
);
// newsletter is not sent to inactive subscriber
@ -762,7 +763,7 @@ class SendingQueueTest extends \MailPoetTest {
Stub::make(
new MailerTask(),
[
'sendBulk' => true,
'sendBulk' => $this->mailerTaskDummyResponse,
]
)
);
@ -799,7 +800,7 @@ class SendingQueueTest extends \MailPoetTest {
Stub::make(
new MailerTask(),
[
'send' => Expected::once(),
'send' => Expected::once($this->mailerTaskDummyResponse),
],
$this
)

View File

@ -13,7 +13,7 @@ class SubscribersListingsHandlerFactoryTest extends \MailPoetTest {
$segment->name = 'name';
$segment->type = 'unknown';
$listings = new SubscribersListingsHandlerFactory();
$result = $listings->get($segment, []);
$result = $listings->get($segment, ['filter' => ['segment' => null]]);
expect($result)->null();
}
@ -24,7 +24,7 @@ class SubscribersListingsHandlerFactoryTest extends \MailPoetTest {
'type' => DynamicSegment::TYPE_DYNAMIC,
]);
$listings = new SubscribersListingsHandlerFactory();
$result = $listings->get($segment, []);
$result = $listings->get($segment, ['filter' => ['segment' => null]]);
expect($result)->notNull();
}

View File

@ -128,7 +128,7 @@ class ConfirmationEmailMailerTest extends \MailPoetTest {
$mailer = Stub::makeEmpty(Mailer::class, [
'send' => function() {
return true;
return ['response' => true];
},
], $this);
$sender = new ConfirmationEmailMailer(
@ -156,7 +156,7 @@ class ConfirmationEmailMailerTest extends \MailPoetTest {
$mailer = Stub::makeEmpty(Mailer::class, [
'send' => function() {
return true;
return ['response' => true];
},
], $this);
$sender = new ConfirmationEmailMailer(