Skip to content

Commit 7ec3721

Browse files
author
Oleksandr Osadchyi
committed
Merge remote-tracking branch 'mainline/develop' into BUGS
2 parents 13c19f2 + 6ae3418 commit 7ec3721

File tree

216 files changed

+8286
-579
lines changed

Some content is hidden

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

216 files changed

+8286
-579
lines changed

dev/tests/functional/lib/Magento/Mtf/Client/Element/SuggestElement.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,13 @@ class SuggestElement extends SimpleElement
6060
*/
6161
protected $closeButton = '[data-action="close-advanced-select"]';
6262

63+
/**
64+
* Searched count.
65+
*
66+
* @var string
67+
*/
68+
protected $searchedCount = '[class*=search-count]';
69+
6370
/**
6471
* Set value.
6572
*
@@ -77,6 +84,12 @@ public function setValue($value)
7784
}
7885
$this->keys([$value]);
7986
$searchedItem = $this->find(sprintf($this->resultItem, $value), Locator::SELECTOR_XPATH);
87+
$searchedCountElements = $this->find($this->searchedCount);
88+
$this->waitUntil(
89+
function () use ($searchedCountElements) {
90+
return $searchedCountElements->isVisible() ? true : null;
91+
}
92+
);
8093
$searchedItem->click();
8194
$closeButton = $this->find($this->closeButton);
8295
if ($closeButton->isVisible()) {
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<?php
2+
/**
3+
* Copyright © 2016 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\Mtf\Util\Command\Cli;
8+
9+
use Magento\Mtf\Util\Command\Cli;
10+
11+
/**
12+
* Handle reindexing for tests executions.
13+
*/
14+
class Indexer extends Cli
15+
{
16+
/**
17+
* Parameter for reindex command.
18+
*/
19+
const PARAM_INDEXER_REINDEX = 'indexer:reindex';
20+
21+
/**
22+
* Run reindex.
23+
*
24+
* @param array $indexes [optional]
25+
* @return void
26+
*/
27+
public function reindex(array $indexes = [])
28+
{
29+
$params = '';
30+
if (!empty($indexes)) {
31+
$params = implode(' ', $indexes);
32+
}
33+
parent::execute(Indexer::PARAM_INDEXER_REINDEX . ' ' . $params);
34+
}
35+
}

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

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,4 +100,31 @@ public function navigate($menuItem)
100100
$this->_rootElement->find($subMenuItem, Locator::SELECTOR_XPATH)->click();
101101
$this->waitForElementNotVisible($subMenuSelector, Locator::SELECTOR_XPATH);
102102
}
103+
104+
/**
105+
* Check if menu item is visible.
106+
*
107+
* @param string $menuItem
108+
* @return bool
109+
*/
110+
public function isMenuItemVisible($menuItem)
111+
{
112+
$menuChain = array_map('trim', explode('>', $menuItem));
113+
$mainMenu = $menuChain[0];
114+
$subMenu = isset($menuChain[1]) ? $menuChain[1] : null;
115+
116+
$mainMenuElement = $this->_rootElement->find(sprintf($this->mainMenu, $mainMenu), Locator::SELECTOR_XPATH);
117+
if (!$mainMenuElement->isVisible()) {
118+
return false;
119+
}
120+
if ($subMenu === null) {
121+
return true;
122+
}
123+
$mainMenuElement->click();
124+
125+
$subMenuSelector = sprintf($this->subMenu, $mainMenu);
126+
$this->waitForElementVisible($subMenuSelector, Locator::SELECTOR_XPATH);
127+
$subMenuItem = $subMenuSelector . sprintf($this->subMenuItem, $subMenu);
128+
return $this->_rootElement->find($subMenuItem, Locator::SELECTOR_XPATH)->isVisible();
129+
}
103130
}

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

Lines changed: 2 additions & 130 deletions
Original file line numberDiff line numberDiff line change
@@ -6,126 +6,20 @@
66

77
namespace Magento\Backend\Test\Block;
88

9-
use Magento\Mtf\Block\Block;
109
use Magento\Mtf\Client\Locator;
1110

1211
/**
13-
* Global messages block.
12+
* Backend Messages block.
1413
*/
15-
class Messages extends Block
14+
class Messages extends \Magento\Ui\Test\Block\Messages
1615
{
17-
/**
18-
* Success message selector.
19-
*
20-
* @var string
21-
*/
22-
protected $successMessage = '[data-ui-id$=message-success]';
23-
24-
/**
25-
* Last success message selector.
26-
*
27-
* @var string
28-
*/
29-
protected $lastSuccessMessage = '[data-ui-id$=message-success]:last-child';
30-
3116
/**
3217
* Message link.
3318
*
3419
* @var string
3520
*/
3621
protected $messageLink = "//a[contains(.,'%s')]";
3722

38-
/**
39-
* Error message selector.
40-
*
41-
* @var string
42-
*/
43-
protected $errorMessage = '[data-ui-id$=message-error]';
44-
45-
/**
46-
* Notice message selector.
47-
*
48-
* @var string
49-
*/
50-
protected $noticeMessage = '[data-ui-id$=message-notice]';
51-
52-
/**
53-
* Warning message selector.
54-
*
55-
* @var string
56-
*/
57-
protected $warningMessage = '[data-ui-id$=message-warning]';
58-
59-
/**
60-
* Wait for success message.
61-
*
62-
* @return bool
63-
*/
64-
public function waitSuccessMessage()
65-
{
66-
return $this->waitForElementVisible($this->successMessage, Locator::SELECTOR_CSS);
67-
}
68-
69-
/**
70-
* Get all success messages which are present on the page.
71-
*
72-
* @return array
73-
*/
74-
public function getSuccessMessages()
75-
{
76-
$this->waitForElementVisible($this->successMessage);
77-
$elements = $this->_rootElement->getElements($this->successMessage);
78-
79-
$messages = [];
80-
foreach ($elements as $element) {
81-
$messages[] = $element->getText();
82-
}
83-
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();
97-
}
98-
99-
/**
100-
* Wait for element is visible in the page.
101-
*
102-
* @param string $selector
103-
* @param string $strategy
104-
* @return bool|null
105-
*/
106-
public function waitForElementVisible($selector, $strategy = Locator::SELECTOR_CSS)
107-
{
108-
$browser = $this->browser;
109-
return $browser->waitUntil(
110-
function () use ($browser, $selector, $strategy) {
111-
$message = $browser->find($selector, $strategy);
112-
return $message->isVisible() ? true : null;
113-
}
114-
);
115-
}
116-
117-
/**
118-
* Get all error message which is present on the page.
119-
*
120-
* @return string
121-
*/
122-
public function getErrorMessage()
123-
{
124-
return $this->_rootElement
125-
->find($this->errorMessage, Locator::SELECTOR_CSS)
126-
->getText();
127-
}
128-
12923
/**
13024
* Click on link in the message which is present on the page.
13125
*
@@ -175,26 +69,4 @@ public function assertNoticeMessage()
17569
{
17670
return $this->waitForElementVisible($this->noticeMessage, Locator::SELECTOR_CSS);
17771
}
178-
179-
/**
180-
* Get notice message which is present on the page.
181-
*
182-
* @return string
183-
*/
184-
public function getNoticeMessage()
185-
{
186-
$this->waitForElementVisible($this->noticeMessage);
187-
return $this->_rootElement->find($this->noticeMessage)->getText();
188-
}
189-
190-
/**
191-
* Get warning message which is present on the page.
192-
*
193-
* @return string
194-
*/
195-
public function getWarningMessage()
196-
{
197-
$this->waitForElementVisible($this->warningMessage);
198-
return $this->_rootElement->find($this->warningMessage)->getText();
199-
}
20072
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<?php
2+
/**
3+
* Copyright © 2016 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\Backend\Test\Constraint;
8+
9+
use Magento\Backend\Test\Page\Adminhtml\Dashboard;
10+
use Magento\Mtf\Constraint\AbstractConstraint;
11+
12+
/**
13+
* Assert menu item availability.
14+
*/
15+
class AssertMenuItemNotVisible extends AbstractConstraint
16+
{
17+
/**
18+
* Assert that menu item is not visible in dashboard menu.
19+
*
20+
* @param Dashboard $dashboard
21+
* @param string $menuItem
22+
* @return void
23+
*/
24+
public function processAssert(Dashboard $dashboard, $menuItem)
25+
{
26+
$dashboard->open();
27+
28+
\PHPUnit_Framework_Assert::assertFalse(
29+
$dashboard->getMenuBlock()->isMenuItemVisible($menuItem),
30+
'Menu item ' . $menuItem . ' is supposed to be not visible.'
31+
);
32+
}
33+
34+
/**
35+
* Returns a string representation of successful assertion.
36+
*
37+
* @return string
38+
*/
39+
public function toString()
40+
{
41+
return 'Menu item is not visible in dashboard menu.';
42+
}
43+
}

dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/Dashboard.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
-->
88
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
99
<page name="Dashboard" area="Adminhtml" mca="admin/dashboard" module="Magento_Backend">
10+
<block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector" />
1011
<block name="adminPanelHeader" class="Magento\Backend\Test\Block\Page\Header" locator=".page-header" strategy="css selector" />
1112
<block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".page-title-wrapper" strategy="css selector" />
1213
<block name="mainBlock" class="Magento\Backend\Test\Block\Page\Main" locator=".dashboard-main" strategy="css selector" />

dev/tests/functional/tests/app/Magento/Backend/Test/Repository/ConfigData.xml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,13 +230,15 @@
230230
</item>
231231
</field>
232232
</dataset>
233+
233234
<dataset name="custom_allowed_country_rollback">
234235
<field name="general/country/allow" xsi:type="array">
235236
<item name="scope" xsi:type="string">default</item>
236237
<item name="scope_id" xsi:type="number">0</item>
237238
<item name="inherit" xsi:type="string">1</item>
238239
</field>
239240
</dataset>
241+
240242
<dataset name="enable_single_store_mode">
241243
<field name="general/single_store_mode/enabled" xsi:type="array">
242244
<item name="scope" xsi:type="string">default</item>
@@ -245,6 +247,7 @@
245247
<item name="value" xsi:type="number">1</item>
246248
</field>
247249
</dataset>
250+
248251
<dataset name="enable_single_store_mode_rollback">
249252
<field name="general/single_store_mode/enabled" xsi:type="array">
250253
<item name="scope" xsi:type="string">default</item>
@@ -253,5 +256,25 @@
253256
<item name="value" xsi:type="number">0</item>
254257
</field>
255258
</dataset>
259+
260+
<dataset name="top_destinations_DE_ES_GB">
261+
<field name="general/country/destinations" xsi:type="array">
262+
<item name="scope" xsi:type="string">default</item>
263+
<item name="scope_id" xsi:type="number">0</item>
264+
<item name="value" xsi:type="array">
265+
<item name="Germany" xsi:type="string">DE</item>
266+
<item name="Spain" xsi:type="string">ES</item>
267+
<item name="United Kingdom" xsi:type="string">GB</item>
268+
</item>
269+
</field>
270+
</dataset>
271+
272+
<dataset name="top_destinations_DE_ES_GB_rollback">
273+
<field name="general/country/destinations" xsi:type="array">
274+
<item name="scope" xsi:type="string">default</item>
275+
<item name="scope_id" xsi:type="number">0</item>
276+
<item name="value" xsi:type="string"></item>
277+
</field>
278+
</dataset>
256279
</repository>
257280
</config>

0 commit comments

Comments
 (0)