Fix array offset access on null/boolean and with curly braces [MAILPOET-2577]
This commit is contained in:
4
lib-3rd-party/XLSXWriter.php
vendored
4
lib-3rd-party/XLSXWriter.php
vendored
@ -230,9 +230,9 @@ class XLSXWriter
|
|||||||
$file->write('<c r="' . $cell . '" s="' . $s . '" t="n"><v>' . self::convert_date_time($value) . '</v></c>');
|
$file->write('<c r="' . $cell . '" s="' . $s . '" t="n"><v>' . self::convert_date_time($value) . '</v></c>');
|
||||||
} elseif (!is_string($value)) {
|
} elseif (!is_string($value)) {
|
||||||
$file->write('<c r="' . $cell . '" s="' . $s . '" t="n"><v>' . ($value * 1) . '</v></c>');//int,float, etc
|
$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
|
$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>');
|
$file->write('<c r="' . $cell . '" s="' . $s . '" t="s"><f>' . self::xmlspecialchars($value) . '</f></c>');
|
||||||
} elseif ($value !== ''){
|
} elseif ($value !== ''){
|
||||||
$file->write('<c r="' . $cell . '" s="' . $s . '" t="s"><v>' . self::xmlspecialchars($this->setSharedString($value)) . '</v></c>');
|
$file->write('<c r="' . $cell . '" s="' . $s . '" t="s"><v>' . self::xmlspecialchars($this->setSharedString($value)) . '</v></c>');
|
||||||
|
@ -28,7 +28,7 @@ class Beacon {
|
|||||||
$mta = $this->settings->get('mta');
|
$mta = $this->settings->get('mta');
|
||||||
$currentTheme = WPFunctions::get()->wpGetTheme();
|
$currentTheme = WPFunctions::get()->wpGetTheme();
|
||||||
$currentUser = WPFunctions::get()->wpGetCurrentUser();
|
$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);
|
$premiumKey = $this->settings->get(Bridge::PREMIUM_KEY_SETTING_NAME) ?: $this->settings->get(Bridge::API_KEY_SETTING_NAME);
|
||||||
$cronHelper = ContainerWrapper::getInstance()->get(CronHelper::class);
|
$cronHelper = ContainerWrapper::getInstance()->get(CronHelper::class);
|
||||||
$cronPingUrl = $cronHelper->getCronUrl(
|
$cronPingUrl = $cronHelper->getCronUrl(
|
||||||
|
@ -95,7 +95,12 @@ class State
|
|||||||
null,
|
null,
|
||||||
$queue
|
$queue
|
||||||
),
|
),
|
||||||
] : null,
|
] : [
|
||||||
|
'newsletter_id' => null,
|
||||||
|
'queue_id' => null,
|
||||||
|
'subject' => null,
|
||||||
|
'preview_url' => null,
|
||||||
|
],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -166,7 +166,6 @@ class CronHelperTest extends \MailPoetTest {
|
|||||||
'run_access' => $time - 4,
|
'run_access' => $time - 4,
|
||||||
'run_start' => $time - 10,
|
'run_start' => $time - 10,
|
||||||
],
|
],
|
||||||
null,
|
|
||||||
];
|
];
|
||||||
foreach ($testInputs as $testInput) {
|
foreach ($testInputs as $testInput) {
|
||||||
$daemon = $this->getDeamonTestData();
|
$daemon = $this->getDeamonTestData();
|
||||||
|
@ -54,6 +54,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
public $subscriberSegment;
|
public $subscriberSegment;
|
||||||
public $segment;
|
public $segment;
|
||||||
public $subscriber;
|
public $subscriber;
|
||||||
|
private $mailerTaskDummyResponse = ['response' => true];
|
||||||
/** @var SendingErrorHandler */
|
/** @var SendingErrorHandler */
|
||||||
private $sendingErrorHandler;
|
private $sendingErrorHandler;
|
||||||
/** @var SettingsController */
|
/** @var SettingsController */
|
||||||
@ -185,7 +186,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
Stub::make(
|
Stub::make(
|
||||||
new MailerTask(),
|
new MailerTask(),
|
||||||
[
|
[
|
||||||
'sendBulk' => null,
|
'sendBulk' => $this->mailerTaskDummyResponse,
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -223,7 +224,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
Stub::make(
|
Stub::make(
|
||||||
new MailerTask(),
|
new MailerTask(),
|
||||||
[
|
[
|
||||||
'sendBulk' => null,
|
'sendBulk' => $this->mailerTaskDummyResponse,
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -291,7 +292,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
'subscriber_status' => 'subscribed',
|
'subscriber_status' => 'subscribed',
|
||||||
'subscriber_source' => 'administrator',
|
'subscriber_source' => 'administrator',
|
||||||
]);
|
]);
|
||||||
return true;
|
return $this->mailerTaskDummyResponse;
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
$this
|
$this
|
||||||
@ -321,7 +322,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
'subscriber_status' => 'subscribed',
|
'subscriber_status' => 'subscribed',
|
||||||
'subscriber_source' => 'administrator',
|
'subscriber_source' => 'administrator',
|
||||||
]);
|
]);
|
||||||
return true;
|
return $this->mailerTaskDummyResponse;
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
$this
|
$this
|
||||||
@ -344,7 +345,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
// newsletter body should not be empty
|
// newsletter body should not be empty
|
||||||
expect(!empty($newsletter['body']['html']))->true();
|
expect(!empty($newsletter['body']['html']))->true();
|
||||||
expect(!empty($newsletter['body']['text']))->true();
|
expect(!empty($newsletter['body']['text']))->true();
|
||||||
return true;
|
return $this->mailerTaskDummyResponse;
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
$this
|
$this
|
||||||
@ -393,7 +394,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
// newsletter body should not be empty
|
// newsletter body should not be empty
|
||||||
expect(!empty($newsletter[0]['body']['html']))->true();
|
expect(!empty($newsletter[0]['body']['html']))->true();
|
||||||
expect(!empty($newsletter[0]['body']['text']))->true();
|
expect(!empty($newsletter[0]['body']['text']))->true();
|
||||||
return true;
|
return $this->mailerTaskDummyResponse;
|
||||||
}),
|
}),
|
||||||
'getProcessingMethod' => Expected::exactly(1, function() {
|
'getProcessingMethod' => Expected::exactly(1, function() {
|
||||||
return 'bulk';
|
return 'bulk';
|
||||||
@ -445,7 +446,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
// newsletter body should not be empty
|
// newsletter body should not be empty
|
||||||
expect(!empty($newsletter['body']['html']))->true();
|
expect(!empty($newsletter['body']['html']))->true();
|
||||||
expect(!empty($newsletter['body']['text']))->true();
|
expect(!empty($newsletter['body']['text']))->true();
|
||||||
return true;
|
return $this->mailerTaskDummyResponse;
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
$this
|
$this
|
||||||
@ -522,7 +523,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
// newsletter body should not be empty
|
// newsletter body should not be empty
|
||||||
expect(!empty($newsletter['body']['html']))->true();
|
expect(!empty($newsletter['body']['html']))->true();
|
||||||
expect(!empty($newsletter['body']['text']))->true();
|
expect(!empty($newsletter['body']['text']))->true();
|
||||||
return true;
|
return $this->mailerTaskDummyResponse;
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
$this
|
$this
|
||||||
@ -604,7 +605,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
new MailerTask(),
|
new MailerTask(),
|
||||||
[
|
[
|
||||||
'send' => Expected::exactly(1, function() {
|
'send' => Expected::exactly(1, function() {
|
||||||
return true;
|
return $this->mailerTaskDummyResponse;
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
$this
|
$this
|
||||||
@ -639,7 +640,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
$sendingQueueWorker = $this->sendingQueueWorker;
|
$sendingQueueWorker = $this->sendingQueueWorker;
|
||||||
$sendingQueueWorker->mailerTask = Stub::make(
|
$sendingQueueWorker->mailerTask = Stub::make(
|
||||||
new MailerTask(),
|
new MailerTask(),
|
||||||
['send' => true]
|
['send' => $this->mailerTaskDummyResponse]
|
||||||
);
|
);
|
||||||
$sendingQueueWorker->process();
|
$sendingQueueWorker->process();
|
||||||
|
|
||||||
@ -660,7 +661,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
$sendingQueueWorker = $this->sendingQueueWorker;
|
$sendingQueueWorker = $this->sendingQueueWorker;
|
||||||
$sendingQueueWorker->mailerTask = Stub::make(
|
$sendingQueueWorker->mailerTask = Stub::make(
|
||||||
new MailerTask(),
|
new MailerTask(),
|
||||||
['send' => true]
|
['send' => $this->mailerTaskDummyResponse]
|
||||||
);
|
);
|
||||||
|
|
||||||
// newsletter is sent to existing subscriber
|
// newsletter is sent to existing subscriber
|
||||||
@ -687,7 +688,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
$sendingQueueWorker = $this->sendingQueueWorker;
|
$sendingQueueWorker = $this->sendingQueueWorker;
|
||||||
$sendingQueueWorker->mailerTask = Stub::make(
|
$sendingQueueWorker->mailerTask = Stub::make(
|
||||||
new MailerTask(),
|
new MailerTask(),
|
||||||
['send' => true]
|
['send' => $this->mailerTaskDummyResponse]
|
||||||
);
|
);
|
||||||
|
|
||||||
// newsletter is not sent to globally unsubscribed subscriber
|
// newsletter is not sent to globally unsubscribed subscriber
|
||||||
@ -705,7 +706,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
$sendingQueueWorker = $this->sendingQueueWorker;
|
$sendingQueueWorker = $this->sendingQueueWorker;
|
||||||
$sendingQueueWorker->mailerTask = Stub::make(
|
$sendingQueueWorker->mailerTask = Stub::make(
|
||||||
new MailerTask(),
|
new MailerTask(),
|
||||||
['send' => true]
|
['send' => $this->mailerTaskDummyResponse]
|
||||||
);
|
);
|
||||||
|
|
||||||
// newsletter is not sent to subscriber unsubscribed from segment
|
// newsletter is not sent to subscriber unsubscribed from segment
|
||||||
@ -723,7 +724,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
$sendingQueueWorker = $this->sendingQueueWorker;
|
$sendingQueueWorker = $this->sendingQueueWorker;
|
||||||
$sendingQueueWorker->mailerTask = Stub::make(
|
$sendingQueueWorker->mailerTask = Stub::make(
|
||||||
new MailerTask(),
|
new MailerTask(),
|
||||||
['send' => true]
|
['send' => $this->mailerTaskDummyResponse]
|
||||||
);
|
);
|
||||||
|
|
||||||
// newsletter is not sent to inactive subscriber
|
// newsletter is not sent to inactive subscriber
|
||||||
@ -762,7 +763,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
Stub::make(
|
Stub::make(
|
||||||
new MailerTask(),
|
new MailerTask(),
|
||||||
[
|
[
|
||||||
'sendBulk' => true,
|
'sendBulk' => $this->mailerTaskDummyResponse,
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -799,7 +800,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
Stub::make(
|
Stub::make(
|
||||||
new MailerTask(),
|
new MailerTask(),
|
||||||
[
|
[
|
||||||
'send' => Expected::once(),
|
'send' => Expected::once($this->mailerTaskDummyResponse),
|
||||||
],
|
],
|
||||||
$this
|
$this
|
||||||
)
|
)
|
||||||
|
@ -13,7 +13,7 @@ class SubscribersListingsHandlerFactoryTest extends \MailPoetTest {
|
|||||||
$segment->name = 'name';
|
$segment->name = 'name';
|
||||||
$segment->type = 'unknown';
|
$segment->type = 'unknown';
|
||||||
$listings = new SubscribersListingsHandlerFactory();
|
$listings = new SubscribersListingsHandlerFactory();
|
||||||
$result = $listings->get($segment, []);
|
$result = $listings->get($segment, ['filter' => ['segment' => null]]);
|
||||||
expect($result)->null();
|
expect($result)->null();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -24,7 +24,7 @@ class SubscribersListingsHandlerFactoryTest extends \MailPoetTest {
|
|||||||
'type' => DynamicSegment::TYPE_DYNAMIC,
|
'type' => DynamicSegment::TYPE_DYNAMIC,
|
||||||
]);
|
]);
|
||||||
$listings = new SubscribersListingsHandlerFactory();
|
$listings = new SubscribersListingsHandlerFactory();
|
||||||
$result = $listings->get($segment, []);
|
$result = $listings->get($segment, ['filter' => ['segment' => null]]);
|
||||||
expect($result)->notNull();
|
expect($result)->notNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -128,7 +128,7 @@ class ConfirmationEmailMailerTest extends \MailPoetTest {
|
|||||||
|
|
||||||
$mailer = Stub::makeEmpty(Mailer::class, [
|
$mailer = Stub::makeEmpty(Mailer::class, [
|
||||||
'send' => function() {
|
'send' => function() {
|
||||||
return true;
|
return ['response' => true];
|
||||||
},
|
},
|
||||||
], $this);
|
], $this);
|
||||||
$sender = new ConfirmationEmailMailer(
|
$sender = new ConfirmationEmailMailer(
|
||||||
@ -156,7 +156,7 @@ class ConfirmationEmailMailerTest extends \MailPoetTest {
|
|||||||
|
|
||||||
$mailer = Stub::makeEmpty(Mailer::class, [
|
$mailer = Stub::makeEmpty(Mailer::class, [
|
||||||
'send' => function() {
|
'send' => function() {
|
||||||
return true;
|
return ['response' => true];
|
||||||
},
|
},
|
||||||
], $this);
|
], $this);
|
||||||
$sender = new ConfirmationEmailMailer(
|
$sender = new ConfirmationEmailMailer(
|
||||||
|
Reference in New Issue
Block a user