Skip to content

Commit 178c88c

Browse files
committed
Merge remote-tracking branch '33849/newsletter-queue' into comm_voted
2 parents 3024375 + 69a8867 commit 178c88c

File tree

7 files changed

+158
-20
lines changed

7 files changed

+158
-20
lines changed
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
9+
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
11+
<test name="AdminEditCustomerWithAssociatedNewsletterQueueNewTest">
12+
<annotations>
13+
<stories value="Edit customer if there is associated newsletter queue new"/>
14+
<title value="Edit customer if there is associated newsletter queue new"/>
15+
<description value="Edit customer if there is associated newsletter queue new"/>
16+
<severity value="BLOCKER"/>
17+
<group value="customer"/>
18+
</annotations>
19+
<before>
20+
<actionGroup ref="EnabledWYSIWYGActionGroup" stepKey="enableWYSIWYG"/>
21+
<createData entity="Simple_US_Customer_Multiple_Addresses_No_Default_Address" stepKey="customer"/>
22+
<magentoCron groups="index" stepKey="reindex"/>
23+
<actionGroup ref="AdminLoginActionGroup" stepKey="login"/>
24+
</before>
25+
<after>
26+
<deleteData createDataKey="customer" stepKey="deleteCustomer"/>
27+
28+
<actionGroup ref="AdminNavigateMenuActionGroup" stepKey="navigateToNewsletterGridPage">
29+
<argument name="menuUiId" value="{{AdminMenuMarketing.dataUiId}}"/>
30+
<argument name="submenuUiId" value="{{AdminMenuMarketingCommunicationsNewsletterTemplate.dataUiId}}"/>
31+
</actionGroup>
32+
<actionGroup ref="AdminSearchNewsletterTemplateOnGridActionGroup" stepKey="findCreatedNewsletterTemplateInGrid">
33+
<argument name="name" value="{{_defaultNewsletter.name}}"/>
34+
<argument name="subject" value="{{_defaultNewsletter.subject}}"/>
35+
</actionGroup>
36+
<actionGroup ref="AdminMarketingOpenNewsletterTemplateFromGridActionGroup" stepKey="openTemplate"/>
37+
<actionGroup ref="AdminMarketingDeleteNewsletterTemplateActionGroup" stepKey="deleteTemplate"/>
38+
39+
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
40+
</after>
41+
42+
<actionGroup ref="AdminOpenCustomersGridActionGroup" stepKey="openCustomersGridPage"/>
43+
<actionGroup ref="OpenEditCustomerFromAdminActionGroup" stepKey="openEditCustomerPage">
44+
<argument name="customer" value="Simple_US_Customer_Multiple_Addresses_No_Default_Address"/>
45+
</actionGroup>
46+
<actionGroup ref="AdminSubscribeCustomerToNewsletters" stepKey="subscribeToNewsletter"/>
47+
48+
<actionGroup ref="AdminNavigateMenuActionGroup" stepKey="navigateToNewsletterTemplatePage">
49+
<argument name="menuUiId" value="{{AdminMenuMarketing.dataUiId}}"/>
50+
<argument name="submenuUiId" value="{{AdminMenuMarketingCommunicationsNewsletterTemplate.dataUiId}}"/>
51+
</actionGroup>
52+
<actionGroup ref="AdminNavigateToCreateNewsletterTemplatePageActionGroup" stepKey="navigateToCreateNewsletterTemplatePage"/>
53+
<actionGroup ref="AdminCreateNewsletterTemplateActionGroup" stepKey="createNewsletterTemplate">
54+
<argument name="name" value="{{_defaultNewsletter.name}}"/>
55+
<argument name="subject" value="{{_defaultNewsletter.subject}}"/>
56+
<argument name="senderName" value="{{_defaultNewsletter.senderName}}"/>
57+
<argument name="senderEmail" value="{{_defaultNewsletter.senderEmail}}"/>
58+
<argument name="templateContent" value="{{_defaultNewsletter.textAreaContent}}"/>
59+
</actionGroup>
60+
<actionGroup ref="AdminSearchNewsletterTemplateOnGridActionGroup" stepKey="findCreatedNewsletterTemplate">
61+
<argument name="name" value="{{_defaultNewsletter.name}}"/>
62+
<argument name="subject" value="{{_defaultNewsletter.subject}}"/>
63+
</actionGroup>
64+
<actionGroup ref="AdminCreateQueueNewsletterActionGroup" stepKey="addNewsletterToQueue">
65+
<argument name="startAt" value="Dec 21, 2022 11:04:20 AM"/>
66+
</actionGroup>
67+
68+
<actionGroup ref="OpenEditCustomerFromAdminActionGroup" stepKey="editCustomerForm">
69+
<argument name="customer" value="Simple_US_Customer_Multiple_Addresses_No_Default_Address"/>
70+
</actionGroup>
71+
<actionGroup stepKey="editCustomerAddress" ref="AdminEditCustomerAddressesFromActionGroup">
72+
<argument name="customerAddress" value="CustomerAddressSimple"/>
73+
</actionGroup>
74+
<actionGroup ref="AdminSaveCustomerAndAssertSuccessMessage" stepKey="saveCustomer"/>
75+
76+
</test>
77+
</tests>

app/code/Magento/Customer/Test/Mftf/Test/AdminEditCustomerWithAssociatedNewsletterQueueTest.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@
1515
<description value="Edit customer if there is associated newsletter queue"/>
1616
<severity value="BLOCKER"/>
1717
<group value="customer"/>
18+
<skip>
19+
<issueId value="DEPRECATED">Use AdminEditCustomerWithAssociatedNewsletterQueueNewTest instead</issueId>
20+
</skip>
1821
</annotations>
1922
<before>
2023
<actionGroup ref="EnabledWYSIWYGActionGroup" stepKey="enableWYSIWYG"/>

app/code/Magento/Newsletter/Block/Adminhtml/Queue/Edit.php

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class Edit extends \Magento\Backend\Block\Template
2222
protected $_template = 'Magento_Newsletter::queue/edit.phtml';
2323

2424
/**
25-
* Core registry
25+
* Magento Framework Core Registry
2626
*
2727
* @var \Magento\Framework\Registry
2828
*/
@@ -43,6 +43,8 @@ public function __construct(
4343
}
4444

4545
/**
46+
* Queue Edit constructor
47+
*
4648
* @return void
4749
*/
4850
protected function _construct()
@@ -135,24 +137,25 @@ protected function _prepareLayout()
135137
]
136138
]
137139
);
138-
139-
$this->getToolbar()->addChild(
140-
'save_and_resume',
141-
\Magento\Backend\Block\Widget\Button::class,
142-
[
143-
'label' => __('Save and Resume'),
144-
'class' => 'save',
145-
'data_attribute' => [
146-
'mage-init' => [
147-
'button' => [
148-
'event' => 'save',
149-
'target' => '#queue_edit_form',
150-
'eventData' => ['action' => ['args' => ['_resume' => 1]]],
140+
if ($this->getCanResume()) {
141+
$this->getToolbar()->addChild(
142+
'save_and_resume',
143+
\Magento\Backend\Block\Widget\Button::class,
144+
[
145+
'label' => __('Save and Resume'),
146+
'class' => 'save',
147+
'data_attribute' => [
148+
'mage-init' => [
149+
'button' => [
150+
'event' => 'save',
151+
'target' => '#queue_edit_form',
152+
'eventData' => ['action' => ['args' => ['_resume' => 1]]],
153+
],
151154
],
152-
],
155+
]
153156
]
154-
]
155-
);
157+
);
158+
}
156159

157160
return parent::_prepareLayout();
158161
}

app/code/Magento/Newsletter/Block/Adminhtml/Queue/Edit/Form.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
namespace Magento\Newsletter\Block\Adminhtml\Queue\Edit;
88

9+
use Magento\Newsletter\Model\Queue;
10+
911
/**
1012
* Newsletter queue edit form
1113
*
@@ -227,7 +229,7 @@ protected function _prepareForm()
227229
'value' => $queue->getTemplate()->getTemplateStyles()
228230
]
229231
);
230-
} elseif (\Magento\Newsletter\Model\Queue::STATUS_NEVER != $queue->getQueueStatus()) {
232+
} elseif (Queue::STATUS_NEVER != $queue->getQueueStatus() && $queue->getQueueStatus() != Queue::STATUS_PAUSE) {
231233
$fieldset->addField(
232234
'text',
233235
'textarea',

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

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,7 @@ public function setQueueStartAtByString($startAt)
219219
* @param int $count
220220
* @return $this
221221
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
222+
* @SuppressWarnings(PHPMD.NPathComplexity)
222223
*/
223224
public function sendPerSubscriber($count = 20)
224225
{
@@ -254,7 +255,11 @@ public function sendPerSubscriber($count = 20)
254255
]
255256
);
256257

257-
/** @var \Magento\Newsletter\Model\Subscriber $item */
258+
if ($this->getQueueStatus() != self::STATUS_SENDING && count($collection->getItems()) > 0) {
259+
$this->startQueue();
260+
}
261+
262+
/** @var Subscriber $item */
258263
foreach ($collection->getItems() as $item) {
259264
$transport = $this->_transportBuilder->setTemplateOptions(
260265
['area' => \Magento\Framework\App\Area::AREA_FRONTEND, 'store' => $item->getStoreId()]
@@ -291,6 +296,19 @@ public function sendPerSubscriber($count = 20)
291296
return $this;
292297
}
293298

299+
/**
300+
* Start queue: set status SENDING for queue
301+
*
302+
* @return $this
303+
*/
304+
private function startQueue()
305+
{
306+
$this->setQueueStatus(self::STATUS_SENDING);
307+
$this->save();
308+
309+
return $this;
310+
}
311+
294312
/**
295313
* Finish queue: set status SENT and update finish date
296314
*
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
9+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
11+
12+
<actionGroup name="AdminCreateQueueNewsletterActionGroup">
13+
<annotations>
14+
<description>
15+
Sends Newsletter template to queue:
16+
Clicks the Queue Newsletter action.
17+
Sets Queue Date Start.
18+
Selects needed Store view if applicable.
19+
Clicks the Save Template button.
20+
</description>
21+
</annotations>
22+
<arguments>
23+
<argument name="startAt" type="string"/>
24+
<argument name="storeView" type="string" defaultValue="Default Store View"/>
25+
</arguments>
26+
27+
<click selector="{{AdminNewsletterGridMainActionsSection.action}}" stepKey="clickActionDropdown"/>
28+
<click selector="{{AdminNewsletterGridMainActionsSection.queueNewsletterOption}}" stepKey="cliclkQueueNewsletterOption"/>
29+
<fillField selector="{{QueueInformationSection.queueStartFrom}}" userInput="{{startAt}}" stepKey="setDate"/>
30+
<conditionalClick selector="{{QueueInformationSection.subscriberFromOption(storeView)}}" dependentSelector="{{QueueInformationSection.subscriberFromOption(storeView)}}" visible="true" stepKey="setStoreview"/>
31+
<click selector="{{AdminNewsletterMainActionsSection.saveTemplateButton}}" stepKey="clickSaveTemplate"/>
32+
<waitForPageLoad stepKey="waitForSavingTemplate"/>
33+
<see userInput="You saved the newsletter queue." stepKey="seeSuccessMessage"/>
34+
</actionGroup>
35+
</actionGroups>

app/code/Magento/Newsletter/Test/Mftf/ActionGroup/AdminQueueNewsletterActionGroup.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,6 @@
2929
<fillField selector="{{QueueInformationSection.queueStartFrom}}" userInput="{{startAt}}" stepKey="setDate"/>
3030
<conditionalClick selector="{{QueueInformationSection.subscriberFromOption(storeView)}}" dependentSelector="{{QueueInformationSection.subscriberFromOption(storeView)}}" visible="true" stepKey="setStoreview"/>
3131
<click selector="{{AdminNewsletterMainActionsSection.saveAndResumeButton}}" stepKey="clickSaveAndResumeButton"/>
32-
<see userInput="You saved the newsletter queue." stepKey="seeSuccessMessage"/>
32+
<see userInput="You saved the newsletter queue." stepKey="seeSuccessMessage"/>
3333
</actionGroup>
3434
</actionGroups>

0 commit comments

Comments
 (0)