Skip to content

Commit d99296c

Browse files
committed
Merge remote-tracking branch 'karyna/php8-compatibility/fix-newsletter-queue-integration-test' into platform-health
2 parents 3c11181 + 57db88b commit d99296c

File tree

3 files changed

+66
-13
lines changed

3 files changed

+66
-13
lines changed

app/code/Magento/Newsletter/Model/Queue.php

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -202,11 +202,14 @@ public function isNew()
202202
*/
203203
public function setQueueStartAtByString($startAt)
204204
{
205-
if ($startAt === null || $startAt == '') {
206-
$this->setQueueStartAt(null);
207-
} else {
208-
$this->setQueueStartAt($this->utcConverter->convertLocalizedDateToUtc($startAt));
209-
}
205+
// Cast start_at value to null if value is incorrect ("0", "" must be casted to null)
206+
$startAt = (string) $startAt ?: null;
207+
// Convert start_at value using UTC converter if start_at value is not null
208+
$startAt = $startAt === null
209+
? $startAt
210+
: $this->utcConverter->convertLocalizedDateToUtc($startAt);
211+
$this->setQueueStartAt($startAt);
212+
210213
return $this;
211214
}
212215

dev/tests/integration/testsuite/Magento/Newsletter/Controller/Adminhtml/NewsletterQueueTest.php

Lines changed: 57 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,10 @@ protected function tearDown(): void
4646

4747
/**
4848
* @magentoDataFixture Magento/Newsletter/_files/newsletter_sample.php
49+
* @dataProvider postValuesForRequest
4950
*/
50-
public function testSaveActionQueueTemplateAndVerifySuccessMessage()
51+
public function testSaveActionQueueTemplateAndVerifySuccessMessage(array $postForQueue)
5152
{
52-
$postForQueue = [
53-
'sender_email' => 'johndoe_gieee@unknown-domain.com',
54-
'sender_name' => 'john doe',
55-
'subject' => 'test subject',
56-
'text' => 'newsletter text',
57-
];
5853
$this->getRequest()->setMethod(HttpRequest::METHOD_POST);
5954
$this->getRequest()->setPostValue($postForQueue);
6055

@@ -81,4 +76,59 @@ public function testSaveActionQueueTemplateAndVerifySuccessMessage()
8176
\Magento\Framework\Message\MessageInterface::TYPE_SUCCESS
8277
);
8378
}
79+
80+
/**
81+
* The data provider for possible request values of the start_at.
82+
*
83+
* @return array
84+
*/
85+
public function postValuesForRequest(): array
86+
{
87+
return [
88+
'start_at_value_is_integer_zero' => [
89+
[
90+
'sender_email' => 'johndoe_gieee@unknown-domain.com',
91+
'sender_name' => 'john doe',
92+
'subject' => 'test subject',
93+
'text' => 'newsletter text',
94+
'start_at' => 0
95+
]
96+
],
97+
'start_at_value_is_string_zero' => [
98+
[
99+
'sender_email' => 'johndoe_gieee@unknown-domain.com',
100+
'sender_name' => 'john doe',
101+
'subject' => 'test subject',
102+
'text' => 'newsletter text',
103+
'start_at' => '0'
104+
]
105+
],
106+
'start_at_value_is_empty_string' => [
107+
[
108+
'sender_email' => 'johndoe_gieee@unknown-domain.com',
109+
'sender_name' => 'john doe',
110+
'subject' => 'test subject',
111+
'text' => 'newsletter text',
112+
'start_at' => ''
113+
]
114+
],
115+
'start_at_value_not_provided' => [
116+
[
117+
'sender_email' => 'johndoe_gieee@unknown-domain.com',
118+
'sender_name' => 'john doe',
119+
'subject' => 'test subject',
120+
'text' => 'newsletter text'
121+
]
122+
],
123+
'start_at_value_is_date_time_string' => [
124+
[
125+
'sender_email' => 'johndoe_gieee@unknown-domain.com',
126+
'sender_name' => 'john doe',
127+
'subject' => 'test subject',
128+
'text' => 'newsletter text',
129+
'start_at' => date('Y-m-d H:i:s')
130+
]
131+
]
132+
];
133+
}
84134
}

dev/tests/integration/testsuite/Magento/Newsletter/_files/queue.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
)->setQueueStatus(
3434
\Magento\Newsletter\Model\Queue::STATUS_NEVER
3535
)->setQueueStartAtByString(
36-
0
36+
null
3737
)->setStores(
3838
[$currentStore, $otherStore]
3939
)->save();

0 commit comments

Comments
 (0)