Skip to content

Commit 4499554

Browse files
Dmytro AponasenkoDmytro Aponasenko
Dmytro Aponasenko
authored and
Dmytro Aponasenko
committed
Merge pull request #38 from magento-qmt/develop
[Mavericks] Functional test maintenance
2 parents af32ac1 + e571579 commit 4499554

File tree

161 files changed

+407
-275
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

161 files changed

+407
-275
lines changed

dev/tests/functional/tests/app/Magento/Backend/Test/Block/Cache.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ public function flushCacheStorage()
6868
*/
6969
public function isStorageCacheFlushed()
7070
{
71-
return $this->getMessagesBlock()->getSuccessMessages() == $this->messagesText['cache_storage_flushed'];
71+
return $this->getMessagesBlock()->getSuccessMessage() == $this->messagesText['cache_storage_flushed'];
7272
}
7373

7474
/**
@@ -78,7 +78,7 @@ public function isStorageCacheFlushed()
7878
*/
7979
public function isMagentoCacheFlushed()
8080
{
81-
return $this->getMessagesBlock()->getSuccessMessages() == $this->messagesText['cache_magento_flushed'];
81+
return $this->getMessagesBlock()->getSuccessMessage() == $this->messagesText['cache_magento_flushed'];
8282
}
8383

8484
/**

dev/tests/functional/tests/app/Magento/Backend/Test/Block/Messages.php

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,13 @@ class Messages extends Block
2121
*/
2222
protected $successMessage = '[data-ui-id$=message-success]';
2323

24+
/**
25+
* Last success message selector.
26+
*
27+
* @var string
28+
*/
29+
protected $lastSuccessMessage = '[data-ui-id$=message-success]:last-child';
30+
2431
/**
2532
* Message link.
2633
*
@@ -62,7 +69,7 @@ public function waitSuccessMessage()
6269
/**
6370
* Get all success messages which are present on the page.
6471
*
65-
* @return string|array
72+
* @return array
6673
*/
6774
public function getSuccessMessages()
6875
{
@@ -74,7 +81,19 @@ public function getSuccessMessages()
7481
$messages[] = $element->getText();
7582
}
7683

77-
return count($messages) > 1 ? $messages : $messages[0];
84+
return $messages;
85+
}
86+
87+
/**
88+
* Get last success message which is present on the page.
89+
*
90+
* @return string
91+
*/
92+
public function getSuccessMessage()
93+
{
94+
$this->waitForElementVisible($this->successMessage);
95+
96+
return $this->_rootElement->find($this->lastSuccessMessage)->getText();
7897
}
7998

8099
/**
@@ -96,25 +115,25 @@ function () use ($browser, $selector, $strategy) {
96115
}
97116

98117
/**
99-
* Get all error messages which are present on the page.
118+
* Get all error message which is present on the page.
100119
*
101120
* @return string
102121
*/
103-
public function getErrorMessages()
122+
public function getErrorMessage()
104123
{
105124
return $this->_rootElement
106125
->find($this->errorMessage, Locator::SELECTOR_CSS)
107126
->getText();
108127
}
109128

110129
/**
111-
* Click on link in the messages which are present on the page.
130+
* Click on link in the message which is present on the page.
112131
*
113132
* @param string $messageType
114133
* @param string $linkText
115134
* @return void
116135
*/
117-
public function clickLinkInMessages($messageType, $linkText)
136+
public function clickLinkInMessage($messageType, $linkText)
118137
{
119138
if ($this->isVisibleMessage($messageType)) {
120139
$this->_rootElement
@@ -162,7 +181,7 @@ public function assertNoticeMessage()
162181
*
163182
* @return string
164183
*/
165-
public function getNoticeMessages()
184+
public function getNoticeMessage()
166185
{
167186
$this->waitForElementVisible($this->noticeMessage);
168187
return $this->_rootElement->find($this->noticeMessage)->getText();
@@ -173,7 +192,7 @@ public function getNoticeMessages()
173192
*
174193
* @return string
175194
*/
176-
public function getWarningMessages()
195+
public function getWarningMessage()
177196
{
178197
$this->waitForElementVisible($this->warningMessage);
179198
return $this->_rootElement->find($this->warningMessage)->getText();

dev/tests/functional/tests/app/Magento/Backend/Test/Block/Widget/Grid.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ abstract class Grid extends Block
189189
protected $rowPattern = '//tbody/tr[%s]';
190190

191191
/**
192-
* Selector for confirm.
192+
* Selector for confirm.
193193
*
194194
* @var string
195195
*/

dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertCacheIsRefreshableAndInvalidated.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public function processAssert(AdminCache $adminCache, $cacheTags)
4141

4242
\PHPUnit_Framework_Assert::assertEquals(
4343
sprintf(self::SUCCESS_MESSAGE, count($items)),
44-
$adminCache->getMessagesBlock()->getSuccessMessages(),
44+
$adminCache->getMessagesBlock()->getSuccessMessage(),
4545
'Cache is Invalid and refreshable.'
4646
);
4747
}

dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertCacheManagementAction.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public function processAssert(AdminCache $adminCache, $successMessage)
2525
{
2626
\PHPUnit_Framework_Assert::assertEquals(
2727
$successMessage,
28-
$adminCache->getMessagesBlock()->getSuccessMessages(),
28+
$adminCache->getMessagesBlock()->getSuccessMessage(),
2929
'Action is not successful.'
3030
);
3131
}

dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Category/Edit/CategoryForm.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class CategoryForm extends FormTabs
3131
protected $dropdownBlock = '.dropdown';
3232

3333
/**
34-
* Selector for confirm.
34+
* Selector for confirm.
3535
*
3636
* @var string
3737
*/
@@ -51,9 +51,9 @@ public function fill(FixtureInterface $fixture, SimpleElement $element = null)
5151
$store = $fixture->getStoreId();
5252
$storeSwitcherBlock = $this->browser->find($this->storeSwitcherBlock);
5353
$storeSwitcherBlock->find($this->dropdownBlock, Locator::SELECTOR_CSS, 'liselectstore')->setValue($store);
54-
$element = $this->browser->find($this->confirmModal);
54+
$modalElement = $this->browser->find($this->confirmModal);
5555
/** @var \Magento\Ui\Test\Block\Adminhtml\Modal $modal */
56-
$modal = $this->blockFactory->create('Magento\Ui\Test\Block\Adminhtml\Modal', ['element' => $element]);
56+
$modal = $this->blockFactory->create('Magento\Ui\Test\Block\Adminhtml\Modal', ['element' => $modalElement]);
5757
$modal->acceptAlert();
5858
}
5959

dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/CustomAttribute.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ class CustomAttribute extends SimpleElement
1919
*
2020
* @var string
2121
*/
22-
protected $inputSelector = '.control [data-ui-id][name]';
22+
protected $inputSelector = '.control [name]:not([type="hidden"]), table';
2323

2424
/**
2525
* Attribute class to element type reference.
@@ -45,7 +45,9 @@ public function setValue($data)
4545
$this->eventManager->dispatchEvent(['set_value'], [__METHOD__, $this->getAbsoluteSelector()]);
4646
$element = $this->getElementByClass($this->getElementClass());
4747
$value = is_array($data) ? $data['value'] : $data;
48-
$this->find($this->inputSelector, Locator::SELECTOR_CSS, $element)->setValue($value);
48+
if ($value !== null) {
49+
$this->find($this->inputSelector, Locator::SELECTOR_CSS, $element)->setValue($value);
50+
}
4951
}
5052

5153
/**

dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/ProductTab.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
use Magento\Mtf\Client\Locator;
1010
use Magento\Backend\Test\Block\Widget\Tab;
1111
use Magento\Catalog\Test\Block\Adminhtml\Product\Attribute\Edit;
12-
use Magento\Catalog\Test\Fixture\CatalogProductAttribute;
1312

1413
/**
1514
* General class for tabs on product FormTabs with "Add attribute" button.

dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Tab/ProductDetails/AttributeSet.php

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
namespace Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Tab\ProductDetails;
88

99
use Magento\Mtf\Client\Element\SuggestElement;
10+
use Magento\Mtf\Client\Locator;
1011

1112
/**
1213
* Class AttributeSet
@@ -35,6 +36,13 @@ class AttributeSet extends SuggestElement
3536
*/
3637
protected $loader = '[data-role="loader"]';
3738

39+
/**
40+
* Page header selector.
41+
*
42+
* @var string
43+
*/
44+
protected $header = 'header';
45+
3846
/**
3947
* Set value
4048
*
@@ -44,8 +52,27 @@ class AttributeSet extends SuggestElement
4452
public function setValue($value)
4553
{
4654
if ($value !== $this->find($this->actionToggle)->getText()) {
55+
$this->eventManager->dispatchEvent(['set_value'], [__METHOD__, $this->getAbsoluteSelector()]);
4756
$this->find($this->actionToggle)->click();
48-
parent::setValue($value);
57+
$this->clear();
58+
if ($value == '') {
59+
return;
60+
}
61+
foreach (str_split($value) as $symbol) {
62+
$this->keys([$symbol]);
63+
$searchedItem = $this->find(sprintf($this->resultItem, $value), Locator::SELECTOR_XPATH);
64+
if ($searchedItem->isVisible()) {
65+
try {
66+
$searchedItem->hover();
67+
$this->driver->find($this->header)->hover();
68+
$searchedItem->click();
69+
break;
70+
} catch (\Exception $e) {
71+
// In parallel run on windows change the focus is lost on element
72+
// that causes disappearing of category suggest list.
73+
}
74+
}
75+
}
4976
}
5077
// Wait loader
5178
$element = $this->driver;

dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/View/CustomOptions.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,14 @@ class CustomOptions extends Form
3030
*
3131
* @var string
3232
*/
33-
protected $optionElement = '#product-options-wrapper .field';
33+
protected $optionElement = '#product-options-wrapper > * > .field';
3434

3535
/**
3636
* Selector for title of option
3737
*
3838
* @var string
3939
*/
40-
protected $title = 'label';
40+
protected $title = 'label > span:nth-child(1), legend > span:nth-child(1)';
4141

4242
/**
4343
* Selector for required option
@@ -381,7 +381,7 @@ protected function getOptionNotice(SimpleElement $option, $number)
381381
*/
382382
protected function parseOptionText($optionText)
383383
{
384-
preg_match('`^(.*?)\+\$(\d.*?)$`', $optionText, $match);
384+
preg_match('`^(.*?) \+ ?\$([\d\.,]*?)$`', $optionText, $match);
385385
$optionPrice = isset($match[2]) ? str_replace(',', '', $match[2]) : 0;
386386
$optionTitle = isset($match[1]) ? trim($match[1]) : $optionText;
387387

dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAttributeSetSuccessDeleteMessage.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class AssertAttributeSetSuccessDeleteMessage extends AbstractConstraint
2828
*/
2929
public function processAssert(CatalogProductSetIndex $productSetIndex)
3030
{
31-
$actualMessage = $productSetIndex->getMessagesBlock()->getSuccessMessages();
31+
$actualMessage = $productSetIndex->getMessagesBlock()->getSuccessMessage();
3232
\PHPUnit_Framework_Assert::assertEquals(
3333
self::SUCCESS_DELETE_MESSAGE,
3434
$actualMessage,

dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAttributeSetSuccessSaveMessage.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class AssertAttributeSetSuccessSaveMessage extends AbstractConstraint
2828
*/
2929
public function processAssert(CatalogProductSetIndex $productSetIndex)
3030
{
31-
$actualMessage = $productSetIndex->getMessagesBlock()->getSuccessMessages();
31+
$actualMessage = $productSetIndex->getMessagesBlock()->getSuccessMessage();
3232
\PHPUnit_Framework_Assert::assertEquals(
3333
self::SUCCESS_MESSAGE,
3434
$actualMessage,

dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategorySaveMessage.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class AssertCategorySaveMessage extends AbstractConstraint
2828
*/
2929
public function processAssert(CatalogCategoryEdit $catalogCategoryEdit)
3030
{
31-
$actualMessage = $catalogCategoryEdit->getMessagesBlock()->getSuccessMessages();
31+
$actualMessage = $catalogCategoryEdit->getMessagesBlock()->getSuccessMessage();
3232
\PHPUnit_Framework_Assert::assertEquals(
3333
self::SUCCESS_MESSAGE,
3434
$actualMessage,

dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategorySuccessDeleteMessage.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class AssertCategorySuccessDeleteMessage extends AbstractConstraint
2828
*/
2929
public function processAssert(CatalogCategoryEdit $categoryEdit)
3030
{
31-
$actualMessage = $categoryEdit->getMessagesBlock()->getSuccessMessages();
31+
$actualMessage = $categoryEdit->getMessagesBlock()->getSuccessMessage();
3232
\PHPUnit_Framework_Assert::assertEquals(
3333
self::SUCCESS_DELETE_MESSAGE,
3434
$actualMessage,

dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertMassProductUpdateSuccessMessage.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public function processAssert(CatalogProductIndex $productGrid, $products = [])
3030
{
3131
$countProducts = count($products) ? count($products) : 1;
3232
$expectedMessage = sprintf(self::SUCCESS_MESSAGE, $countProducts);
33-
$actualMessage = $productGrid->getMessagesBlock()->getSuccessMessages();
33+
$actualMessage = $productGrid->getMessagesBlock()->getSuccessMessage();
3434
\PHPUnit_Framework_Assert::assertEquals(
3535
$expectedMessage,
3636
$actualMessage,

dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeSaveMessage.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@
1414
*/
1515
class AssertProductAttributeSaveMessage extends AbstractConstraint
1616
{
17+
/**
18+
* Product attribute success save message.
19+
*/
1720
const SUCCESS_MESSAGE = 'You saved the product attribute.';
1821

1922
/**
@@ -24,12 +27,13 @@ class AssertProductAttributeSaveMessage extends AbstractConstraint
2427
*/
2528
public function processAssert(CatalogProductAttributeIndex $attributeIndex)
2629
{
30+
$actualMessage = $attributeIndex->getMessagesBlock()->getSuccessMessage();
2731
\PHPUnit_Framework_Assert::assertEquals(
2832
self::SUCCESS_MESSAGE,
29-
$attributeIndex->getMessagesBlock()->getSuccessMessages(),
33+
$actualMessage,
3034
'Wrong success message is displayed.'
3135
. "\nExpected: " . self::SUCCESS_MESSAGE
32-
. "\nActual: " . $attributeIndex->getMessagesBlock()->getSuccessMessages()
36+
. "\nActual: " . $actualMessage
3337
);
3438
}
3539

dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeSuccessDeleteMessage.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,13 @@ class AssertProductAttributeSuccessDeleteMessage extends AbstractConstraint
2525
*/
2626
public function processAssert(CatalogProductAttributeIndex $attributeIndex)
2727
{
28+
$actualMessage = $attributeIndex->getMessagesBlock()->getSuccessMessage();
2829
\PHPUnit_Framework_Assert::assertEquals(
2930
self::SUCCESS_MESSAGE,
30-
$attributeIndex->getMessagesBlock()->getSuccessMessages(),
31+
$actualMessage,
3132
'Wrong success message is displayed.'
3233
. "\nExpected: " . self::SUCCESS_MESSAGE
33-
. "\nActual: " . $attributeIndex->getMessagesBlock()->getSuccessMessages()
34+
. "\nActual: " . $actualMessage
3435
);
3536
}
3637

dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductCompareSuccessAddMessage.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class AssertProductCompareSuccessAddMessage extends AbstractConstraint
3131
public function processAssert(CatalogProductView $catalogProductView, FixtureInterface $product)
3232
{
3333
$successMessage = sprintf(self::SUCCESS_MESSAGE, $product->getName());
34-
$actualMessage = $catalogProductView->getMessagesBlock()->getSuccessMessages();
34+
$actualMessage = $catalogProductView->getMessagesBlock()->getSuccessMessage();
3535
\PHPUnit_Framework_Assert::assertEquals(
3636
$successMessage,
3737
$actualMessage,

dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductCompareSuccessRemoveAllProductsMessage.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class AssertProductCompareSuccessRemoveAllProductsMessage extends AbstractConstr
2424
*/
2525
public function processAssert(CatalogProductView $catalogProductView)
2626
{
27-
$actualMessage = $catalogProductView->getMessagesBlock()->getSuccessMessages();
27+
$actualMessage = $catalogProductView->getMessagesBlock()->getSuccessMessage();
2828
\PHPUnit_Framework_Assert::assertEquals(
2929
self::SUCCESS_MESSAGE,
3030
$actualMessage,

dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductCompareSuccessRemoveMessage.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class AssertProductCompareSuccessRemoveMessage extends AbstractConstraint
2828
public function processAssert(CatalogProductCompare $catalogProductCompare, FixtureInterface $product)
2929
{
3030
$successMessage = sprintf(self::SUCCESS_MESSAGE, $product->getName());
31-
$actualMessage = $catalogProductCompare->getMessagesBlock()->getSuccessMessages();
31+
$actualMessage = $catalogProductCompare->getMessagesBlock()->getSuccessMessage();
3232
\PHPUnit_Framework_Assert::assertEquals($successMessage, $actualMessage, 'Wrong success message is displayed.');
3333
}
3434

dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductDuplicateMessage.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ class AssertProductDuplicateMessage extends AbstractConstraint
2828
public function processAssert(CatalogProductEdit $productPage)
2929
{
3030
$actualMessages = $productPage->getMessagesBlock()->getSuccessMessages();
31-
$actualMessages = is_array($actualMessages) ? $actualMessages : [$actualMessages];
3231
\PHPUnit_Framework_Assert::assertContains(
3332
self::DUPLICATE_MESSAGE,
3433
$actualMessages,

dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductSaveMessage.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ class AssertProductSaveMessage extends AbstractConstraint
2828
public function processAssert(CatalogProductEdit $productPage)
2929
{
3030
$actualMessages = $productPage->getMessagesBlock()->getSuccessMessages();
31-
$actualMessages = is_array($actualMessages) ? $actualMessages : [$actualMessages];
3231
\PHPUnit_Framework_Assert::assertContains(
3332
self::SUCCESS_MESSAGE,
3433
$actualMessages,

0 commit comments

Comments
 (0)