Skip to content

Commit 4f2cade

Browse files
author
Cari Spruiell
committed
Merge remote-tracking branch 'mainline/develop' into cms-team-1-delivery
# Conflicts: # app/code/Magento/PageBuilder/view/base/pagebuilder/content_type/column.xml
2 parents ed574c9 + bbfb539 commit 4f2cade

File tree

81 files changed

+1331
-1409
lines changed

Some content is hidden

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

81 files changed

+1331
-1409
lines changed

app/code/Magento/PageBuilder/Model/Config/ContentType/AdditionalData/Parser.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public function __construct(
3030
}
3131

3232
/**
33-
* Convert and evaluate additional data from arguments nodes to array
33+
* Convert and evaluate additional data from item nodes to array
3434
*
3535
* @param array $additionalData
3636
* @return array

app/code/Magento/PageBuilder/Model/Config/ContentType/Converter.php

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,10 @@ private function convertTypes(\DOMDocument $source): array
5555
/** @var \DOMNode $contentType */
5656
foreach ($contentTypes as $contentType) {
5757
$name = $contentType->attributes->getNamedItem('name')->nodeValue;
58+
/** @var \DOMElement $attributeValue */
59+
foreach ($contentType->attributes as $attributeName => $attributeValue) {
60+
$typesData[$name][$attributeName] = $attributeValue->nodeValue;
61+
}
5862
/** @var \DOMElement $childNode */
5963
foreach ($contentType->childNodes as $childNode) {
6064
if ($this->isConfigNode($childNode)) {
@@ -113,14 +117,6 @@ private function convertAppearanceData(\DOMElement $appearanceNode): array
113117
$appearanceData,
114118
$this->convertAppearanceProperties($appearanceNode)
115119
);
116-
$previewTemplateNode = $appearanceNode->getElementsByTagName('preview_template')->item(0);
117-
if ($previewTemplateNode) {
118-
$appearanceData['preview_template'] = $previewTemplateNode->nodeValue;
119-
}
120-
$renderTemplateNode = $appearanceNode->getElementsByTagName('render_template')->item(0);
121-
if ($renderTemplateNode) {
122-
$appearanceData['render_template'] = $renderTemplateNode->nodeValue;
123-
}
124120
$readerNode = $appearanceNode->getElementsByTagName('reader')->item(0);
125121
if ($readerNode && $readerNode->nodeValue) {
126122
$appearanceData['readers'] = [$readerNode->nodeValue];
@@ -131,6 +127,9 @@ private function convertAppearanceData(\DOMElement $appearanceNode): array
131127
if ($dataMappingNode) {
132128
$appearanceData['data_mapping'] = $this->convertDataMapping($dataMappingNode);
133129
}
130+
$appearanceData['preview_template'] = $this->getAttributeValue($appearanceNode, 'preview_template');
131+
$appearanceData['render_template'] = $this->getAttributeValue($appearanceNode, 'render_template');
132+
$appearanceData['reader'] = $this->getAttributeValue($appearanceNode, 'reader');
134133
$appearanceData['default'] = $this->getAttributeValue($appearanceNode, 'default');
135134
$formNode = $appearanceNode->getElementsByTagName('form')->item(0);
136135
if ($formNode && $formNode->nodeValue) {
@@ -233,22 +232,23 @@ private function convertDataMapping(\DOMElement $childNode): array
233232
private function convertAdditionalData(\DOMElement $elementNode): array
234233
{
235234
$additionalData = [];
236-
$xmlArgumentsNodes = $elementNode->getElementsByTagName('arguments');
235+
$xmlItemNodes = $elementNode->childNodes;
237236

238-
if (!$xmlArgumentsNodes->length) {
237+
if (!$xmlItemNodes->length) {
239238
return $additionalData;
240239
}
241240

242-
/** @var $xmlArgumentsNode \DOMElement */
243-
foreach ($xmlArgumentsNodes as $xmlArgumentsNode) {
244-
$parsedArgumentsData = $this->parser->parse($xmlArgumentsNode);
245-
$argumentName = $xmlArgumentsNode->attributes->getNamedItem('name')->nodeValue;
241+
/** @var $xmlItemNode \DOMElement */
242+
foreach ($xmlItemNodes as $xmlItemNode) {
243+
if ($xmlItemNode->nodeType == XML_ELEMENT_NODE && $xmlItemNode->nodeName === 'item') {
244+
$parsedItemData = $this->parser->parse($xmlItemNode);
245+
$itemName = $xmlItemNode->attributes->getNamedItem('name')->nodeValue;
246246

247-
if (!isset($additionalData[$argumentName])) {
248-
$additionalData[$argumentName] = [];
247+
if (!isset($additionalData[$itemName])) {
248+
$additionalData[$itemName] = [];
249+
}
250+
$additionalData[$itemName] += $parsedItemData;
249251
}
250-
251-
$additionalData[$argumentName] += $parsedArgumentsData;
252252
}
253253

254254
return $additionalData;

app/code/Magento/PageBuilder/Model/Config/ContentType/Reader.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class Reader extends \Magento\Framework\Config\Reader\Filesystem
2929
=> 'name',
3030
self::TYPE_PATH . '/appearances/appearance/data_mapping/elements/element/style_properties/static_property'
3131
=> 'source',
32-
self::TYPE_PATH . '/additional_data/arguments' => 'name',
32+
self::TYPE_PATH . '/additional_data/item' => 'name',
3333
self::TYPE_PATH . '/appearances/appearance/data_mapping/elements/element/attributes/attribute' => 'name',
3434
self::TYPE_PATH . '/appearances/appearance/data_mapping/elements/element/attributes/complex_attribute'
3535
=> 'name',

app/code/Magento/PageBuilder/Model/Config/Group/Converter.php

Lines changed: 3 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,10 @@ private function convertGroups(\DOMDocument $source): array
3939
foreach ($groups->item(0)->childNodes as $group) {
4040
if ($group->nodeType == XML_ELEMENT_NODE && $group->tagName == 'group') {
4141
$name = $group->attributes->getNamedItem('name')->nodeValue;
42-
/** @var \DOMElement $childNode */
43-
foreach ($group->childNodes as $childNode) {
44-
if ($this->isConfigNode($childNode)) {
45-
$groupsData[$name][$childNode->nodeName] = $childNode->nodeValue;
46-
}
42+
/** @var \DOMElement $attributeValue */
43+
foreach ($group->attributes as $attributeName => $attributeValue) {
44+
$groupsData[$name][$attributeName] = $attributeValue->nodeValue;
4745
}
48-
$groupsData[$name]['sortOrder'] = $group->hasAttribute('sortOrder')
49-
? $group->attributes->getNamedItem('sortOrder')->nodeValue
50-
: null;
5146
}
5247
}
5348
uasort($groupsData, function ($firstElement, $secondElement) {
@@ -56,18 +51,4 @@ private function convertGroups(\DOMDocument $source): array
5651

5752
return $groupsData;
5853
}
59-
60-
/**
61-
* Check if node is configuration node
62-
*
63-
* @param \DOMNode $node
64-
* @return bool
65-
*/
66-
private function isConfigNode(\DOMNode $node): bool
67-
{
68-
return $node->nodeType === XML_ELEMENT_NODE
69-
|| ($node->nodeType === XML_CDATA_SECTION_NODE
70-
|| $node->nodeType === XML_TEXT_NODE
71-
&& trim($node->nodeValue) !== '');
72-
}
7354
}

app/code/Magento/PageBuilder/Test/Mftf/Test/AdminPageBuilderBackgroundFormAttributeTests.xml

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,14 @@
109109
<actionGroup ref="seeOptionIsSelectedSlideOutProperty" stepKey="validateBackgroundAttachment2">
110110
<argument name="property" value="PageBuilderBackgroundAttachment_Default"/>
111111
</actionGroup>
112+
<!-- Fill URL field so it will show on storefront -->
113+
<actionGroup ref="fillSlideOutPanelLinkUrlField" stepKey="enterBannerLinkUrl">
114+
<argument name="property" value="PageBuilderBannerLinkUrlProperty"/>
115+
<argument name="selection" value="{{ExternalLink.url}}"/>
116+
<argument name="newTab" value="PageBuilderBannerNewTabProperty"/>
117+
</actionGroup>
118+
<actionGroup ref="saveEditPanelSettings" stepKey="saveEditPanelSettings2"/>
119+
<actionGroup ref="saveAndContinueEditCmsPage" stepKey="saveAndContinueEditCmsPage2"/>
112120
<!-- Validate Storefront -->
113121
<comment userInput="Validate Storefront" stepKey="commentValidateStorefront"/>
114122
<actionGroup ref="navigateToStoreFront" stepKey="navigateToStoreFront">
@@ -339,6 +347,12 @@
339347
<actionGroup ref="fillSlideOutPanelFieldGeneral" stepKey="enterBackgroundColor">
340348
<argument name="property" value="PageBuilderBackgroundColor_Empty"/>
341349
</actionGroup>
350+
<!-- Fill URL field so it will show on storefront -->
351+
<actionGroup ref="fillSlideOutPanelLinkUrlField" stepKey="enterBannerLinkUrl">
352+
<argument name="property" value="PageBuilderBannerLinkUrlProperty"/>
353+
<argument name="selection" value="{{ExternalLink.url}}"/>
354+
<argument name="newTab" value="PageBuilderBannerNewTabProperty"/>
355+
</actionGroup>
342356
<actionGroup ref="saveEditPanelSettings" stepKey="saveEditPanelSettings"/>
343357
<!-- Stage: Check No Background Color -->
344358
<comment userInput="Stage: Check No Background Color" stepKey="commentStageCheck"/>
@@ -1480,6 +1494,12 @@
14801494
<actionGroup ref="attachFileSlideOutProperty" stepKey="attachFileSlideOutProperty">
14811495
<argument name="property" value="PageBuilderBackgroundMobileImage_JPG"/>
14821496
</actionGroup>
1497+
<!-- Fill URL field so it will show on storefront -->
1498+
<actionGroup ref="fillSlideOutPanelLinkUrlField" stepKey="enterBannerLinkUrl">
1499+
<argument name="property" value="PageBuilderBannerLinkUrlProperty"/>
1500+
<argument name="selection" value="{{ExternalLink.url}}"/>
1501+
<argument name="newTab" value="PageBuilderBannerNewTabProperty"/>
1502+
</actionGroup>
14831503
<actionGroup ref="saveEditPanelSettings" stepKey="saveEditPanelSettings"/>
14841504
<!-- Stage: Check No Mobile Background Image -->
14851505
<comment userInput="Stage: Check No Mobile Background Image" stepKey="commentStageCheck"/>
@@ -1564,6 +1584,12 @@
15641584
<argument name="Image" value="PageBuilderBackgroundMobileImageRoot_JPG"/>
15651585
</actionGroup>
15661586
<actionGroup ref="saveImage" stepKey="saveImage"/>
1587+
<!-- Fill URL field so it will show on storefront -->
1588+
<actionGroup ref="fillSlideOutPanelLinkUrlField" stepKey="enterBannerLinkUrl">
1589+
<argument name="property" value="PageBuilderBannerLinkUrlProperty"/>
1590+
<argument name="selection" value="{{ExternalLink.url}}"/>
1591+
<argument name="newTab" value="PageBuilderBannerNewTabProperty"/>
1592+
</actionGroup>
15671593
<actionGroup ref="saveEditPanelSettings" stepKey="saveEditPanelSettings"/>
15681594
<!-- Stage:Check No Mobile Background Image -->
15691595
<comment userInput="Stage:Check No Mobile Background Image" stepKey="commentStageCheck"/>
@@ -1641,6 +1667,12 @@
16411667
<actionGroup ref="attachFileSlideOutProperty" stepKey="attachFileSlideOutProperty">
16421668
<argument name="property" value="PageBuilderBackgroundMobileImage_GIF"/>
16431669
</actionGroup>
1670+
<!-- Fill URL field so it will show on storefront -->
1671+
<actionGroup ref="fillSlideOutPanelLinkUrlField" stepKey="enterBannerLinkUrl">
1672+
<argument name="property" value="PageBuilderBannerLinkUrlProperty"/>
1673+
<argument name="selection" value="{{ExternalLink.url}}"/>
1674+
<argument name="newTab" value="PageBuilderBannerNewTabProperty"/>
1675+
</actionGroup>
16441676
<actionGroup ref="saveEditPanelSettings" stepKey="saveEditPanelSettings"/>
16451677
<!-- Stage:Check No Mobile Background Image -->
16461678
<comment userInput="Stage:Check No Mobile Background Image" stepKey="commentStageCheck"/>
@@ -1718,6 +1750,12 @@
17181750
<actionGroup ref="attachFileSlideOutProperty" stepKey="attachFileSlideOutProperty">
17191751
<argument name="property" value="PageBuilderBackgroundMobileImage_PNG"/>
17201752
</actionGroup>
1753+
<!-- Fill URL field so it will show on storefront -->
1754+
<actionGroup ref="fillSlideOutPanelLinkUrlField" stepKey="enterBannerLinkUrl">
1755+
<argument name="property" value="PageBuilderBannerLinkUrlProperty"/>
1756+
<argument name="selection" value="{{ExternalLink.url}}"/>
1757+
<argument name="newTab" value="PageBuilderBannerNewTabProperty"/>
1758+
</actionGroup>
17211759
<actionGroup ref="saveEditPanelSettings" stepKey="saveEditPanelSettings"/>
17221760
<!-- Stage:Check No Mobile Background Image -->
17231761
<comment userInput="Stage:Check No Mobile Background Image" stepKey="commentStageCheck"/>
@@ -1795,6 +1833,12 @@
17951833
<actionGroup ref="attachFileSlideOutProperty" stepKey="attachFileSlideOutProperty">
17961834
<argument name="property" value="PageBuilderBackgroundMobileImage_SpecialCharacters"/>
17971835
</actionGroup>
1836+
<!-- Fill URL field so it will show on storefront -->
1837+
<actionGroup ref="fillSlideOutPanelLinkUrlField" stepKey="enterBannerLinkUrl">
1838+
<argument name="property" value="PageBuilderBannerLinkUrlProperty"/>
1839+
<argument name="selection" value="{{ExternalLink.url}}"/>
1840+
<argument name="newTab" value="PageBuilderBannerNewTabProperty"/>
1841+
</actionGroup>
17981842
<actionGroup ref="saveEditPanelSettings" stepKey="saveEditPanelSettings"/>
17991843
<!-- Stage:Check No Mobile Background Image -->
18001844
<comment userInput="Stage:Check No Mobile Background Image" stepKey="commentStageCheck"/>
@@ -1889,6 +1933,12 @@
18891933
<actionGroup ref="attachFileSlideOutProperty" stepKey="attachValidFileOnSlideOut">
18901934
<argument name="property" value="PageBuilderBackgroundMobileImage_JPG"/>
18911935
</actionGroup>
1936+
<!-- Fill URL field so it will show on storefront -->
1937+
<actionGroup ref="fillSlideOutPanelLinkUrlField" stepKey="enterBannerLinkUrl">
1938+
<argument name="property" value="PageBuilderBannerLinkUrlProperty"/>
1939+
<argument name="selection" value="{{ExternalLink.url}}"/>
1940+
<argument name="newTab" value="PageBuilderBannerNewTabProperty"/>
1941+
</actionGroup>
18921942
<actionGroup ref="saveEditPanelSettings" stepKey="saveEditPanelSettings"/>
18931943
<!-- Stage:Check No Background Mobile Image -->
18941944
<comment userInput="Stage:Check No Background Mobile Image" stepKey="commentStageCheck2"/>
@@ -1967,6 +2017,12 @@
19672017
<actionGroup ref="attachFileSlideOutProperty" stepKey="attachValidFileOnSlideOut">
19682018
<argument name="property" value="PageBuilderBackgroundMobileImage_JPG"/>
19692019
</actionGroup>
2020+
<!-- Fill URL field so it will show on storefront -->
2021+
<actionGroup ref="fillSlideOutPanelLinkUrlField" stepKey="enterBannerLinkUrl">
2022+
<argument name="property" value="PageBuilderBannerLinkUrlProperty"/>
2023+
<argument name="selection" value="{{ExternalLink.url}}"/>
2024+
<argument name="newTab" value="PageBuilderBannerNewTabProperty"/>
2025+
</actionGroup>
19702026
<actionGroup ref="saveEditPanelSettings" stepKey="saveEditPanelSettings"/>
19712027
<!-- Stage:Check No Background Mobile Image -->
19722028
<comment userInput="Stage:Check No Background Mobile Image" stepKey="commentStageCheck2"/>

app/code/Magento/PageBuilder/Test/Mftf/Test/AdminPageBuilderBannerCollageCenterAppearanceTest.xml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1134,4 +1134,54 @@
11341134
<comment userInput="Validate Storefront" stepKey="commentValidateStorefront"/>
11351135
<seeElement selector="{{BannerOnFrontend.buttonText(PageBuilderBannerButtonTextProperty2.value)}}" stepKey="seeButtonTextStorefront"/>
11361136
</test>
1137+
<test name="BannerCollageCenterEmptyBannerTakeNoSpaceOnStoreFrontValidation">
1138+
<annotations>
1139+
<features value="Pagebuilder"/>
1140+
<stories value="Banner"/>
1141+
<useCaseId value="MC-407"/>
1142+
<title value=" Validate empty banner collage center does not take up space on store front"/>
1143+
<description value="Validate empty banner collage center does not take up space on store fronts"/>
1144+
<severity value="CRITICAL"/>
1145+
<group value="pagebuilder"/>
1146+
<group value="pagebuilder-banner"/>
1147+
<group value="pagebuilder-bannerCollageCenter"/>
1148+
</annotations>
1149+
<before>
1150+
<actionGroup ref="LoginAsAdmin" stepKey="loginAsAdmin"/>
1151+
<actionGroup ref="navigateToAPageWithPageBuilder" stepKey="navigateToAPageWithPageBuilder"/>
1152+
<actionGroup ref="switchToPageBuilderStage" stepKey="switchToPageBuilderStage"/>
1153+
</before>
1154+
<after>
1155+
<actionGroup ref="logout" stepKey="logout"/>
1156+
</after>
1157+
<actionGroup ref="addPageBuilderPageTitle" stepKey="enterPageTitle">
1158+
<argument name="contentType" value="PageBuilderBannerContentType"/>
1159+
</actionGroup>
1160+
<actionGroup ref="expandPageBuilderPanelGroup" stepKey="expandPageBuilderPanelGroup">
1161+
<argument name="group" value="PageBuilderBannerContentType"/>
1162+
</actionGroup>
1163+
<actionGroup ref="dragContentTypeToStage" stepKey="dragBannerIntoStage">
1164+
<argument name="contentType" value="PageBuilderBannerContentType"/>
1165+
</actionGroup>
1166+
<actionGroup ref="openPageBuilderEditPanel" stepKey="openEditMenuOnStageToEdit">
1167+
<argument name="contentType" value="PageBuilderBannerContentType"/>
1168+
</actionGroup>
1169+
<actionGroup ref="chooseVisualSelectOption" stepKey="enterAppearanceCollageCenteredProperty">
1170+
<argument name="property" value="PageBuilderBannerCollageCenteredProperty"/>
1171+
</actionGroup>
1172+
<actionGroup ref="saveEditPanelSettings" stepKey="saveEditPanelSettingsCollageCentered"/>
1173+
<actionGroup ref="saveAndContinueEditCmsPage" stepKey="saveAndContinueEditCmsPageWithCollageCenteredBanner"/>
1174+
<actionGroup ref="switchToPageBuilderStage" stepKey="switchToPageBuilderStage"/>
1175+
<!-- Validate Stage -->
1176+
<comment userInput="Validate Stage" stepKey="commentValidateStage"/>
1177+
<waitForElementVisible time="2" selector="{{BannerOnBackend.emptyCollageCentered}}" stepKey="waitForCollageCentered" />
1178+
<seeElement selector="{{BannerOnBackend.emptyBanner(PageBuilderBannerMessageDefaultProperty.placeholder)}}" stepKey="seeEmptyBannerContent"/>
1179+
<actionGroup ref="navigateToStoreFront" stepKey="navigateToStoreFront">
1180+
<argument name="contentType" value="PageBuilderBannerContentType"/>
1181+
</actionGroup>
1182+
<!-- Validate Storefront -->
1183+
<comment userInput="Validate Storefront" stepKey="commentValidateStorefront"/>
1184+
<waitForElement selector="{{BannerOnFrontend.banner}}" stepKey="waitForBannerOnStoreFront"/>
1185+
<dontSeeElement selector="{{BannerOnFrontend.banner}}" stepKey="dontSeeBannerOnStoreFront"/>
1186+
</test>
11371187
</tests>

0 commit comments

Comments
 (0)