Skip to content

Commit 3bcbd95

Browse files
🔃 [Magento Community Engineering] Community Contributions - 2.4-develop latest changes
Accepted Community Pull Requests: - #30538: checkout_index_index.xml file code improvement. (by @sanganinamrata) - #30579: Updated string with Static key. (by @ejaz-alam) - #30570: Make sure the depends definition works for custom widgets. Also conve… (by @hostep) - #30530: XSD URN format (by @mage2pratik) - #30317: MFTF: Replace repetitive actions with Action Groups in CheckStaticBlocksTest (by @kate-kyzyma) - #30521: MessageValidator fails on hash arrays that dont have 0 element (by @kandy) - #30322: Fix array to string conversion error when saving row system config with defaults (by @Naitsirch) - #30198: remove spaces caused patching problem in Product/View (by @ilnytskyi) Fixed GitHub Issues: - #30550: [Issue] checkout_index_index.xml file code improvement. (reported by @m2-assistant[bot]) has been fixed in #30538 by @sanganinamrata in 2.4-develop branch Related commits: 1. 9372950 - #30545: String as a key used, might be damaged accidentally. (reported by @iaroslavglodov) has been fixed in #30579 by @ejaz-alam in 2.4-develop branch Related commits: 1. 6970b19 2. fd4a5a7 - #6868: Widget parameter depends does not work on specified block (reported by @LordHansolo) has been fixed in #30570 by @hostep in 2.4-develop branch Related commits: 1. e3789f0 - #7252: Widget node depends with block parameter (reported by @gabs77) has been fixed in #30570 by @hostep in 2.4-develop branch Related commits: 1. e3789f0 - #13316: Widget field depends with type block KO (reported by @Selven99) has been fixed in #30570 by @hostep in 2.4-develop branch Related commits: 1. e3789f0 - #30552: [Issue] XSD URN format (reported by @m2-assistant[bot]) has been fixed in #30530 by @mage2pratik in 2.4-develop branch Related commits: 1. f4d2ff8 2. e052649 - #30561: [Issue] MFTF: Replace repetitive actions with Action Groups in CheckStaticBlocksTest (reported by @m2-assistant[bot]) has been fixed in #30317 by @kate-kyzyma in 2.4-develop branch Related commits: 1. b1de332 2. 9418e36 3. 00ac9ca 4. 3132e0a - #30563: [Issue] MessageValidator fails on hash arrays that dont have 0 element (reported by @m2-assistant[bot]) has been fixed in #30521 by @kandy in 2.4-develop branch Related commits: 1. d0249ee - #30314: [Config] Array to string conversion error when saving row system config with defaults (reported by @Naitsirch) has been fixed in #30322 by @Naitsirch in 2.4-develop branch Related commits: 1. c0a9c42 - #30601: [Issue] remove spaces caused patching problem in Product/View (reported by @m2-assistant[bot]) has been fixed in #30198 by @ilnytskyi in 2.4-develop branch Related commits: 1. eac6ba2
2 parents 9a5573b + a8a0068 commit 3bcbd95

File tree

18 files changed

+221
-54
lines changed

18 files changed

+221
-54
lines changed

app/code/Magento/Catalog/Helper/Product/View.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ public function initProductLayout(ResultPage $resultPage, $product, $params = nu
193193
$resultPage->addPageLayoutHandles(['id' => $product->getId(), 'sku' => $urlSafeSku], $handle);
194194
}
195195
}
196-
196+
197197
$resultPage->addPageLayoutHandles(['type' => $product->getTypeId()], null, false);
198198
$resultPage->addPageLayoutHandles(['id' => $product->getId(), 'sku' => $urlSafeSku]);
199199

app/code/Magento/Checkout/view/frontend/layout/checkout_index_index.xml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,10 @@
3232
</item>
3333
<item name="children" xsi:type="array">
3434
<item name="errors" xsi:type="array">
35-
<item name="sortOrder" xsi:type="string">0</item>
3635
<item name="component" xsi:type="string">Magento_Ui/js/view/messages</item>
3736
<item name="displayArea" xsi:type="string">messages</item>
3837
</item>
3938
<item name="authentication" xsi:type="array">
40-
<item name="sortOrder" xsi:type="string">1</item>
4139
<item name="component" xsi:type="string">Magento_Checkout/js/view/authentication</item>
4240
<item name="displayArea" xsi:type="string">authentication</item>
4341
<item name="children" xsi:type="array">
@@ -50,7 +48,6 @@
5048
</item>
5149
</item>
5250
<item name="progressBar" xsi:type="array">
53-
<item name="sortOrder" xsi:type="string">0</item>
5451
<item name="component" xsi:type="string">Magento_Checkout/js/view/progress-bar</item>
5552
<item name="displayArea" xsi:type="string">progressBar</item>
5653
<item name="config" xsi:type="array">
@@ -61,7 +58,6 @@
6158
</item>
6259
</item>
6360
<item name="estimation" xsi:type="array">
64-
<item name="sortOrder" xsi:type="string">10</item>
6561
<item name="component" xsi:type="string">Magento_Checkout/js/view/estimation</item>
6662
<item name="displayArea" xsi:type="string">estimation</item>
6763
<item name="config" xsi:type="array">
@@ -335,7 +331,6 @@
335331
</item>
336332
</item>
337333
<item name="sidebar" xsi:type="array">
338-
<item name="sortOrder" xsi:type="string">50</item>
339334
<item name="component" xsi:type="string">Magento_Checkout/js/view/sidebar</item>
340335
<item name="displayArea" xsi:type="string">sidebar</item>
341336
<item name="config" xsi:type="array">
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
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+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
11+
<actionGroup name="AdminOpenCmsBlocksGridActionGroup">
12+
<annotations>
13+
<description>Goes to the Cms Blocks grid page.</description>
14+
</annotations>
15+
<amOnPage url="{{CmsBlocksPage.url}}" stepKey="navigateToCMSBlocksGrid"/>
16+
<waitForPageLoad stepKey="waitForPageLoad"/>
17+
</actionGroup>
18+
</actionGroups>
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
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+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
11+
<actionGroup name="AdminPressAddNewCmsBlockButtonActionGroup">
12+
<annotations>
13+
<description>Press Add new block button on Cms Blocks gid page</description>
14+
</annotations>
15+
16+
<click selector="{{BlockPageActionsSection.addNewBlock}}" stepKey="clickOnAddNewBlockButton"/>
17+
<waitForPageLoad stepKey="waitForPageLoad"/>
18+
</actionGroup>
19+
</actionGroups>
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
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+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
11+
<actionGroup name="AdminPressSaveCmsBlockButtonActionGroup">
12+
<annotations>
13+
<description>Press save button on Cms Block page</description>
14+
</annotations>
15+
16+
<click selector="{{BlockNewPagePageActionsSection.saveBlock}}" stepKey="clickOnSaveBlock"/>
17+
<waitForPageLoad stepKey="waitForPageLoad"/>
18+
</actionGroup>
19+
</actionGroups>
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
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+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
11+
<actionGroup name="AdminSelectCMSBlockStoreViewActionGroup">
12+
<arguments>
13+
<argument name="storeViewName" type="string"/>
14+
</arguments>
15+
16+
<selectOption selector="{{BlockNewPageBasicFieldsSection.storeView}}" userInput="{{storeViewName}}" stepKey="selectStoreView"/>
17+
</actionGroup>
18+
</actionGroups>
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 © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
9+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
11+
<actionGroup name="AssertAdminProperUrlIsShownActionGroup">
12+
<annotations>
13+
<description>Assert current page has proper URL</description>
14+
</annotations>
15+
<arguments>
16+
<argument name="target_path" type="string"/>
17+
</arguments>
18+
19+
<seeInCurrentUrl url="{{target_path}}" stepKey="seePropertUrl"/>
20+
</actionGroup>
21+
</actionGroups>

app/code/Magento/Cms/Test/Mftf/Test/CheckStaticBlocksTest.xml

Lines changed: 44 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@
2121
</annotations>
2222

2323
<before>
24-
<actionGroup ref="AdminLoginActionGroup" stepKey="LoginAsAdmin"/>
25-
24+
<actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/>
2625
<actionGroup ref="AdminCreateWebsiteActionGroup" stepKey="createAdditionalWebsite">
2726
<argument name="newWebsiteName" value="{{customWebsite.name}}"/>
2827
<argument name="websiteCode" value="{{customWebsite.code}}"/>
@@ -39,49 +38,60 @@
3938
</before>
4039

4140
<after>
42-
<actionGroup ref="AdminDeleteWebsiteActionGroup" stepKey="DeleteWebsite">
41+
<actionGroup ref="AdminDeleteWebsiteActionGroup" stepKey="deleteWebsite">
4342
<argument name="websiteName" value="{{customWebsite.name}}"/>
4443
</actionGroup>
45-
<actionGroup ref="DeleteCMSBlockActionGroup" stepKey="DeleteCMSBlockActionGroup"/>
44+
<actionGroup ref="DeleteCMSBlockActionGroup" stepKey="deleteCMSBlock"/>
45+
<actionGroup ref="DeleteCMSBlockActionGroup" stepKey="deleteSecondCMSBlock"/>
4646
<actionGroup ref="AdminClearFiltersActionGroup" stepKey="clearFilters"/>
47+
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
4748
</after>
4849

4950
<!--Go to Cms blocks page-->
50-
<amOnPage url="{{CmsBlocksPage.url}}" stepKey="navigateToCMSPagesGrid"/>
51-
<waitForPageLoad stepKey="waitForPageLoad1"/>
52-
<seeInCurrentUrl url="cms/block/" stepKey="VerifyPageIsOpened"/>
51+
<actionGroup ref="AdminOpenCmsBlocksGridActionGroup" stepKey="navigateToCMSBlocksGrid"/>
52+
<actionGroup ref="AssertAdminProperUrlIsShownActionGroup" stepKey="verifyPageIsOpened">
53+
<argument name="target_path" value="cms/block/"/>
54+
</actionGroup>
55+
5356
<!--Click to create new block-->
54-
<click selector="{{BlockPageActionsSection.addNewBlock}}" stepKey="ClickToAddNewBlock"/>
55-
<waitForPageLoad stepKey="waitForPageLoad2"/>
56-
<seeInCurrentUrl url="cms/block/new" stepKey="VerifyNewBlockPageIsOpened"/>
57+
<actionGroup ref="AdminPressAddNewCmsBlockButtonActionGroup" stepKey="clickOnAddNewBlockButton"/>
58+
<actionGroup ref="AssertAdminProperUrlIsShownActionGroup" stepKey="verifyNewCmsBlockPageIsOpened">
59+
<argument name="target_path" value="cms/block/new"/>
60+
</actionGroup>
5761
<actionGroup ref="FillOutBlockContent" stepKey="FillOutBlockContent"/>
58-
<click selector="{{BlockNewPagePageActionsSection.saveBlock}}" stepKey="ClickToSaveBlock"/>
59-
<waitForPageLoad stepKey="waitForPageLoad3"/>
60-
<see userInput="You saved the block." stepKey="VerifyBlockIsSaved"/>
61-
<!--Click to go back and add new block-->
62-
<click selector="{{BlockNewPagePageActionsSection.back}}" stepKey="ClickToGoBack"/>
63-
<waitForPageLoad stepKey="waitForPageLoad4"/>
64-
<click selector="{{BlockPageActionsSection.addNewBlock}}" stepKey="ClickToAddNewBlock1"/>
65-
<waitForPageLoad stepKey="waitForPageLoad5"/>
66-
<seeInCurrentUrl url="cms/block/new" stepKey="VerifyNewBlockPageIsOpened1"/>
62+
<actionGroup ref="AdminPressSaveCmsBlockButtonActionGroup" stepKey="saveCmsBlock"/>
63+
<actionGroup ref="AssertMessageInAdminPanelActionGroup" stepKey="assertSuccessMessage">
64+
<argument name="message" value="You saved the block."/>
65+
</actionGroup>
66+
6767
<!--Add new BLock with the same data-->
68+
<actionGroup ref="AdminOpenCmsBlocksGridActionGroup" stepKey="openCmsBlocksGrid"/>
69+
<actionGroup ref="AdminPressAddNewCmsBlockButtonActionGroup" stepKey="pressAddNewBlockButton"/>
70+
<actionGroup ref="AssertAdminProperUrlIsShownActionGroup" stepKey="assertNewCmsBlockPageIsOpened">
71+
<argument name="target_path" value="cms/block/new"/>
72+
</actionGroup>
6873
<actionGroup ref="FillOutBlockContent" stepKey="FillOutBlockContent1"/>
69-
<click selector="{{BlockNewPagePageActionsSection.saveBlock}}" stepKey="ClickToSaveBlock1"/>
70-
<waitForPageLoad stepKey="waitForPageLoad6"/>
71-
<!--Verify that corresponding message is displayed-->
72-
<see userInput="A block identifier with the same properties already exists in the selected store." stepKey="VerifyBlockIsSaved1"/>
73-
<!--Click to go back and add new block-->
74-
<click selector="{{BlockNewPagePageActionsSection.back}}" stepKey="ClickToGoBack1"/>
75-
<waitForPageLoad stepKey="waitForPageLoad7"/>
76-
<click selector="{{BlockPageActionsSection.addNewBlock}}" stepKey="ClickToAddNewBlock2"/>
77-
<waitForPageLoad stepKey="waitForPageLoad8"/>
78-
<seeInCurrentUrl url="cms/block/new" stepKey="VerifyNewBlockPageIsOpened2"/>
74+
<actionGroup ref="AdminPressSaveCmsBlockButtonActionGroup" stepKey="clickOnSaveButton"/>
75+
<actionGroup ref="AssertMessageInAdminPanelActionGroup" stepKey="assertErrorMessage">
76+
<argument name="messageType" value="error"/>
77+
<argument name="message" value="A block identifier with the same properties already exists in the selected store."/>
78+
</actionGroup>
79+
7980
<!--Add new BLock with the same data for another store view-->
81+
<actionGroup ref="AdminOpenCmsBlocksGridActionGroup" stepKey="goToCmsBlocksGrid"/>
82+
<actionGroup ref="AdminPressAddNewCmsBlockButtonActionGroup" stepKey="clickToAddNewButton"/>
83+
<actionGroup ref="AssertAdminProperUrlIsShownActionGroup" stepKey="confirmNewCmsBlockPageIsOpened">
84+
<argument name="target_path" value="cms/block/new"/>
85+
</actionGroup>
8086
<actionGroup ref="FillOutBlockContent" stepKey="FillOutBlockContent2"/>
81-
<selectOption selector="{{BlockNewPageBasicFieldsSection.storeView}}" userInput="Default Store View" stepKey="selectDefaultStoreView" />
82-
<selectOption selector="{{BlockNewPageBasicFieldsSection.storeView}}" userInput="{{customStore.name}}" stepKey="selectSecondStoreView1" />
83-
<click selector="{{BlockNewPagePageActionsSection.saveBlock}}" stepKey="ClickToSaveBlock2"/>
84-
<waitForPageLoad stepKey="waitForPageLoad9"/>
85-
<see userInput="You saved the block." stepKey="VerifyBlockIsSaved2"/>
87+
88+
<actionGroup ref="AdminSelectCMSBlockStoreViewActionGroup" stepKey="selectCustomStoreView">
89+
<argument name="storeViewName" value="{{customStore.name}}"/>
90+
</actionGroup>
91+
92+
<actionGroup ref="AdminPressSaveCmsBlockButtonActionGroup" stepKey="saveNewCmsBlock"/>
93+
<actionGroup ref="AssertMessageInAdminPanelActionGroup" stepKey="verifyBlockIsSaved">
94+
<argument name="message" value="You saved the block."/>
95+
</actionGroup>
8696
</test>
8797
</tests>

app/code/Magento/Config/Model/Config/Backend/Serialized.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
*/
66
namespace Magento\Config\Model\Config\Backend;
77

8+
use Magento\Framework\App\Config\ScopeConfigInterface;
89
use Magento\Framework\App\ObjectManager;
910
use Magento\Framework\Serialize\Serializer\Json;
1011

@@ -84,4 +85,26 @@ public function beforeSave()
8485
parent::beforeSave();
8586
return $this;
8687
}
88+
89+
/**
90+
* Get old value from existing config
91+
*
92+
* @return string
93+
*/
94+
public function getOldValue()
95+
{
96+
// If the value is retrieved from defaults defined in config.xml
97+
// it may be returned as an array.
98+
$value = $this->_config->getValue(
99+
$this->getPath(),
100+
$this->getScope() ?: ScopeConfigInterface::SCOPE_TYPE_DEFAULT,
101+
$this->getScopeCode()
102+
);
103+
104+
if (is_array($value)) {
105+
return $this->serializer->serialize($value);
106+
}
107+
108+
return (string)$value;
109+
}
87110
}

app/code/Magento/Config/Test/Unit/Model/Config/Backend/SerializedTest.php

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
namespace Magento\Config\Test\Unit\Model\Config\Backend;
99

1010
use Magento\Config\Model\Config\Backend\Serialized;
11+
use Magento\Framework\App\Config\ScopeConfigInterface;
1112
use Magento\Framework\Event\ManagerInterface;
1213
use Magento\Framework\Model\Context;
1314
use Magento\Framework\Serialize\Serializer\Json;
@@ -27,11 +28,14 @@ class SerializedTest extends TestCase
2728
/** @var LoggerInterface|MockObject */
2829
private $loggerMock;
2930

31+
private $scopeConfigMock;
32+
3033
protected function setUp(): void
3134
{
3235
$objectManager = new ObjectManager($this);
3336
$this->serializerMock = $this->createMock(Json::class);
3437
$this->loggerMock = $this->getMockForAbstractClass(LoggerInterface::class);
38+
$this->scopeConfigMock = $this->createMock(ScopeConfigInterface::class);
3539
$contextMock = $this->createMock(Context::class);
3640
$eventManagerMock = $this->getMockForAbstractClass(ManagerInterface::class);
3741
$contextMock->method('getEventDispatcher')
@@ -43,6 +47,7 @@ protected function setUp(): void
4347
[
4448
'serializer' => $this->serializerMock,
4549
'context' => $contextMock,
50+
'config' => $this->scopeConfigMock,
4651
]
4752
);
4853
}
@@ -135,4 +140,29 @@ public function beforeSaveDataProvider()
135140
]
136141
];
137142
}
143+
144+
/**
145+
* If a config value is not available in core_confid_data the defaults are
146+
* loaded from the config.xml file. Those defaults may be arrays.
147+
* The Serialized backend model has to override its parent
148+
* getOldValue function, to prevent an array to string conversion error
149+
* and serialize those values.
150+
*/
151+
public function testGetOldValueWithNonScalarDefaultValue(): void
152+
{
153+
$value = [
154+
['foo' => '1', 'bar' => '2'],
155+
];
156+
$serializedValue = \json_encode($value);
157+
158+
$this->scopeConfigMock->method('getValue')->willReturn($value);
159+
$this->serializerMock->method('serialize')->willReturn($serializedValue);
160+
161+
$this->serializedConfig->setData('value', $serializedValue);
162+
163+
$oldValue = $this->serializedConfig->getOldValue();
164+
165+
$this->assertIsString($oldValue, 'Default value from the config is not serialized.');
166+
$this->assertSame($serializedValue, $oldValue);
167+
}
138168
}

app/code/Magento/Quote/Model/Quote/Address.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,8 @@ class Address extends AbstractAddress implements
139139
const ADDRESS_TYPE_BILLING = 'billing';
140140

141141
const ADDRESS_TYPE_SHIPPING = 'shipping';
142+
143+
private const CACHED_ITEMS_ALL = 'cached_items_all';
142144

143145
/**
144146
* Prefix of model events
@@ -636,8 +638,7 @@ public function getItemsCollection()
636638
public function getAllItems()
637639
{
638640
// We calculate item list once and cache it in three arrays - all items
639-
$key = 'cached_items_all';
640-
if (!$this->hasData($key)) {
641+
if (!$this->hasData(self::CACHED_ITEMS_ALL)) {
641642
$quoteItems = $this->getQuote()->getItemsCollection();
642643
$addressItems = $this->getItemsCollection();
643644

@@ -676,10 +677,10 @@ public function getAllItems()
676677
}
677678

678679
// Cache calculated lists
679-
$this->setData('cached_items_all', $items);
680+
$this->setData(self::CACHED_ITEMS_ALL, $items);
680681
}
681682

682-
$items = $this->getData($key);
683+
$items = $this->getData(self::CACHED_ITEMS_ALL);
683684

684685
return $items;
685686
}

dev/tests/api-functional/_files/Magento/TestModuleDefaultHydrator/etc/extension_attributes.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* See COPYING.txt for license details.
66
*/
77
-->
8-
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Api/etc/extension_attributes.xsd">
8+
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Api/etc/extension_attributes.xsd">
99
<extension_attributes for="Magento\Customer\Api\Data\CustomerInterface">
1010
<attribute code="extension_attribute" type="Magento\TestModuleDefaultHydrator\Api\Data\ExtensionAttributeInterface" />
1111
</extension_attributes>

dev/tests/api-functional/_files/Magento/TestModuleDefaultHydrator/etc/module.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* See COPYING.txt for license details.
66
*/
77
-->
8-
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
8+
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
99
<module name="Magento_TestModuleDefaultHydrator">
1010
</module>
1111
</config>

0 commit comments

Comments
 (0)