From d00a950ea7431b643baa05e3d1365767d0371018 Mon Sep 17 00:00:00 2001 From: serhii balko Date: Thu, 17 Aug 2017 14:55:53 +0300 Subject: [PATCH] MAGETWO-56349: [GITHUB] Newsletter Queue doesn't set to local time #5943 #2937 #7560 --- .../Block/Adminhtml/Queue/Edit/QueueForm.php | 28 ++++++ .../Test/Block/Adminhtml/Queue/Grid.php | 51 ++++++++++ .../AssertNewsletterQueueDateStart.php | 50 ++++++++++ .../Page/Adminhtml/TemplateQueueIndex.xml | 14 +++ .../TestCase/UpdateQueueStartDateTest.php | 97 +++++++++++++++++++ .../TestCase/UpdateQueueStartDateTest.xml | 16 +++ 6 files changed, 256 insertions(+) create mode 100644 dev/tests/functional/tests/app/Magento/Newsletter/Test/Block/Adminhtml/Queue/Grid.php create mode 100644 dev/tests/functional/tests/app/Magento/Newsletter/Test/Constraint/AssertNewsletterQueueDateStart.php create mode 100644 dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateQueueIndex.xml create mode 100644 dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/UpdateQueueStartDateTest.php create mode 100644 dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/UpdateQueueStartDateTest.xml diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Block/Adminhtml/Queue/Edit/QueueForm.php b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Block/Adminhtml/Queue/Edit/QueueForm.php index 8de406c896591..40ce9c5085e1b 100644 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Block/Adminhtml/Queue/Edit/QueueForm.php +++ b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Block/Adminhtml/Queue/Edit/QueueForm.php @@ -13,6 +13,13 @@ */ class QueueForm extends \Magento\Mtf\Block\Form { + /** + * "Queue Date Start" field selector. + * + * @var string + */ + private $dateStartSelector = 'input[name=start_at]'; + /** * Get data of specified form data. * @@ -25,4 +32,25 @@ protected function _getData(array $fields, SimpleElement $element = null) unset($fields['code']); return parent::_getData($fields, $element); } + + /** + * Get Queue Date Start value. + * + * @return string + */ + public function getDateStart() + { + return $this->_rootElement->find($this->dateStartSelector)->getValue(); + } + + /** + * Set Queue Date Start value. + * + * @param string $val + * @return void + */ + public function setDateStart($val) + { + $this->_rootElement->find($this->dateStartSelector)->setValue($val); + } } diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Block/Adminhtml/Queue/Grid.php b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Block/Adminhtml/Queue/Grid.php new file mode 100644 index 0000000000000..682c91aab425d --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Block/Adminhtml/Queue/Grid.php @@ -0,0 +1,51 @@ + [ + 'selector' => 'input[name="newsletter_subject"]', + ], + ]; + + /** + * Locator value for link in action column. + * + * @var string + */ + protected $editLink = 'td.col-subject'; + + /** + * Locator for "Action". + * + * @var string + */ + protected $action = '.col-actions [class*="control-select"]'; + + /** + * Action for newsletter queue template. + * + * @param string $action + * @return void + */ + public function performAction($action) + { + $this->_rootElement->find($this->action, Locator::SELECTOR_CSS, 'select')->setValue($action); + } +} diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Constraint/AssertNewsletterQueueDateStart.php b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Constraint/AssertNewsletterQueueDateStart.php new file mode 100644 index 0000000000000..10f3fb216bf3a --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Constraint/AssertNewsletterQueueDateStart.php @@ -0,0 +1,50 @@ +open(); + $indexQueue->getQueueTemplateGrid()->searchAndOpen(['newsletter_subject' => $newsletter->getSubject()]); + \PHPUnit_Framework_Assert::assertEquals( + $date, + $templateQueue->getEditForm()->getDateStart(), + 'Field "Queue Date Start" did\'t save correctly' + ); + } + + /** + * {@inheritdoc} + */ + public function toString() + { + return 'Field "Queue Date Start" saved correctly'; + } +} diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateQueueIndex.xml b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateQueueIndex.xml new file mode 100644 index 0000000000000..8504673af09b8 --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateQueueIndex.xml @@ -0,0 +1,14 @@ + + + + + + + + + diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/UpdateQueueStartDateTest.php b/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/UpdateQueueStartDateTest.php new file mode 100644 index 0000000000000..64a57a78764bd --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/UpdateQueueStartDateTest.php @@ -0,0 +1,97 @@ + Newsletter Template + * 3. Find created template in grid + * 4. Execute "Queue Newsletter" action + * 5. Fill Date Start + * 6. Save Newsletter Queue + * + * @group Newsletters + * @ZephyrId MAGETWO-71653 + */ +class UpdateQueueStartDateTest extends Injectable +{ + /* tags */ + const MVP = 'yes'; + const STABLE = 'no'; + /* end tags */ + + /** + * Page with newsletter template grid. + * + * @var TemplateIndex + */ + protected $templateIndex; + + /** + * Page with newsletter queue grid. + * + * @var TemplateQueueIndex + */ + protected $indexQueue; + + /** + * Page for edit newsletter queue. + * + * @var TemplateQueue + */ + protected $templateQueue; + + /** + * Inject newsletter page. + * + * @param TemplateIndex $templateIndex + * @param TemplateQueueIndex $indexQueue + * @param TemplateQueue $templateQueue + * @return void + */ + public function __inject( + TemplateIndex $templateIndex, + TemplateQueueIndex $indexQueue, + TemplateQueue $templateQueue + ) { + $this->templateIndex = $templateIndex; + $this->indexQueue = $indexQueue; + $this->templateQueue = $templateQueue; + } + + /** + * @param Template $newsletter + * @param string $date + * @return void + */ + public function test(Template $newsletter, $date) + { + // Preconditions + $newsletter->persist(); + + // Steps + $this->templateIndex->open(); + $this->templateIndex->getNewsletterTemplateGrid()->search(['code' => $newsletter->getCode()]); + $this->templateIndex->getNewsletterTemplateGrid()->performAction('Queue Newsletter'); + $this->templateQueue->getEditForm()->setDateStart($date); + $this->templateQueue->getFormPageActions()->save(); + $this->indexQueue->getMessagesBlock()->assertSuccessMessage(); + } +} diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/UpdateQueueStartDateTest.xml b/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/UpdateQueueStartDateTest.xml new file mode 100644 index 0000000000000..f9d4f7b26c3bb --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/UpdateQueueStartDateTest.xml @@ -0,0 +1,16 @@ + + + + + + default + Aug 17, 2017 2:50:30 PM + + + +