Skip to content

Commit 555848e

Browse files
committed
MTA-3760: Fix Update Products Using Mass Actions
1 parent 7aa80f6 commit 555848e

File tree

9 files changed

+79
-138
lines changed

9 files changed

+79
-138
lines changed

dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Action/Tab/Attributes.php

Lines changed: 0 additions & 38 deletions
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
<?php
2+
/**
3+
* Copyright © 2016 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Action\Tab;
8+
9+
use Magento\Mtf\Client\Element\SimpleElement;
10+
use Magento\Mtf\Client\Locator;
11+
use Magento\Backend\Test\Block\Widget\Tab;
12+
13+
/**
14+
* Tab on Product update attributes Form.
15+
*/
16+
class UpdateAttributeTab extends Tab
17+
{
18+
/**
19+
* Change checkbox.
20+
*
21+
* @var string
22+
*/
23+
private $changeCheckbox = [
24+
'selector' => './/./ancestor::div[contains(@class,"control")]'
25+
. '//input[@data-role="toggle-editability-all" or contains(@id, "toggle_")]',
26+
'strategy' => Locator::SELECTOR_XPATH,
27+
'input' => 'checkbox',
28+
'value' => 'Yes',
29+
];
30+
31+
/**
32+
* Fill data into fields in the container.
33+
*
34+
* @param array $fields
35+
* @param SimpleElement|null $contextElement
36+
* @return $this
37+
*/
38+
public function setFieldsData(array $fields, SimpleElement $contextElement = null)
39+
{
40+
$context = ($contextElement === null) ? $this->_rootElement : $contextElement;
41+
$mapping = $this->dataMapping($fields);
42+
foreach ($mapping as $field) {
43+
$this->_fill([$this->changeCheckbox], $context->find($field['selector'], $field['strategy']));
44+
$this->_fill([$field], $context);
45+
}
46+
47+
return $this;
48+
}
49+
}

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

Lines changed: 1 addition & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -7,56 +7,11 @@
77
namespace Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Action;
88

99
use Magento\Backend\Test\Block\Widget\FormTabs;
10-
use Magento\Mtf\Fixture\InjectableFixture;
1110

1211
/**
1312
* Product update Attributes Form.
1413
*/
1514
class UpdateAttributeForm extends FormTabs
1615
{
17-
/**
18-
* Checkbox array mapping.
19-
*
20-
* @var array
21-
*/
22-
private $checkboxMapping = [
23-
'attributes' => [
24-
'price' => 'toggle_price'
25-
],
26-
'advanced_inventory' => [
27-
'stock_data' => 'stock_data_checkbox'
28-
]
29-
];
30-
31-
/**
32-
* Create data array for filling containers.
33-
*
34-
* Returns data in format
35-
* [[abstract_container_name => [field_name => [attribute_name => attribute_value, ..], ..], ..]
36-
* where container name should be set to 'null' if a field is not present on the form.
37-
*
38-
* @param InjectableFixture $fixture
39-
* @return array
40-
*/
41-
protected function getFixtureFieldsByContainers(InjectableFixture $fixture)
42-
{
43-
$dataByContainer = [];
44-
$data = $fixture->getData();
45-
46-
foreach ($this->containers as $key => $container) {
47-
foreach (array_keys($container['fields']) as $fieldKey) {
48-
if (isset($data[$fieldKey])) {
49-
$dataByContainer[$key][$fieldKey]['value'] = $data[$fieldKey];
50-
if (isset($this->checkboxMapping[$key][$fieldKey])) {
51-
$dataByContainer[$key][$this->checkboxMapping[$key][$fieldKey]]['value'] = 'Yes';
52-
}
53-
}
54-
}
55-
if (isset($dataByContainer[$key])) {
56-
$dataByContainer[$key] = array_reverse($dataByContainer[$key]);
57-
}
58-
}
59-
60-
return $dataByContainer;
61-
}
16+
//
6217
}

dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Action/UpdateAttributeForm.xml

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,31 +6,23 @@
66
*/
77
-->
88
<tabs>
9-
<attributes>
10-
<class>Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Action\Tab\Attributes</class>
9+
<product-details>
10+
<class>Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Action\Tab\UpdateAttributeTab</class>
1111
<selector>#attributes_update_tabs_attributes</selector>
1212
<fields>
13-
<toggle_price>
14-
<selector>[name='toggle_price']</selector>
15-
<input>checkbox</input>
16-
</toggle_price>
1713
<price>
1814
<selector>#price</selector>
1915
</price>
2016
</fields>
21-
</attributes>
22-
<advanced_inventory>
23-
<class>\Magento\Backend\Test\Block\Widget\Tab</class>
17+
</product-details>
18+
<advanced-inventory>
19+
<class>Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Action\Tab\UpdateAttributeTab</class>
2420
<selector>#attributes_update_tabs_inventory</selector>
2521
<fields>
26-
<stock_data_checkbox>
27-
<selector>#inventory_stock_availability_checkbox</selector>
28-
<input>checkbox</input>
29-
</stock_data_checkbox>
3022
<stock_data>
3123
<selector>#inventory_stock_availability</selector>
3224
<input>select</input>
3325
</stock_data>
3426
</fields>
35-
</advanced_inventory>
27+
</advanced-inventory>
3628
</tabs>

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

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -81,16 +81,7 @@ public function updateAttributes(array $items = [])
8181
$products = [];
8282
/** @var FixtureInterface $product */
8383
foreach ($items as $product) {
84-
$dataConfig = $product->getDataConfig();
85-
$typeId = isset($dataConfig['type_id']) ? $dataConfig['type_id'] : null;
86-
if ($this->hasRender($typeId)) {
87-
$renderArguments = [
88-
'product' => $product,
89-
];
90-
$products = $this->callRender($typeId, 'prepareData', $renderArguments);
91-
} else {
92-
$products[] = ["sku" => $product->getSku()];
93-
}
84+
$products[] = ["sku" => $product->getSku()];
9485
}
9586
$this->massaction($products, 'Update attributes');
9687
}

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

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,5 @@
1616
<constraint name="Magento\Catalog\Test\Constraint\AssertMassProductUpdateSuccessMessage" />
1717
<constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
1818
</variation>
19-
<variation name="MassProductUpdateTestVariation2" summary="Update stock data for simple and configurable">
20-
<data name="configData" xsi:type="string">product_flat</data>
21-
<data name="initialProducts/1" xsi:type="string">configurableProduct::out_of_stock</data>
22-
<data name="initialProducts/0" xsi:type="string">catalogProductSimple::out_of_stock</data>
23-
<data name="productsCount" xsi:type="number">3</data>
24-
<data name="product/data/stock_data" xsi:type="string">In Stock</data>
25-
<constraint name="Magento\Catalog\Test\Constraint\AssertMassProductUpdateSuccessMessage" />
26-
<constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
27-
<constraint name="Magento\Catalog\Test\Constraint\AssertProductsInStock" />
28-
</variation>
2919
</testCase>
3020
</config>

dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Page/Adminhtml/CatalogProductIndex.xml

Lines changed: 0 additions & 14 deletions
This file was deleted.

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

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,16 +48,14 @@
4848
<item name="value" xsi:type="string">40</item>
4949
<item name="dataset" xsi:type="string">price_40</item>
5050
</field>
51-
<field name="product_has_weight" xsi:type="string">This item has weight</field>
52-
<field name="weight" xsi:type="string">30</field>
5351
<field name="status" xsi:type="string">Yes</field>
5452
<field name="visibility" xsi:type="string">Catalog, Search</field>
5553
<field name="tax_class_id" xsi:type="array">
5654
<item name="dataset" xsi:type="string">taxable_goods</item>
5755
</field>
5856
<field name="url_key" xsi:type="string">configurable-product-%isolation%</field>
5957
<field name="configurable_attributes_data" xsi:type="array">
60-
<item name="dataset" xsi:type="string">one_variation</item>
58+
<item name="dataset" xsi:type="string">two_options_with_assigned_product</item>
6159
</field>
6260
<field name="quantity_and_stock_status" xsi:type="array">
6361
<item name="is_in_stock" xsi:type="string">Out of Stock</item>
@@ -70,9 +68,6 @@
7068
<field name="attribute_set_id" xsi:type="array">
7169
<item name="dataset" xsi:type="string">default</item>
7270
</field>
73-
<field name="checkout_data" xsi:type="array">
74-
<item name="dataset" xsi:type="string">configurable_default</item>
75-
</field>
7671
</dataset>
7772

7873
<dataset name="configurable_with_qty_1">
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!--
3+
/**
4+
* Copyright © 2016 Magento. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd">
9+
<testCase name="Magento\Catalog\Test\TestCase\Product\MassProductUpdateTest" summary="Edit Products Using Mass Actions" ticketId="MAGETWO-21128">
10+
<variation name="MassProductUpdateTestVariation2" summary="Update stock data for simple and configurable">
11+
<data name="configData" xsi:type="string">product_flat</data>
12+
<data name="initialProducts/1" xsi:type="string">configurableProduct::out_of_stock</data>
13+
<data name="initialProducts/0" xsi:type="string">catalogProductSimple::out_of_stock</data>
14+
<data name="productsCount" xsi:type="number">2</data>
15+
<data name="product/data/stock_data" xsi:type="string">In Stock</data>
16+
<constraint name="Magento\Catalog\Test\Constraint\AssertMassProductUpdateSuccessMessage" />
17+
<constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
18+
<constraint name="Magento\Catalog\Test\Constraint\AssertProductsInStock" />
19+
</variation>
20+
</testCase>
21+
</config>

0 commit comments

Comments
 (0)