Skip to content

Commit 9969b7b

Browse files
author
Dmytro Voskoboinikov
committed
Merge branch '2.2-develop' into 2.2.4-PR-20170111
2 parents 00ae3f7 + c7acfe2 commit 9969b7b

File tree

10 files changed

+122
-16
lines changed

10 files changed

+122
-16
lines changed

dev/tests/functional/composer.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@
44
},
55
"require": {
66
"php": "7.0.2|~7.0.6|~7.1.0",
7+
"magento/mtf": "1.0.0-rc59",
78
"allure-framework/allure-phpunit": "~1.2.0",
8-
"magento/mtf": "1.0.0-rc58",
9+
"doctrine/annotations": "1.4.*",
910
"phpunit/phpunit": "~4.8.0|~5.5.0",
1011
"phpunit/phpunit-selenium": ">=1.2"
1112
},

dev/tests/functional/etc/config.xml.dist

+5
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,11 @@
2727
<baseUrl>http://magento2ce.com/</baseUrl>
2828
<backendName>backend</backendName>
2929
</install>
30+
<server>
31+
<item name="selenium">
32+
<item name="resolution" width="1366" height="768" />
33+
</item>
34+
</server>
3035
<handler>
3136
<webapi priority="0">
3237
<token>integration_token</token>

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

+1
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ public function setValue($value)
6565
{
6666
$date = $this->parseDate($value);
6767
$date[1] = ltrim($date[1], '0');
68+
$this->click();
6869
$this->find($this->datePickerButton, Locator::SELECTOR_XPATH)->click();
6970
$datapicker = $this->find($this->datePickerBlock, Locator::SELECTOR_XPATH);
7071
$datapicker->find($this->datePickerYear, Locator::SELECTOR_XPATH, 'select')->setValue($date[2]);

dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityTest.xml

+1
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,7 @@
220220
<constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock" />
221221
</variation>
222222
<variation name="CreateSimpleProductEntityTestVariation12" ticketId="MAGETWO-86225">
223+
<data name="issue" xsi:type="string">MAGETWO-87569: [FAT] Fix unstable tests</data>
223224
<data name="product/data/url_key" xsi:type="string">simple-product-%isolation%</data>
224225
<data name="product/data/name" xsi:type="string">Simple Product %isolation%</data>
225226
<data name="product/data/sku" xsi:type="string">simple_sku_%isolation%</data>

dev/tests/functional/tests/app/Magento/Setup/Test/Block/SelectVersion.php

+51-6
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,23 @@ class SelectVersion extends Form
4343
*
4444
* @var string
4545
*/
46-
private $otherComponentsGrid = '.admin__data-grid-wrap[ng-show="componentsProcessed"]';
46+
private $otherComponentsGrid = '.admin__data-grid-outer-wrap';
47+
48+
/**
49+
* @var string
50+
*/
51+
private $empty = '[ng-show="componentsProcessed && total == 0"]';
52+
53+
/**
54+
* @var string
55+
*/
56+
private $waitEmpty =
57+
'//div[contains(@ng-show, "componentsProcessed && total") and not(contains(@class,"ng-hide"))]';
58+
59+
/**
60+
* @var OtherComponentsGrid
61+
*/
62+
private $otherComponentGrid;
4763

4864
/**
4965
* Click on 'Next' button.
@@ -93,7 +109,33 @@ public function chooseUpgradeOtherComponents(array $packages)
93109
{
94110
$this->_rootElement->find("[for=yesUpdateComponents]")->click();
95111
$this->waitForElementNotVisible("[ng-show=\"!componentsProcessed\"");
96-
$this->getOtherComponentsGrid()->setVersions($packages);
112+
113+
if (!$this->isComponentsEmpty()) {
114+
$otherComponentGrid = $this->getOtherComponentsGrid();
115+
$otherComponentGrid->setItemsPerPage(200);
116+
$otherComponentGrid->setVersions($packages);
117+
}
118+
}
119+
120+
/**
121+
* Check that grid is empty.
122+
*
123+
* @return bool
124+
*/
125+
public function isComponentsEmpty()
126+
{
127+
$this->waitForElementVisible($this->waitEmpty, Locator::SELECTOR_XPATH);
128+
return $this->_rootElement->find($this->empty)->isVisible();
129+
}
130+
131+
/**
132+
* Returns selected packages.
133+
*
134+
* @return array
135+
*/
136+
public function getSelectedPackages()
137+
{
138+
return $this->getOtherComponentsGrid()->getSelectedPackages();
97139
}
98140

99141
/**
@@ -103,9 +145,12 @@ public function chooseUpgradeOtherComponents(array $packages)
103145
*/
104146
private function getOtherComponentsGrid()
105147
{
106-
return $this->blockFactory->create(
107-
OtherComponentsGrid::class,
108-
['element' => $this->_rootElement->find($this->otherComponentsGrid)]
109-
);
148+
if (!isset($this->otherComponentGrid)) {
149+
$this->otherComponentGrid = $this->blockFactory->create(
150+
OtherComponentsGrid::class,
151+
['element' => $this->_rootElement->find($this->otherComponentsGrid)]
152+
);
153+
}
154+
return $this->otherComponentGrid;
110155
}
111156
}

dev/tests/functional/tests/app/Magento/Setup/Test/Block/SelectVersion/OtherComponentsGrid.php

+40-6
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
namespace Magento\Setup\Test\Block\SelectVersion;
77

88
use Magento\Mtf\Block\Block;
9+
use Magento\Mtf\Client\ElementInterface;
910
use Magento\Mtf\Client\Locator;
1011
use Magento\Setup\Test\Block\SelectVersion\OtherComponentsGrid\Item;
1112

@@ -14,28 +15,61 @@ class OtherComponentsGrid extends Block
1415
/**
1516
* @var string
1617
*/
17-
private $itemComponent = '//tr[contains(@ng-repeat,"component") and //td[contains(.,"%s")]]';
18+
private $itemComponent = '//tr[contains(@ng-repeat,"component") and ./td[contains(.,"%s")]]';
19+
20+
/**
21+
* @var string
22+
*/
23+
private $perPage = '#perPage';
24+
25+
/**
26+
* @var array
27+
*/
28+
private $selectedPackages = [];
1829

1930
/**
2031
* @param $packages
2132
*/
2233
public function setVersions(array $packages)
2334
{
2435
foreach ($packages as $package) {
25-
$this->getComponentRow($package['name'])->setVersion($package['version']);
36+
$selector = sprintf($this->itemComponent, $package['name']);
37+
$elements = $this->_rootElement->getElements($selector, Locator::SELECTOR_XPATH);
38+
foreach ($elements as $element) {
39+
$row = $this->getComponentRow($element);
40+
$row->setVersion($package['version']);
41+
$this->selectedPackages[$row->getPackageName()] = $package['version'];
42+
}
2643
}
2744
}
2845

2946
/**
30-
* @param string $componentName
47+
* Returns selected packages.
48+
*
49+
* @return array
50+
*/
51+
public function getSelectedPackages()
52+
{
53+
return $this->selectedPackages;
54+
}
55+
56+
/**
57+
* @param int $count
58+
*/
59+
public function setItemsPerPage($count)
60+
{
61+
$this->_rootElement->find($this->perPage, Locator::SELECTOR_CSS, 'select')->setValue($count);
62+
}
63+
64+
/**
65+
* @param ElementInterface $element
3166
* @return Item
3267
*/
33-
private function getComponentRow($componentName)
68+
private function getComponentRow($element)
3469
{
35-
$selector = sprintf($this->itemComponent, $componentName);
3670
return $this->blockFactory->create(
3771
Item::class,
38-
['element' => $this->_rootElement->find($selector, Locator::SELECTOR_XPATH)]
72+
['element' => $element]
3973
);
4074
}
4175
}

dev/tests/functional/tests/app/Magento/Setup/Test/Block/SelectVersion/OtherComponentsGrid/Item.php

+17
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,13 @@ class Item extends Block
2020
*/
2121
private $version = '[ng-change*="setComponentVersion"]';
2222

23+
/**
24+
* CSS selector for package name element.
25+
*
26+
* @var string
27+
*/
28+
private $packageName = 'td:nth-child(2)';
29+
2330
/**
2431
* Set version for particular component.
2532
*
@@ -29,4 +36,14 @@ public function setVersion($version)
2936
{
3037
$this->_rootElement->find($this->version, Locator::SELECTOR_CSS, 'select')->setValue($version);
3138
}
39+
40+
/**
41+
* Returns package name of element.
42+
*
43+
* @return array|string
44+
*/
45+
public function getPackageName()
46+
{
47+
return $this->_rootElement->find($this->packageName)->getText();
48+
}
3249
}

dev/tests/functional/tests/app/Magento/Setup/Test/Constraint/AssertVersionAndEditionCheck.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ class AssertVersionAndEditionCheck extends AbstractConstraint
2424
public function processAssert(SetupWizard $setupWizard, array $upgrade)
2525
{
2626
$message = "We're ready to upgrade {$upgrade['package']} to {$upgrade['version']}.";
27-
if (isset($upgrade['otherComponentsList'])) {
28-
foreach ($upgrade['otherComponentsList'] as $item) {
29-
$message .= "\nWe're ready to upgrade {$item['name']} to {$item['version']}.";
27+
if ($upgrade['otherComponents'] === 'Yes' && isset($upgrade['selectedPackages'])) {
28+
foreach ($upgrade['selectedPackages'] as $name => $version) {
29+
$message .= "\nWe're ready to upgrade {$name} to {$version}.";
3030
}
3131
}
3232
$actualMessage = $setupWizard->getSystemUpgrade()->getUpgradeMessage();

dev/tests/functional/tests/app/Magento/Setup/Test/TestCase/UpgradeSystemTest.php

+1
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ public function test(
124124

125125
// Check info and press 'Upgrade' button
126126
$upgrade['version'] = $version;
127+
$upgrade['selectedPackages'] = $this->setupWizard->getSelectVersion()->getSelectedPackages();
127128
$assertVersionAndEdition->processAssert($this->setupWizard, $upgrade);
128129
$this->setupWizard->getSystemUpgrade()->clickSystemUpgrade();
129130

dev/tests/functional/tests/app/Magento/Setup/Test/TestCase/UpgradeSystemTest.xml

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
<data name="upgrade/optionsMedia" xsi:type="string">No</data>
1919
<data name="upgrade/optionsDb" xsi:type="string">No</data>
2020
<data name="upgrade/otherComponents" xsi:type="string">{otherComponents}</data>
21+
<!-- If otherComponents value is Yes specify otherComponentsList items-->
2122
<data name="upgrade/otherComponentsList" xsi:type="array">
2223
<item name="0" xsi:type="array">
2324
<item name="name" xsi:type="string">{package_0_name}</item>

0 commit comments

Comments
 (0)