Skip to content

Commit 29eb476

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

File tree

9 files changed

+142
-108
lines changed

9 files changed

+142
-108
lines changed

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

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
namespace Magento\Newsletter\Model;
77

88
use Magento\Framework\App\TemplateTypesInterface;
9+
use Magento\Framework\Stdlib\DateTime\TimezoneInterface;
910

1011
/**
1112
* Newsletter queue model.
@@ -112,7 +113,7 @@ class Queue extends \Magento\Framework\Model\AbstractModel implements TemplateTy
112113
/**
113114
* Timezone library.
114115
*
115-
* @var \Magento\Framework\Stdlib\DateTime\Timezone
116+
* @var TimezoneInterface
116117
*/
117118
private $timezone;
118119

@@ -127,8 +128,8 @@ class Queue extends \Magento\Framework\Model\AbstractModel implements TemplateTy
127128
* @param \Magento\Newsletter\Model\Queue\TransportBuilder $transportBuilder
128129
* @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource
129130
* @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
130-
* @param \Magento\Framework\Stdlib\DateTime\Timezone $timezone
131131
* @param array $data
132+
* @param TimezoneInterface $timezone
132133
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
133134
*/
134135
public function __construct(
@@ -142,8 +143,8 @@ public function __construct(
142143
\Magento\Newsletter\Model\Queue\TransportBuilder $transportBuilder,
143144
\Magento\Framework\Model\ResourceModel\AbstractResource $resource = null,
144145
\Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
145-
\Magento\Framework\Stdlib\DateTime\Timezone $timezone = null,
146-
array $data = []
146+
array $data = [],
147+
TimezoneInterface $timezone = null
147148
) {
148149
parent::__construct(
149150
$context,
@@ -159,7 +160,7 @@ public function __construct(
159160
$this->_subscribersCollection = $subscriberCollectionFactory->create();
160161
$this->_transportBuilder = $transportBuilder;
161162
$this->timezone = $timezone ?: \Magento\Framework\App\ObjectManager::getInstance()->get(
162-
\Magento\Framework\Stdlib\DateTime\Timezone::class
163+
TimezoneInterface::class
163164
);
164165
}
165166

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

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,6 @@
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-
2316
/**
2417
* Get data of specified form data.
2518
*
@@ -32,25 +25,4 @@ protected function _getData(array $fields, SimpleElement $element = null)
3225
unset($fields['code']);
3326
return parent::_getData($fields, $element);
3427
}
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-
}
5628
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<?xml version="1.0" ?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
<mapping strict="0">
9+
<fields>
10+
<queue_start_at>
11+
<selector>input[name='start_at']</selector>
12+
</queue_start_at>
13+
<newsletter_subject>
14+
<selector>input[name='subject']</selector>
15+
</newsletter_subject>
16+
<newsletter_sender_name>
17+
<selector>input[name='sender_name']</selector>
18+
</newsletter_sender_name>
19+
<newsletter_sender_email>
20+
<selector>input[name='sender_email']</selector>
21+
</newsletter_sender_email>
22+
<newsletter_text>
23+
<selector>textarea[name='text']</selector>
24+
</newsletter_text>
25+
<newsletter_styles>
26+
<selector>textarea[name='styles']</selector>
27+
</newsletter_styles>
28+
</fields>
29+
</mapping>

dev/tests/functional/tests/app/Magento/Newsletter/Test/Constraint/AssertNewsletterQueueDateStart.php

Lines changed: 0 additions & 55 deletions
This file was deleted.
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
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\Queue;
11+
use Magento\Newsletter\Test\Fixture\Template;
12+
use Magento\Newsletter\Test\Page\Adminhtml\TemplateQueue;
13+
use Magento\Newsletter\Test\Page\Adminhtml\TemplateQueueIndex;
14+
15+
/**
16+
* Assert that "Newsletter Queue" saved correctly.
17+
*/
18+
class AssertNewsletterQueueSave extends AbstractAssertForm
19+
{
20+
/**
21+
* Assert that "Newsletter Queue" saved correctly.
22+
*
23+
* @param TemplateQueueIndex $indexQueue
24+
* @param TemplateQueue $templateQueue
25+
* @param Queue $queue
26+
* @return void
27+
*/
28+
public function processAssert(
29+
TemplateQueueIndex $indexQueue,
30+
TemplateQueue $templateQueue,
31+
Queue $queue
32+
) {
33+
$indexQueue->getMessagesBlock()->assertSuccessMessage();
34+
$indexQueue->getQueueTemplateGrid()->searchAndOpen(['newsletter_subject' => $queue->getNewsletterSubject()]);
35+
36+
$dataDiff = $this->verifyData($queue->getData(), $templateQueue->getEditForm()->getData($queue));
37+
\PHPUnit_Framework_Assert::assertEmpty($dataDiff, $dataDiff);
38+
}
39+
40+
/**
41+
* {@inheritdoc}
42+
*/
43+
public function toString()
44+
{
45+
return '"Newsletter Queue" saved correctly';
46+
}
47+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
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/fixture.xsd">
9+
<fixture name="queue"
10+
module="Magento_Newsletter"
11+
type="flat"
12+
entity_type="newsletter_queue"
13+
collection="Magento\Newsletter\Model\ResourceModel\Queue\Collection"
14+
identifier="queue_id"
15+
repository_class="Magento\Newsletter\Test\Repository\Queue"
16+
handler_interface="Magento\Newsletter\Test\Handler\Template\QueueInterface"
17+
class="Magento\Newsletter\Test\Fixture\Queue">
18+
<field name="queue_id" is_required="1" />
19+
<field name="template_id" is_required="1" />
20+
<field name="newsletter_type" is_required="" />
21+
<field name="newsletter_text" is_required="" />
22+
<field name="newsletter_styles" is_required="" />
23+
<field name="newsletter_subject" is_required="" />
24+
<field name="newsletter_sender_name" is_required="" />
25+
<field name="newsletter_sender_email" is_required="" />
26+
<field name="queue_status" is_required="1" />
27+
<field name="queue_start_at" is_required="" />
28+
<field name="queue_finish_at" is_required="" />
29+
</fixture>
30+
</config>
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?xml version="1.0" ?>
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/Magento/Mtf/Repository/etc/repository.xsd">
9+
<repository class="Magento\Newsletter\Test\Repository\Queue">
10+
<dataset name="default">
11+
<field name="queue_start_at" xsi:type="string">Aug 17, 2017 2:50:30 PM</field>
12+
<field name="newsletter_subject" xsi:type="string">Newsletter Subject %isolation%</field>
13+
<field name="newsletter_sender_name" xsi:type="string">Sender Name %isolation%</field>
14+
<field name="newsletter_sender_email" xsi:type="string">support%isolation%@example.com</field>
15+
<field name="newsletter_text" xsi:type="string">Template Content %isolation%</field>
16+
</dataset>
17+
</repository>
18+
</config>
Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,15 @@
66

77
namespace Magento\Newsletter\Test\TestCase;
88

9+
use Magento\Newsletter\Test\Fixture\Queue;
910
use Magento\Newsletter\Test\Fixture\Template;
1011
use Magento\Newsletter\Test\Page\Adminhtml\TemplateIndex;
1112
use Magento\Mtf\TestCase\Injectable;
1213
use Magento\Newsletter\Test\Page\Adminhtml\TemplateQueue;
1314
use Magento\Newsletter\Test\Page\Adminhtml\TemplateQueueIndex;
1415

1516
/**
16-
* Test to update Start Date in Newsletter Queue.
17+
* Test to update fields in Newsletter Queue.
1718
*
1819
* Test Flow:
1920
* Preconditions:
@@ -24,13 +25,13 @@
2425
* 2. Go to Marketing > Newsletter Template
2526
* 3. Find created template in grid
2627
* 4. Execute "Queue Newsletter" action
27-
* 5. Fill Date Start
28+
* 5. Fill data from fixtures
2829
* 6. Save Newsletter Queue
2930
*
3031
* @group Newsletters
3132
* @ZephyrId MAGETWO-71653
3233
*/
33-
class UpdateQueueStartDateTest extends Injectable
34+
class UpdateQueueTest extends Injectable
3435
{
3536
/* tags */
3637
const MVP = 'yes';
@@ -42,46 +43,36 @@ class UpdateQueueStartDateTest extends Injectable
4243
*
4344
* @var TemplateIndex
4445
*/
45-
protected $templateIndex;
46-
47-
/**
48-
* Page with newsletter queue grid.
49-
*
50-
* @var TemplateQueueIndex
51-
*/
52-
protected $indexQueue;
46+
private $templateIndex;
5347

5448
/**
5549
* Page for edit newsletter queue.
5650
*
5751
* @var TemplateQueue
5852
*/
59-
protected $templateQueue;
53+
private $templateQueue;
6054

6155
/**
6256
* Inject newsletter page.
6357
*
6458
* @param TemplateIndex $templateIndex
65-
* @param TemplateQueueIndex $indexQueue
6659
* @param TemplateQueue $templateQueue
6760
* @return void
6861
*/
6962
public function __inject(
7063
TemplateIndex $templateIndex,
71-
TemplateQueueIndex $indexQueue,
7264
TemplateQueue $templateQueue
7365
) {
7466
$this->templateIndex = $templateIndex;
75-
$this->indexQueue = $indexQueue;
7667
$this->templateQueue = $templateQueue;
7768
}
7869

7970
/**
8071
* @param Template $newsletter
81-
* @param string $date
72+
* @param Queue $queue
8273
* @return void
8374
*/
84-
public function test(Template $newsletter)
75+
public function test(Template $newsletter, Queue $queue)
8576
{
8677
// Preconditions
8778
$newsletter->persist();
@@ -90,6 +81,7 @@ public function test(Template $newsletter)
9081
$this->templateIndex->open();
9182
$this->templateIndex->getNewsletterTemplateGrid()->search(['code' => $newsletter->getCode()]);
9283
$this->templateIndex->getNewsletterTemplateGrid()->performAction('Queue Newsletter');
84+
$this->templateQueue->getEditForm()->fill($queue);
9385
$this->templateQueue->getFormPageActions()->save();
9486
}
9587
}
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66
*/
77
-->
88
<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">
9+
<testCase name="Magento\Newsletter\Test\TestCase\UpdateQueueTest" summary="Update Queue fields" ticketId="MAGETWO-71653">
1010
<variation name="UpdateQueueStartDateTestVariation1">
1111
<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" />
12+
<data name="queue/dataset" xsi:type="string">default</data>
13+
<constraint name="Magento\Newsletter\Test\Constraint\AssertNewsletterQueueSave" />
1414
</variation>
1515
</testCase>
1616
</config>

0 commit comments

Comments
 (0)