Skip to content

Commit d00a950

Browse files
committed
MAGETWO-56349: [GITHUB] Newsletter Queue doesn't set to local time #5943 #2937 #7560
1 parent 86eed24 commit d00a950

File tree

6 files changed

+256
-0
lines changed

6 files changed

+256
-0
lines changed

dev/tests/functional/tests/app/Magento/Newsletter/Test/Block/Adminhtml/Queue/Edit/QueueForm.php

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,13 @@
1313
*/
1414
class QueueForm extends \Magento\Mtf\Block\Form
1515
{
16+
/**
17+
* "Queue Date Start" field selector.
18+
*
19+
* @var string
20+
*/
21+
private $dateStartSelector = 'input[name=start_at]';
22+
1623
/**
1724
* Get data of specified form data.
1825
*
@@ -25,4 +32,25 @@ protected function _getData(array $fields, SimpleElement $element = null)
2532
unset($fields['code']);
2633
return parent::_getData($fields, $element);
2734
}
35+
36+
/**
37+
* Get Queue Date Start value.
38+
*
39+
* @return string
40+
*/
41+
public function getDateStart()
42+
{
43+
return $this->_rootElement->find($this->dateStartSelector)->getValue();
44+
}
45+
46+
/**
47+
* Set Queue Date Start value.
48+
*
49+
* @param string $val
50+
* @return void
51+
*/
52+
public function setDateStart($val)
53+
{
54+
$this->_rootElement->find($this->dateStartSelector)->setValue($val);
55+
}
2856
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\Newsletter\Test\Block\Adminhtml\Queue;
8+
9+
use Magento\Mtf\Client\Locator;
10+
11+
/**
12+
* Newsletter queue templates grid block.
13+
*/
14+
class Grid extends \Magento\Backend\Test\Block\Widget\Grid
15+
{
16+
/**
17+
* Filters array mapping.
18+
*
19+
* @var array
20+
*/
21+
protected $filters = [
22+
'newsletter_subject' => [
23+
'selector' => 'input[name="newsletter_subject"]',
24+
],
25+
];
26+
27+
/**
28+
* Locator value for link in action column.
29+
*
30+
* @var string
31+
*/
32+
protected $editLink = 'td.col-subject';
33+
34+
/**
35+
* Locator for "Action".
36+
*
37+
* @var string
38+
*/
39+
protected $action = '.col-actions [class*="control-select"]';
40+
41+
/**
42+
* Action for newsletter queue template.
43+
*
44+
* @param string $action
45+
* @return void
46+
*/
47+
public function performAction($action)
48+
{
49+
$this->_rootElement->find($this->action, Locator::SELECTOR_CSS, 'select')->setValue($action);
50+
}
51+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\Newsletter\Test\Constraint;
8+
9+
use Magento\Mtf\Constraint\AbstractAssertForm;
10+
use Magento\Newsletter\Test\Fixture\Template;
11+
use Magento\Newsletter\Test\Page\Adminhtml\TemplateQueue;
12+
use Magento\Newsletter\Test\Page\Adminhtml\TemplateQueueIndex;
13+
14+
/**
15+
* Assert that field "Queue Date Start" saved correctly.
16+
*/
17+
class AssertNewsletterQueueDateStart extends AbstractAssertForm
18+
{
19+
/**
20+
* Assert that Field "Queue Date Start" saved correctly.
21+
*
22+
* @param TemplateQueueIndex $indexQueue
23+
* @param TemplateQueue $templateQueue
24+
* @param Template $newsletter
25+
* @param string $date
26+
* @return void
27+
*/
28+
public function processAssert(
29+
TemplateQueueIndex $indexQueue,
30+
TemplateQueue $templateQueue,
31+
Template $newsletter,
32+
string $date
33+
) {
34+
$indexQueue->open();
35+
$indexQueue->getQueueTemplateGrid()->searchAndOpen(['newsletter_subject' => $newsletter->getSubject()]);
36+
\PHPUnit_Framework_Assert::assertEquals(
37+
$date,
38+
$templateQueue->getEditForm()->getDateStart(),
39+
'Field "Queue Date Start" did\'t save correctly'
40+
);
41+
}
42+
43+
/**
44+
* {@inheritdoc}
45+
*/
46+
public function toString()
47+
{
48+
return 'Field "Queue Date Start" saved correctly';
49+
}
50+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
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+
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
9+
<page name="TemplateQueueIndex" area="Adminhtml" mca="newsletter/queue/index" module="Magento_Newsletter">
10+
<block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages .messages" strategy="css selector"/>
11+
<block name="gridPageActions" class="Magento\Newsletter\Test\Block\Adminhtml\Template\GridPageActions" locator=".page-main-actions" strategy="css selector"/>
12+
<block name="queueTemplateGrid" class="Magento\Newsletter\Test\Block\Adminhtml\Queue\Grid" locator="[id='page:main-container']" strategy="css selector"/>
13+
</page>
14+
</config>
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\Newsletter\Test\TestCase;
8+
9+
use Magento\Newsletter\Test\Fixture\Template;
10+
use Magento\Newsletter\Test\Page\Adminhtml\TemplateIndex;
11+
use Magento\Mtf\TestCase\Injectable;
12+
use Magento\Newsletter\Test\Page\Adminhtml\TemplateQueue;
13+
use Magento\Newsletter\Test\Page\Adminhtml\TemplateQueueIndex;
14+
15+
/**
16+
* Test to update Start Date in Newsletter Queue.
17+
*
18+
* Test Flow:
19+
* Preconditions:
20+
* 1. Create newsletter
21+
*
22+
* Steps:
23+
* 1. Open Backend
24+
* 2. Go to Marketing > Newsletter Template
25+
* 3. Find created template in grid
26+
* 4. Execute "Queue Newsletter" action
27+
* 5. Fill Date Start
28+
* 6. Save Newsletter Queue
29+
*
30+
* @group Newsletters
31+
* @ZephyrId MAGETWO-71653
32+
*/
33+
class UpdateQueueStartDateTest extends Injectable
34+
{
35+
/* tags */
36+
const MVP = 'yes';
37+
const STABLE = 'no';
38+
/* end tags */
39+
40+
/**
41+
* Page with newsletter template grid.
42+
*
43+
* @var TemplateIndex
44+
*/
45+
protected $templateIndex;
46+
47+
/**
48+
* Page with newsletter queue grid.
49+
*
50+
* @var TemplateQueueIndex
51+
*/
52+
protected $indexQueue;
53+
54+
/**
55+
* Page for edit newsletter queue.
56+
*
57+
* @var TemplateQueue
58+
*/
59+
protected $templateQueue;
60+
61+
/**
62+
* Inject newsletter page.
63+
*
64+
* @param TemplateIndex $templateIndex
65+
* @param TemplateQueueIndex $indexQueue
66+
* @param TemplateQueue $templateQueue
67+
* @return void
68+
*/
69+
public function __inject(
70+
TemplateIndex $templateIndex,
71+
TemplateQueueIndex $indexQueue,
72+
TemplateQueue $templateQueue
73+
) {
74+
$this->templateIndex = $templateIndex;
75+
$this->indexQueue = $indexQueue;
76+
$this->templateQueue = $templateQueue;
77+
}
78+
79+
/**
80+
* @param Template $newsletter
81+
* @param string $date
82+
* @return void
83+
*/
84+
public function test(Template $newsletter, $date)
85+
{
86+
// Preconditions
87+
$newsletter->persist();
88+
89+
// Steps
90+
$this->templateIndex->open();
91+
$this->templateIndex->getNewsletterTemplateGrid()->search(['code' => $newsletter->getCode()]);
92+
$this->templateIndex->getNewsletterTemplateGrid()->performAction('Queue Newsletter');
93+
$this->templateQueue->getEditForm()->setDateStart($date);
94+
$this->templateQueue->getFormPageActions()->save();
95+
$this->indexQueue->getMessagesBlock()->assertSuccessMessage();
96+
}
97+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
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+
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd">
9+
<testCase name="Magento\Newsletter\Test\TestCase\UpdateQueueStartDateTest" summary="Update Queue Date Start" ticketId="MAGETWO-71653">
10+
<variation name="UpdateQueueStartDateTestVariation1">
11+
<data name="newsletter/dataset" xsi:type="string">default</data>
12+
<data name="date" xsi:type="string">Aug 17, 2017 2:50:30 PM</data>
13+
<constraint name="Magento\Newsletter\Test\Constraint\AssertNewsletterQueueDateStart" />
14+
</variation>
15+
</testCase>
16+
</config>

0 commit comments

Comments
 (0)