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>'); $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>');

View File

@ -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(

View File

@ -95,7 +95,12 @@ class State
null, null,
$queue $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_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();

View File

@ -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
) )

View File

@ -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();
} }

View File

@ -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(