Skip to content

Commit 39b9fdc

Browse files
committed
MTA-3232: Configurable Product: Extend existing functional automated tests
1 parent cef8d0f commit 39b9fdc

File tree

6 files changed

+202
-1
lines changed

6 files changed

+202
-1
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
<?php
2+
/**
3+
* Copyright © 2016 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\Catalog\Test\Constraint;
8+
9+
use Magento\Catalog\Test\Page\Adminhtml\CatalogProductEdit;
10+
use Magento\Mtf\Constraint\AbstractConstraint;
11+
use Magento\Mtf\Fixture\FixtureInterface;
12+
13+
/**
14+
* Assert notice that existing sku automatically changed when saving product with same sku.
15+
*/
16+
class AssertProductAutoincrementedSkuNoticeMessage extends AbstractConstraint
17+
{
18+
/**
19+
* Assert notice that existing sku automatically changed when saving product with same sku.
20+
*
21+
* @param CatalogProductEdit $productPage
22+
* @param FixtureInterface $product
23+
* @return void
24+
*/
25+
public function processAssert(CatalogProductEdit $productPage, FixtureInterface $product)
26+
{
27+
$actualMessage = $productPage->getMessagesBlock()->getNoticeMessage();
28+
$reg = '/(SKU for product ' . $product->getName() . ' has been changed to ' . $product->getSku() . '-)(\d+.$)/';
29+
\PHPUnit_Framework_Assert::assertTrue(
30+
preg_match($reg, $actualMessage) == 1,
31+
'Incorrect notice that existing sku automatically changed when saving product with same sku.'
32+
);
33+
}
34+
35+
/**
36+
* Returns a string representation of the object.
37+
*
38+
* @return string
39+
*/
40+
public function toString()
41+
{
42+
return 'Notice that existing sku automatically changed when saving product with same sku is correct.';
43+
}
44+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
<?php
2+
/**
3+
* Copyright © 2016 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\ConfigurableProduct\Test\Constraint;
8+
9+
use Magento\Catalog\Test\Page\Adminhtml\CatalogProductIndex;
10+
use Magento\ConfigurableProduct\Test\Fixture\ConfigurableProduct;
11+
use Magento\Mtf\Constraint\AbstractConstraint;
12+
13+
/**
14+
* Assert that child products sku generated from parent sku.
15+
*/
16+
class AssertChildProductsGeneratedSku extends AbstractConstraint
17+
{
18+
/**
19+
* Assert that child products sku generated from parent sku.
20+
*
21+
* @param CatalogProductIndex $productGrid
22+
* @param ConfigurableProduct $product
23+
* @return void
24+
*/
25+
public function processAssert(CatalogProductIndex $productGrid, ConfigurableProduct $product)
26+
{
27+
$configurableAttributesData = $product->getConfigurableAttributesData();
28+
$productGrid->open();
29+
foreach ($configurableAttributesData['matrix'] as $variation) {
30+
$filter = ['name' => $variation['name']];
31+
$productGrid->getProductGrid()->search($filter);
32+
$itemId = $productGrid->getProductGrid()->getFirstItemId();
33+
\PHPUnit_Framework_Assert::assertContains(
34+
$product->getSku(),
35+
$productGrid->getProductGrid()->getColumnValue($itemId, 'SKU'),
36+
'Product sku is not generated from parent sku.'
37+
);
38+
}
39+
}
40+
41+
/**
42+
* Returns a string representation of the object.
43+
*
44+
* @return string
45+
*/
46+
public function toString()
47+
{
48+
return 'Child products sku is generated from parent sku.';
49+
}
50+
}

dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Fixture/ConfigurableProduct/ConfigurableAttributesData.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,14 @@ protected function prepareVariationsMatrix(array $data)
276276
foreach ($this->attributesData as $attributeKey => $attribute) {
277277
$variationsMatrix = $this->addVariationMatrix($variationsMatrix, $attribute, $attributeKey);
278278
}
279+
280+
foreach ($data['matrix'] as $key => $value) {
281+
if (isset($value['sku']) && $value['sku'] === '') {
282+
unset($variationsMatrix[$key]['sku']);
283+
unset($data['matrix'][$key]['sku']);
284+
}
285+
}
286+
279287
$this->variationsMatrix = isset($data['matrix'])
280288
? array_replace_recursive($variationsMatrix, $data['matrix'])
281289
: $variationsMatrix;

dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Repository/ConfigurableProduct/ConfigurableAttributesData.xml

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,76 @@
227227
</field>
228228
</dataset>
229229

230+
<dataset name="two_new_options_with_empty_sku">
231+
<field name="attributes_data" xsi:type="array">
232+
<item name="attribute_key_0" xsi:type="array">
233+
<item name="frontend_label" xsi:type="string">two_new_options_title_%isolation%</item>
234+
<item name="frontend_input" xsi:type="string">Dropdown</item>
235+
<item name="label" xsi:type="string">two_new_options_title_%isolation%</item>
236+
<item name="is_required" xsi:type="string">No</item>
237+
<item name="options" xsi:type="array">
238+
<item name="option_key_0" xsi:type="array">
239+
<item name="label" xsi:type="string">option_key_1_%isolation%</item>
240+
<item name="pricing_value" xsi:type="string">1</item>
241+
<item name="include" xsi:type="string">Yes</item>
242+
</item>
243+
<item name="option_key_1" xsi:type="array">
244+
<item name="label" xsi:type="string">option_key_2_%isolation%</item>
245+
<item name="pricing_value" xsi:type="string">2</item>
246+
<item name="include" xsi:type="string">Yes</item>
247+
</item>
248+
</item>
249+
</item>
250+
</field>
251+
<field name="matrix" xsi:type="array">
252+
<item name="attribute_key_0:option_key_0" xsi:type="array">
253+
<item name="qty" xsi:type="string">13</item>
254+
<item name="weight" xsi:type="string">1</item>
255+
<item name="sku" xsi:type="string" />
256+
</item>
257+
<item name="attribute_key_0:option_key_1" xsi:type="array">
258+
<item name="qty" xsi:type="string">13</item>
259+
<item name="weight" xsi:type="string">2</item>
260+
<item name="sku" xsi:type="string" />
261+
</item>
262+
</field>
263+
</dataset>
264+
265+
<dataset name="two_new_options_with_parent_sku">
266+
<field name="attributes_data" xsi:type="array">
267+
<item name="attribute_key_0" xsi:type="array">
268+
<item name="frontend_label" xsi:type="string">two_new_options_title_%isolation%</item>
269+
<item name="frontend_input" xsi:type="string">Dropdown</item>
270+
<item name="label" xsi:type="string">two_new_options_title_%isolation%</item>
271+
<item name="is_required" xsi:type="string">No</item>
272+
<item name="options" xsi:type="array">
273+
<item name="option_key_0" xsi:type="array">
274+
<item name="label" xsi:type="string">option_key_1_%isolation%</item>
275+
<item name="pricing_value" xsi:type="string">1</item>
276+
<item name="include" xsi:type="string">Yes</item>
277+
</item>
278+
<item name="option_key_1" xsi:type="array">
279+
<item name="label" xsi:type="string">option_key_2_%isolation%</item>
280+
<item name="pricing_value" xsi:type="string">2</item>
281+
<item name="include" xsi:type="string">Yes</item>
282+
</item>
283+
</item>
284+
</item>
285+
</field>
286+
<field name="matrix" xsi:type="array">
287+
<item name="attribute_key_0:option_key_0" xsi:type="array">
288+
<item name="qty" xsi:type="string">13</item>
289+
<item name="weight" xsi:type="string">1</item>
290+
<item name="sku" xsi:type="string">existing_sku</item>
291+
</item>
292+
<item name="attribute_key_0:option_key_1" xsi:type="array">
293+
<item name="qty" xsi:type="string">13</item>
294+
<item name="weight" xsi:type="string">2</item>
295+
<item name="sku" xsi:type="string">existing_sku</item>
296+
</item>
297+
</field>
298+
</dataset>
299+
230300
<dataset name="two_searchable_options">
231301
<field name="attributes_data" xsi:type="array">
232302
<item name="attribute_key_0" xsi:type="array">

dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateConfigurableProductEntityTest.xml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,5 +125,32 @@
125125
<constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCategory"/>
126126
<constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductPage" />
127127
</variation>
128+
<variation name="CreateConfigurableProductEntityTestVariation7" summary="Verify that variation's SKU based on parent SKU">
129+
<data name="product/data/configurable_attributes_data/dataset" xsi:type="string">two_new_options_with_empty_sku</data>
130+
<data name="product/data/name" xsi:type="string">Configurable Product %isolation%</data>
131+
<data name="product/data/sku" xsi:type="string">configurable_sku_%isolation%</data>
132+
<data name="product/data/price/value" xsi:type="string">100</data>
133+
<constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
134+
<constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertChildProductsGeneratedSku" />
135+
</variation>
136+
<variation name="CreateConfigurableProductEntityTestVariation8" summary="Assert notice that existing sku automatically changed when saving product with same sku">
137+
<data name="product/data/configurable_attributes_data/dataset" xsi:type="string">two_new_options_with_parent_sku</data>
138+
<data name="product/data/name" xsi:type="string">Configurable Product %isolation%</data>
139+
<data name="product/data/sku" xsi:type="string">existing_sku</data>
140+
<data name="product/data/price/value" xsi:type="string">100</data>
141+
<constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
142+
<constraint name="Magento\Catalog\Test\Constraint\AssertProductAutoincrementedSkuNoticeMessage" />
143+
</variation>
144+
<variation name="CreateConfigurableProductEntityTestVariation9" summary="Create configurable product and assign it to custom website">
145+
<data name="product/data/url_key" xsi:type="string">configurable-product-%isolation%</data>
146+
<data name="product/data/configurable_attributes_data/dataset" xsi:type="string">two_options_with_assigned_product_special_price</data>
147+
<data name="product/data/checkout_data/dataset" xsi:type="string">configurable_two_new_options_with_special_price</data>
148+
<data name="product/data/name" xsi:type="string">Configurable Product %isolation%</data>
149+
<data name="product/data/sku" xsi:type="string">configurable_sku_%isolation%</data>
150+
<data name="product/data/price/value" xsi:type="string">100</data>
151+
<data name="product/data/website_ids/0/dataset" xsi:type="string">custom_store</data>
152+
<constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
153+
<constraint name="Magento\Catalog\Test\Constraint\AssertProductOnCustomWebsite" />
154+
</variation>
128155
</testCase>
129156
</config>

dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/DataGrid.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,10 +99,12 @@ class DataGrid extends Grid
9999
*/
100100
protected $rowById = "//tr[//input[@data-action='select-row' and @value='%s']]";
101101

102+
// @codingStandardsIgnoreStart
102103
/**
103104
* @var string
104105
*/
105-
protected $cellByHeader = "//td[count(//th[span[.='%s']]/preceding-sibling::th)+1]";
106+
private $cellByHeader = "//td[count(//th[span[.='%s']][not(ancestor::*[@class='sticky-header'])]/preceding-sibling::th)+1]";
107+
// @codingStandardsIgnoreEnd
106108

107109
/**
108110
* @var string

0 commit comments

Comments
 (0)