Skip to content

Commit a3f2cde

Browse files
committed
Merge branch 'MAGETWO-97495' of https://github.com/magento-tango/magento2ce into MAGETWO-97495
2 parents 7964e7c + 8bd4b67 commit a3f2cde

File tree

271 files changed

+6007
-1238
lines changed

Some content is hidden

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

271 files changed

+6007
-1238
lines changed

app/code/Magento/Backend/Test/Mftf/Section/AdminMainActionsSection.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
1111
<section name="AdminMainActionsSection">
1212
<element name="save" type="button" selector="#save" timeout="30"/>
13+
<element name="saveAndContinue" type="button" selector="button[id*=save_and_continue]" timeout="30"/>
1314
<element name="delete" type="button" selector="#delete" timeout="30"/>
15+
<element name="add" type="button" selector="#add" timeout="30"/>
1416
</section>
1517
</sections>

app/code/Magento/Backend/Test/Mftf/Section/AdminMessagesSection.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,6 @@
1212
<element name="success" type="text" selector="#messages div.message-success"/>
1313
<element name="nthSuccess" type="text" selector=".message.message-success.success:nth-of-type({{n}})>div" parameterized="true"/>
1414
<element name="error" type="text" selector="#messages div.message-error"/>
15+
<element name="notice" type="text" selector=".message.message-notice.notice"/>
1516
</section>
1617
</sections>

app/code/Magento/Backend/Test/Mftf/Section/AdminSlideOutDialogSection.xml

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<!--
3-
/**
4-
* Copyright © Magento, Inc. All rights reserved.
5-
* See COPYING.txt for license details.
6-
*/
7-
-->
8-
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
98
<sections xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
109
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
1110
<section name="AdminSlideOutDialogSection">

app/code/Magento/Backend/etc/module.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
<module name="Magento_Backend">
1010
<sequence>
1111
<module name="Magento_Directory"/>
12+
<module name="Magento_Theme"/>
1213
</sequence>
1314
</module>
1415
</config>

app/code/Magento/Backend/view/adminhtml/templates/widget/tabshoriz.phtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
<?php $_tabType = (!preg_match('/\s?ajax\s?/', $_tabClass) && $block->getTabUrl($_tab) != '#') ? 'link' : '' ?>
1919
<?php $_tabHref = $block->getTabUrl($_tab) == '#' ? '#' . $block->getTabId($_tab) . '_content' : $block->getTabUrl($_tab) ?>
2020
<li>
21-
<a href="<?= /* @escapeNotVerified */ $_tabHref ?>" id="<?= /* @escapeNotVerified */ $block->getTabId($_tab) ?>" title="<?= /* @escapeNotVerified */ $block->getTabTitle($_tab) ?>" class="<?php $_tabClass ?>" data-tab-type="<?php $_tabType ?>">
21+
<a href="<?= $block->escapeHtmlAttr($_tabHref) ?>" id="<?= $block->escapeHtmlAttr($block->getTabId($_tab)) ?>" title="<?= $block->escapeHtmlAttr($block->getTabTitle($_tab)) ?>" class="<?= $block->escapeHtmlAttr($_tabClass) ?>" data-tab-type="<?= $block->escapeHtmlAttr($_tabType) ?>">
2222
<span>
2323
<span class="changed" title="<?= /* @escapeNotVerified */ __('The information in this tab has been changed.') ?>"></span>
2424
<span class="error" title="<?= /* @escapeNotVerified */ __('This tab contains invalid data. Please resolve this before saving.') ?>"></span>

app/code/Magento/Backend/view/adminhtml/ui_component/design_config_listing.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
*/
77
-->
88
<listing xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
9+
<listingToolbar name="listing_top" />
910
<columns name="design_config_columns">
1011
<column name="theme_theme_id" component="Magento_Ui/js/grid/columns/select" sortOrder="40">
1112
<settings>

app/code/Magento/Braintree/view/adminhtml/templates/form/cc.phtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ $ccType = $block->getInfoData('cc_type');
8383
id="<?= /* @noEscape */ $code ?>_vault"
8484
name="payment[is_active_payment_token_enabler]"
8585
class="admin__control-checkbox"/>
86-
<label class="label" for="<?= /* @noEscape */ $code ?>_vault">
86+
<label class="label admin__field-label" for="<?= /* @noEscape */ $code ?>_vault">
8787
<span><?= $block->escapeHtml(__('Save for later use.')) ?></span>
8888
</label>
8989
</div>
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
namespace Magento\Bundle\Model\Plugin\Frontend;
9+
10+
use Magento\Bundle\Model\Product\Type;
11+
use Magento\Catalog\Model\Product as CatalogProduct;
12+
13+
/**
14+
* Add child identities to product identities on storefront.
15+
*/
16+
class Product
17+
{
18+
/**
19+
* @var Type
20+
*/
21+
private $type;
22+
23+
/**
24+
* @param Type $type
25+
*/
26+
public function __construct(Type $type)
27+
{
28+
$this->type = $type;
29+
}
30+
31+
/**
32+
* Add child identities to product identities
33+
*
34+
* @param CatalogProduct $product
35+
* @param array $identities
36+
* @return array
37+
*/
38+
public function afterGetIdentities(CatalogProduct $product, array $identities): array
39+
{
40+
foreach ($this->type->getChildrenIds($product->getEntityId()) as $childIds) {
41+
foreach ($childIds as $childId) {
42+
$identities[] = CatalogProduct::CACHE_TAG . '_' . $childId;
43+
}
44+
}
45+
46+
return array_unique($identities);
47+
}
48+
}

app/code/Magento/Bundle/Model/Product/Type.php

Lines changed: 11 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use Magento\Framework\EntityManager\MetadataPool;
1414
use Magento\Framework\Pricing\PriceCurrencyInterface;
1515
use Magento\Framework\Serialize\Serializer\Json;
16+
use Magento\Framework\Stdlib\ArrayUtils;
1617

1718
/**
1819
* Bundle Type Model
@@ -160,6 +161,11 @@ class Type extends \Magento\Catalog\Model\Product\Type\AbstractType
160161
*/
161162
private $selectionCollectionFilterApplier;
162163

164+
/**
165+
* @var ArrayUtils
166+
*/
167+
private $arrayUtility;
168+
163169
/**
164170
* @param \Magento\Catalog\Model\Product\Option $catalogProductOption
165171
* @param \Magento\Eav\Model\Config $eavConfig
@@ -185,6 +191,7 @@ class Type extends \Magento\Catalog\Model\Product\Type\AbstractType
185191
* @param \Magento\Framework\Serialize\Serializer\Json $serializer
186192
* @param MetadataPool|null $metadataPool
187193
* @param SelectionCollectionFilterApplier|null $selectionCollectionFilterApplier
194+
* @param ArrayUtils|null $arrayUtility
188195
*
189196
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
190197
*/
@@ -212,7 +219,8 @@ public function __construct(
212219
\Magento\CatalogInventory\Api\StockStateInterface $stockState,
213220
Json $serializer = null,
214221
MetadataPool $metadataPool = null,
215-
SelectionCollectionFilterApplier $selectionCollectionFilterApplier = null
222+
SelectionCollectionFilterApplier $selectionCollectionFilterApplier = null,
223+
ArrayUtils $arrayUtility = null
216224
) {
217225
$this->_catalogProduct = $catalogProduct;
218226
$this->_catalogData = $catalogData;
@@ -232,6 +240,7 @@ public function __construct(
232240

233241
$this->selectionCollectionFilterApplier = $selectionCollectionFilterApplier
234242
?: ObjectManager::getInstance()->get(SelectionCollectionFilterApplier::class);
243+
$this->arrayUtility= $arrayUtility ?: ObjectManager::getInstance()->get(ArrayUtils::class);
235244

236245
parent::__construct(
237246
$catalogProductOption,
@@ -673,7 +682,7 @@ protected function _prepareProduct(\Magento\Framework\DataObject $buyRequest, $p
673682
$options
674683
);
675684

676-
$selectionIds = $this->multiToFlatArray($options);
685+
$selectionIds = array_values($this->arrayUtility->flatten($options));
677686
// If product has not been configured yet then $selections array should be empty
678687
if (!empty($selectionIds)) {
679688
$selections = $this->getSelectionsByIds($selectionIds, $product);
@@ -814,26 +823,6 @@ private function recursiveIntval(array $array)
814823
return $array;
815824
}
816825

817-
/**
818-
* Convert multi dimensional array to flat
819-
*
820-
* @param array $array
821-
* @return int[]
822-
*/
823-
private function multiToFlatArray(array $array)
824-
{
825-
$flatArray = [];
826-
foreach ($array as $value) {
827-
if (is_array($value)) {
828-
$flatArray = array_merge($flatArray, $this->multiToFlatArray($value));
829-
} else {
830-
$flatArray[] = $value;
831-
}
832-
}
833-
834-
return $flatArray;
835-
}
836-
837826
/**
838827
* Retrieve message for specify option(s)
839828
*

app/code/Magento/Bundle/Setup/Patch/Data/UpdateBundleRelatedEntityTytpes.php renamed to app/code/Magento/Bundle/Setup/Patch/Data/UpdateBundleRelatedEntityTypes.php

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,19 @@
66

77
namespace Magento\Bundle\Setup\Patch\Data;
88

9+
use Magento\Catalog\Api\Data\ProductAttributeInterface;
10+
use Magento\Eav\Setup\EavSetup;
911
use Magento\Eav\Setup\EavSetupFactory;
10-
use Magento\Framework\App\ResourceConnection;
1112
use Magento\Framework\Setup\ModuleDataSetupInterface;
1213
use Magento\Framework\Setup\Patch\DataPatchInterface;
1314
use Magento\Framework\Setup\Patch\PatchVersionInterface;
14-
use Magento\Catalog\Api\Data\ProductAttributeInterface;
15-
use Magento\Eav\Setup\EavSetup;
1615

1716
/**
18-
* Class UpdateBundleRelatedEntityTytpes
17+
* Class UpdateBundleRelatedEntityTypes
18+
*
1919
* @package Magento\Bundle\Setup\Patch
2020
*/
21-
class UpdateBundleRelatedEntityTytpes implements DataPatchInterface, PatchVersionInterface
21+
class UpdateBundleRelatedEntityTypes implements DataPatchInterface, PatchVersionInterface
2222
{
2323
/**
2424
* @var ModuleDataSetupInterface
@@ -31,7 +31,7 @@ class UpdateBundleRelatedEntityTytpes implements DataPatchInterface, PatchVersio
3131
private $eavSetupFactory;
3232

3333
/**
34-
* UpdateBundleRelatedEntityTytpes constructor.
34+
* UpdateBundleRelatedEntityTypes constructor.
3535
* @param ModuleDataSetupInterface $moduleDataSetup
3636
* @param EavSetupFactory $eavSetupFactory
3737
*/
@@ -44,7 +44,7 @@ public function __construct(
4444
}
4545

4646
/**
47-
* {@inheritdoc}
47+
* @inheritdoc
4848
*/
4949
public function apply()
5050
{
@@ -177,7 +177,7 @@ private function upgradeShipmentType(EavSetup $eavSetup)
177177
}
178178

179179
/**
180-
* {@inheritdoc}
180+
* @inheritdoc
181181
*/
182182
public static function getDependencies()
183183
{
@@ -187,15 +187,15 @@ public static function getDependencies()
187187
}
188188

189189
/**
190-
* {@inheritdoc}
190+
* @inheritdoc
191191
*/
192192
public static function getVersion()
193193
{
194194
return '2.0.2';
195195
}
196196

197197
/**
198-
* {@inheritdoc}
198+
* @inheritdoc
199199
*/
200200
public function getAliases()
201201
{

app/code/Magento/Bundle/Test/Mftf/ActionGroup/CreateBundleProductActionGroup.xml

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,4 +56,74 @@
5656
<fillField selector="{{AdminProductFormBundleSection.bundleOptionXProductYQuantity(x, '0')}}" userInput="50" stepKey="fillQuantity1"/>
5757
<fillField selector="{{AdminProductFormBundleSection.bundleOptionXProductYQuantity(x, '1')}}" userInput="50" stepKey="fillQuantity2"/>
5858
</actionGroup>
59+
60+
<actionGroup name="addBundleOptionWithOneProduct" extends="addBundleOptionWithTwoProducts">
61+
<remove keyForRemoval="openProductFilters2"/>
62+
<remove keyForRemoval="fillProductSkuFilter2"/>
63+
<remove keyForRemoval="clickApplyFilters2"/>
64+
<remove keyForRemoval="waitForFilteredGridLoad2"/>
65+
<remove keyForRemoval="selectProduct2"/>
66+
<remove keyForRemoval="selectProduct2"/>
67+
<remove keyForRemoval="fillQuantity1"/>
68+
<remove keyForRemoval="fillQuantity2"/>
69+
<fillField selector="{{AdminProductFormBundleSection.bundleOptionXProductYQuantity(x, '0')}}" userInput="1" stepKey="fillQuantity" after="clickAddButton1"/>
70+
</actionGroup>
71+
72+
<actionGroup name="addBundleOptionWithTreeProducts" extends="addBundleOptionWithTwoProducts">
73+
<arguments>
74+
<argument name="prodTreeSku" type="string"/>
75+
</arguments>
76+
<remove keyForRemoval="fillQuantity1"/>
77+
<remove keyForRemoval="fillQuantity2"/>
78+
<conditionalClick selector="{{AdminProductGridFilterSection.clearFilters}}" dependentSelector="{{AdminProductGridFilterSection.clearFilters}}" visible="true" stepKey="clickClearFilters3" after="selectProduct2"/>
79+
<click selector="{{AdminProductGridFilterSection.filters}}" stepKey="openProductFilters3" after="clickClearFilters3"/>
80+
<fillField selector="{{AdminProductGridFilterSection.skuFilter}}" userInput="{{prodTreeSku}}" stepKey="fillProductSkuFilter3" after="openProductFilters3"/>
81+
<click selector="{{AdminProductGridFilterSection.applyFilters}}" stepKey="clickApplyFilters3" after="fillProductSkuFilter3"/>
82+
<waitForElementNotVisible selector="{{AdminProductGridSection.loadingMask}}" stepKey="waitForFilteredGridLoad3" time="30" after="clickApplyFilters3"/>
83+
<checkOption selector="{{AdminAddProductsToOptionPanel.firstCheckbox}}" stepKey="selectProduct3" after="waitForFilteredGridLoad3"/>
84+
<fillField selector="{{AdminProductFormBundleSection.bundleOptionXProductYQuantity(x, '0')}}" userInput="1" stepKey="fillQuantity1" after="clickAddButton1"/>
85+
<fillField selector="{{AdminProductFormBundleSection.bundleOptionXProductYQuantity(x, '1')}}" userInput="1" stepKey="fillQuantity2" after="fillQuantity1"/>
86+
<fillField selector="{{AdminProductFormBundleSection.bundleOptionXProductYQuantity(x, '2')}}" userInput="1" stepKey="fillQuantity3" after="fillQuantity2"/>
87+
</actionGroup>
88+
89+
<actionGroup name="addBundleOptionWithSixProducts" extends="addBundleOptionWithTwoProducts">
90+
<arguments>
91+
<argument name="prodTreeSku" type="string"/>
92+
<argument name="prodFourSku" type="string"/>
93+
<argument name="prodFiveSku" type="string"/>
94+
<argument name="prodSixSku" type="string"/>
95+
</arguments>
96+
<remove keyForRemoval="fillQuantity1"/>
97+
<remove keyForRemoval="fillQuantity2"/>
98+
<conditionalClick selector="{{AdminProductGridFilterSection.clearFilters}}" dependentSelector="{{AdminProductGridFilterSection.clearFilters}}" visible="true" stepKey="clickClearFilters3" after="selectProduct2"/>
99+
<click selector="{{AdminProductGridFilterSection.filters}}" stepKey="openProductFilters3" after="clickClearFilters3"/>
100+
<fillField selector="{{AdminProductGridFilterSection.skuFilter}}" userInput="{{prodTreeSku}}" stepKey="fillProductSkuFilter3" after="openProductFilters3"/>
101+
<click selector="{{AdminProductGridFilterSection.applyFilters}}" stepKey="clickApplyFilters3" after="fillProductSkuFilter3"/>
102+
<waitForElementNotVisible selector="{{AdminProductGridSection.loadingMask}}" stepKey="waitForFilteredGridLoad3" time="30" after="clickApplyFilters3"/>
103+
<checkOption selector="{{AdminAddProductsToOptionPanel.firstCheckbox}}" stepKey="selectProduct3" after="waitForFilteredGridLoad3"/>
104+
<conditionalClick selector="{{AdminProductGridFilterSection.clearFilters}}" dependentSelector="{{AdminProductGridFilterSection.clearFilters}}" visible="true" stepKey="clickClearFilters4" after="selectProduct3"/>
105+
<click selector="{{AdminProductGridFilterSection.filters}}" stepKey="openProductFilters4" after="clickClearFilters4"/>
106+
<fillField selector="{{AdminProductGridFilterSection.skuFilter}}" userInput="{{prodFourSku}}" stepKey="fillProductSkuFilter4" after="openProductFilters4"/>
107+
<click selector="{{AdminProductGridFilterSection.applyFilters}}" stepKey="clickApplyFilters4" after="fillProductSkuFilter4"/>
108+
<waitForElementNotVisible selector="{{AdminProductGridSection.loadingMask}}" stepKey="waitForFilteredGridLoad4" time="30" after="clickApplyFilters4"/>
109+
<checkOption selector="{{AdminAddProductsToOptionPanel.firstCheckbox}}" stepKey="selectProduct4" after="clickApplyFilters4"/>
110+
<conditionalClick selector="{{AdminProductGridFilterSection.clearFilters}}" dependentSelector="{{AdminProductGridFilterSection.clearFilters}}" visible="true" stepKey="clickClearFilters5" after="selectProduct4"/>
111+
<click selector="{{AdminProductGridFilterSection.filters}}" stepKey="openProductFilters5" after="clickClearFilters5"/>
112+
<fillField selector="{{AdminProductGridFilterSection.skuFilter}}" userInput="{{prodFiveSku}}" stepKey="fillProductSkuFilter5" after="openProductFilters5"/>
113+
<click selector="{{AdminProductGridFilterSection.applyFilters}}" stepKey="clickApplyFilters5" after="fillProductSkuFilter5"/>
114+
<waitForElementNotVisible selector="{{AdminProductGridSection.loadingMask}}" stepKey="waitForFilteredGridLoad5" time="30" after="clickApplyFilters5"/>
115+
<checkOption selector="{{AdminAddProductsToOptionPanel.firstCheckbox}}" stepKey="selectProduct5" after="waitForFilteredGridLoad5"/>
116+
<conditionalClick selector="{{AdminProductGridFilterSection.clearFilters}}" dependentSelector="{{AdminProductGridFilterSection.clearFilters}}" visible="true" stepKey="clickClearFilters6" after="selectProduct5"/>
117+
<click selector="{{AdminProductGridFilterSection.filters}}" stepKey="openProductFilters6" after="clickClearFilters6"/>
118+
<fillField selector="{{AdminProductGridFilterSection.skuFilter}}" userInput="{{prodSixSku}}" stepKey="fillProductSkuFilter6" after="openProductFilters6"/>
119+
<click selector="{{AdminProductGridFilterSection.applyFilters}}" stepKey="clickApplyFilters6" after="fillProductSkuFilter6"/>
120+
<waitForElementNotVisible selector="{{AdminProductGridSection.loadingMask}}" stepKey="waitForFilteredGridLoad6" time="30" after="clickApplyFilters6"/>
121+
<checkOption selector="{{AdminAddProductsToOptionPanel.firstCheckbox}}" stepKey="selectProduct6" after="waitForFilteredGridLoad6"/>
122+
<fillField selector="{{AdminProductFormBundleSection.bundleOptionXProductYQuantity(x, '0')}}" userInput="2" stepKey="fillQuantity1" after="clickAddButton1"/>
123+
<fillField selector="{{AdminProductFormBundleSection.bundleOptionXProductYQuantity(x, '1')}}" userInput="2" stepKey="fillQuantity2" after="fillQuantity1"/>
124+
<fillField selector="{{AdminProductFormBundleSection.bundleOptionXProductYQuantity(x, '2')}}" userInput="2" stepKey="fillQuantity3" after="fillQuantity2"/>
125+
<fillField selector="{{AdminProductFormBundleSection.bundleOptionXProductYQuantity(x, '3')}}" userInput="2" stepKey="fillQuantity4" after="fillQuantity3"/>
126+
<fillField selector="{{AdminProductFormBundleSection.bundleOptionXProductYQuantity(x, '4')}}" userInput="2" stepKey="fillQuantity5" after="fillQuantity4"/>
127+
<fillField selector="{{AdminProductFormBundleSection.bundleOptionXProductYQuantity(x, '5')}}" userInput="2" stepKey="fillQuantity6" after="fillQuantity5"/>
128+
</actionGroup>
59129
</actionGroups>

app/code/Magento/Bundle/Test/Mftf/ActionGroup/EnableDisableProductActionGroup.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414
<fillField selector="{{AdminProductFormBundleSection.productSku}}" userInput="{{BundleProduct.sku}}" stepKey="fillProductSku"/>
1515

1616
<!--Trigger SEO drop down-->
17-
<conditionalClick selector="{{AdminProductFormBundleSection.seoDropdown}}" dependentSelector="{{AdminProductFormBundleSection.seoDependent}}" visible="false" stepKey="OpenDropDownIfClosed"/>
17+
<scrollTo selector="{{AdminProductFormBundleSection.seoDropdown}}" stepKey="moveToSEOSection"/>
18+
<conditionalClick selector="{{AdminProductFormBundleSection.seoDropdown}}" dependentSelector="{{AdminProductFormBundleSection.urlKey}}" visible="false" stepKey="openDropDownIfClosed"/>
1819
<waitForPageLoad stepKey="WaitForDropDownSEO"/>
1920

2021
<!--Fill URL input-->
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
9+
<entities xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:DataGenerator/etc/dataProfileSchema.xsd">
11+
<entity name="BundleProductsSummary" type="Quote">
12+
<data key="subtotal">1,968.00</data>
13+
<data key="shipping">5.00</data>
14+
<data key="total">1,973.00</data>
15+
<data key="shippingMethod">Flat Rate - Fixed</data>
16+
</entity>
17+
</entities>

app/code/Magento/Bundle/Test/Mftf/Section/AdminProductFormBundleSection.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
<element name="bundleOptionXProductYQuantity" type="input" selector="[name='bundle_options[bundle_options][{{x}}][bundle_selections][{{y}}][selection_qty]']" parameterized="true"/>
2323
<element name="addProductsToOption" type="button" selector="[data-index='modal_set']" timeout="30"/>
2424
<element name="nthAddProductsToOption" type="button" selector="//tr[{{var}}]//button[@data-index='modal_set']" timeout="30" parameterized="true"/>
25+
<element name="bundlePriceType" type="select" selector="bundle_options[bundle_options][0][bundle_selections][0][selection_price_type]"/>
26+
<element name="bundlePriceValue" type="input" selector="bundle_options[bundle_options][0][bundle_selections][0][selection_price_value]"/>
2527
<!--Select"url Key"InputForm-->
2628
<element name="urlKey" type="input" selector="//input[@name='product[url_key]']" timeout="30"/>
2729
<!--AddSelectedProducts-->

0 commit comments

Comments
 (0)