Skip to content

Commit e17987d

Browse files
Merge pull request #352 from magento-cia/cia-2.4.8-beta1-develop-2.4-develop-sync-08152024
Cia 2.4.8 beta1 develop 2.4 develop sync 08152024
2 parents 0f2c963 + d99fb20 commit e17987d

File tree

48 files changed

+626
-123
lines changed

Some content is hidden

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

48 files changed

+626
-123
lines changed

app/code/Magento/PageBuilder/Block/GoogleMapsApi.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
class GoogleMapsApi extends \Magento\Framework\View\Element\Template
1818
{
1919
public const GOOGLE_MAPS_API_KEY_PATH = 'cms/pagebuilder/google_maps_api_key';
20-
public const GOOGLE_MAPS_LIBRARY_URL = 'https://maps.googleapis.com/maps/api/js?v=3.53&key=%s';
20+
public const GOOGLE_MAPS_LIBRARY_URL = 'https://maps.googleapis.com/maps/api/js?v=3.56&key=%s';
2121
public const GOOGLE_MAPS_STYLE_PATH = 'cms/pagebuilder/google_maps_style';
2222

2323
/**

app/code/Magento/PageBuilder/Model/Stage/Renderer/Block.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,9 @@ public function render(array $params): array
6868
];
6969

7070
$contentTypes = $this->config->getContentTypes();
71-
$backendBlockClassName = isset($contentTypes[$params['role']]['backend_block'])
71+
$backendBlockClassName = isset($params['role']) && isset($contentTypes[$params['role']]['backend_block'])
7272
? $contentTypes[$params['role']]['backend_block'] : false;
73-
$backendBlockTemplate = isset($contentTypes[$params['role']]['backend_template'])
73+
$backendBlockTemplate = isset($params['role']) && isset($contentTypes[$params['role']]['backend_template'])
7474
? $contentTypes[$params['role']]['backend_template'] : false;
7575

7676
if ($backendBlockTemplate) {

app/code/Magento/PageBuilder/Test/Mftf/ActionGroup/BackgroundConfigurationActionGroup/ValidateVideoBackgroundWithOnlyVideoUrlActionGroup.xml

+2-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@
2828
<actualResult type="variable">grabBackgroundColorValue</actualResult>
2929
</assertEquals>
3030
<wait time="5" stepKey="waitToPreventVideoFlakiness"/>
31-
<waitForElementVisible selector="{{section.videoBackgroundVideoElement(index)}}" stepKey="waitForVideoVisible"/>
31+
<scrollToTopOfPage stepKey="scrollToTopToAvoidFlakiness" />
32+
<waitForElement selector="{{section.videoBackgroundVideoElement(index)}}" stepKey="waitForVideoVisible"/>
3233
<waitForElement selector="{{section.videoBackgroundVideoUrl(index, videoUrl.renderedValue)}}" stepKey="waitForVideoUrl"/>
3334
<grabAttributeFrom selector="{{section.videoBackgroundJarallaxContainer(index)}}" userInput="style" stepKey="jarallaxStyle"/>
3435
<assertStringContainsString stepKey="assertHeight">

app/code/Magento/PageBuilder/Test/Mftf/ActionGroup/EditFormActionGroup/validateSlideOutPanelFieldIsNotRequiredWithUploaderIdActionGroup.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<arguments>
1212
<argument name="property"/>
1313
</arguments>
14-
<waitForElementVisible time="2" selector="{{EditPanelForm.panelFieldControlWithUploaderId(property.section, property.fieldName)}}" stepKey="waitForPropertyElement"/>
14+
<waitForElementVisible time="2" selector="{{EditPanelForm.panelFieldNameWithUploaderId(property.section, property.fieldName)}}" stepKey="waitForPropertyElement"/>
1515
<dontSeeElement selector="{{EditPanelForm.panelFieldRequired(property.section, property.fieldName)}}" stepKey="seePropertyIsNotARequiredField"/>
1616
</actionGroup>
1717
</actionGroups>

app/code/Magento/PageBuilder/Test/Mftf/Data/ImageData.xml

+10
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,16 @@
6464
<data key="extension">jpg</data>
6565
<data key="path">wysiwyg</data>
6666
</entity>
67+
<entity name="PageBuilderImagePropertyJpgCopyOtherFolder" type="pagebuilder_image_property">
68+
<data key="name">Image</data>
69+
<data key="section">general</data>
70+
<data key="fieldName">image</data>
71+
<data key="value">magento.jpg</data>
72+
<data key="file">duplicatesamename/magento.jpg</data>
73+
<data key="fileName">magento</data>
74+
<data key="extension">jpg</data>
75+
<data key="path">wysiwyg</data>
76+
</entity>
6777
<entity name="PageBuilderBackgroundImagePropertyJpg" type="pagebuilder_image_property">
6878
<data key="name">Image</data>
6979
<data key="section">background</data>

app/code/Magento/PageBuilder/Test/Mftf/Section/PageBuilderEditFormSection/EditPanelFormSection.xml

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
<element name="panelSectionGenericError" type="text" selector="div.message.message-error.error"/>
2222
<element name="panelFieldControl" type="input" selector="//aside//div[@data-index=&quot;{{arg1}}&quot;]/descendant::*[@name=&quot;{{arg2}}&quot;]" parameterized="true"/>
2323
<element name="panelFieldControlWithUploaderId" type="input" selector="//aside//div[@data-index=&quot;{{arg1}}&quot;]/descendant::*[@upload-area-id=&quot;{{arg2}}&quot;]//div[contains(@class,'uppy-Root')]//input[contains(@class,'uppy-Dashboard-input')]" parameterized="true"/>
24+
<element name="panelFieldNameWithUploaderId" type="input" selector="//aside//div[@data-index=&quot;{{propertySection}}&quot;]/descendant::*[@upload-area-id=&quot;{{propertyField}}&quot;]" parameterized="true"/>
2425
<element name="panelFieldControlCheckbox" type="input" selector="//input[@type='checkbox' and @name='{{arg1}}']" parameterized="true"/>
2526
<element name="panelFieldControlCheckboxState" type="input" selector="//input[@type='checkbox' and @name='{{arg1}}' and @value='{{arg2}}']" parameterized="true"/>
2627
<element name="panelFieldControlSwitch" type="input" selector="//*[@name='{{arg1}}']/parent::*/label" parameterized="true"/>
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+
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
10+
<test name="AdminAddRecentlyViewedProductWidgetToSeeProductPriceTest">
11+
<before>
12+
<magentoCLI command="config:set cms/pagebuilder/enabled 0" stepKey="disablePageBuilder" after="enableTinyMCE"/>
13+
</before>
14+
<after>
15+
<magentoCLI command="config:set cms/pagebuilder/enabled 1" stepKey="enablePageBuilder" after="disableWYSIWYG"/>
16+
</after>
17+
</test>
18+
</tests>

app/code/Magento/PageBuilder/Test/Mftf/Test/AdminPageBuilderCommonTest/AdminPageBuilderPageButtonLinkTest.xml

+4-2
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,10 @@
8080
<waitForElementVisible selector="{{PageBuilderLinkAttributeAdmin.LinkItemSelected($createCMSPageA.title$)}}" stepKey="seeSearchResultHighlighted"/>
8181

8282
<!--Select another page from dropdown-->
83-
<scrollTo selector="{{PageBuilderLinkAttributeAdmin.LinkItemSelected($createCMSPageA.title$)}}" stepKey="scrollToLinks"/>
84-
<waitForElementClickable selector="{{PageBuilderLinkAttributeAdmin.LinkItemSelected($createCMSPageA.title$)}}" stepKey="waitForCMSPageBClickable"/>
83+
<clearField selector="{{PageBuilderLinkAttributeAdmin.LinkSearch}}" stepKey="clearLinkSearchField"/>
84+
<fillField selector="{{PageBuilderLinkAttributeAdmin.LinkSearch}}" userInput="{{$createCMSPageB.title$}}" stepKey="fillCreateCMSPageBInSearchField"/>
85+
<scrollTo selector="{{PageBuilderLinkAttributeAdmin.SearchResult($createCMSPageB.title$)}}" stepKey="scrollToLinks"/>
86+
<waitForElementClickable selector="{{PageBuilderLinkAttributeAdmin.SearchResult($createCMSPageB.title$)}}" stepKey="waitForCMSPageBClickable"/>
8587
<click selector="{{PageBuilderLinkAttributeAdmin.SearchResult($createCMSPageB.title$)}}" stepKey="clickCMSPageBOnSearchResult"/>
8688
<grabTextFrom selector="{{PageBuilderLinkAttributeAdmin.DropdownInput}}" stepKey="textFromDropDown2"/>
8789
<assertEquals stepKey="assertEquals2" message="pass">
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/************************************************************************
4+
*
5+
* Copyright 2024 Adobe
6+
* All Rights Reserved.
7+
*
8+
* NOTICE: All information contained herein is, and remains
9+
* the property of Adobe and its suppliers, if any. The intellectual
10+
* and technical concepts contained herein are proprietary to Adobe
11+
* and its suppliers and are protected by all applicable intellectual
12+
* property laws, including trade secret and copyright laws.
13+
* Dissemination of this information or reproduction of this material
14+
* is strictly forbidden unless prior written permission is obtained
15+
* from Adobe.
16+
* ************************************************************************
17+
*/
18+
-->
19+
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
20+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
21+
<test name="ImageAddSameNameImageIntoPageBuilderStageTest">
22+
<annotations>
23+
<features value="PageBuilder"/>
24+
<stories value="Image"/>
25+
<title value="Add Image with same name in PageBuilder for new CMS page and view on Storefront"/>
26+
<description value="Upload and select an image to/from Magento Media Gallery from the Image content type in the Page Builder Stage and then delete it and re-upload a different image with same name."/>
27+
<severity value="AVERAGE"/>
28+
<useCaseId value="ACP2E-2957"/>
29+
<testCaseId value="AC-11732"/>
30+
<group value="pagebuilder"/>
31+
<group value="pagebuilder-image"/>
32+
<group value="cloud"/>
33+
</annotations>
34+
<before>
35+
<actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/>
36+
<actionGroup ref="CliMediaGalleryEnhancedEnableActionGroup" stepKey="enableOldMediaGallery">
37+
<argument name="enabled" value="0"/>
38+
</actionGroup>
39+
<createData entity="_defaultCmsPage" stepKey="createCMSPage"/>
40+
</before>
41+
<after>
42+
<actionGroup ref="NavigateToCreatedCMSPageActionGroup" stepKey="navigateToCreatedCMSPage2">
43+
<argument name="CMSPage" value="$$createCMSPage$$"/>
44+
</actionGroup>
45+
<actionGroup ref="switchToPageBuilderStage" stepKey="switchToPageBuilderStage2"/>
46+
<actionGroup ref="goToMediaStorageFromStage" stepKey="goToMediaStorageFromStage2">
47+
<argument name="contentType" value="PageBuilderImageContentType"/>
48+
<argument name="x" value="0"/>
49+
<argument name="y" value="0"/>
50+
</actionGroup>
51+
<comment stepKey="deleteImageB" userInput="Delete image B"/>
52+
<actionGroup ref="DeleteImageFromStorageActionGroup" stepKey="DeleteImageFromStorage2">
53+
<argument name="Image" value="PageBuilderImagePropertyJpgCopyOtherFolder"/>
54+
</actionGroup>
55+
<actionGroup ref="CliMediaGalleryEnhancedEnableActionGroup" stepKey="disableOldMediaGallery">
56+
<argument name="enabled" value="0"/>
57+
</actionGroup>
58+
<deleteData createDataKey="createCMSPage" stepKey="deleteCMSPage" />
59+
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
60+
</after>
61+
62+
<!-- Go to CMS Page in Admin -->
63+
<actionGroup ref="NavigateToCreatedCMSPageActionGroup" stepKey="navigateToCreatedCMSPage1">
64+
<argument name="CMSPage" value="$$createCMSPage$$"/>
65+
</actionGroup>
66+
67+
<!-- Switch to PageBuilder stage -->
68+
<actionGroup ref="switchToPageBuilderStage" stepKey="switchToPageBuilderStage"/>
69+
70+
<!-- Add a row to PageBuilder stage with image -->
71+
<actionGroup ref="dragContentTypeToStage" stepKey="dragRowToRootContainer">
72+
<argument name="contentType" value="PageBuilderRowContentType"/>
73+
<argument name="containerTargetType" value="PageBuilderRootContainerContentType"/>
74+
</actionGroup>
75+
<actionGroup ref="addPageBuilderPageTitle" stepKey="enterPageTitle">
76+
<argument name="contentType" value="PageBuilderImageContentType"/>
77+
</actionGroup>
78+
<actionGroup ref="expandPageBuilderPanelMenuSection" stepKey="expandPageBuilderPanelMenuSection">
79+
<argument name="contentType" value="PageBuilderImageContentType"/>
80+
</actionGroup>
81+
<actionGroup ref="dragContentTypeToStage" stepKey="dragBannerIntoStage">
82+
<argument name="contentType" value="PageBuilderImageContentType"/>
83+
</actionGroup>
84+
85+
<!-- Attach image A to PageBuilder stage -->
86+
<comment userInput="Attach image A to PageBuilder stage" stepKey="commentAttachImage"/>
87+
<comment userInput="Upload image from stage" stepKey="uploadImageFromStage"/>
88+
<actionGroup ref="uploadImageToContentTypeFromStage" stepKey="addImageToStage">
89+
<argument name="property" value="PageBuilderBackgroundImage_JPG"/>
90+
<argument name="section" value="ImageOnStageWithoutImageUploaded"/>
91+
</actionGroup>
92+
93+
<!-- Go to Media Storage from stage -->
94+
<comment userInput="Go to Media Storage from stage" stepKey="commentGoToMediaStorageFromStage1"/>
95+
<actionGroup ref="goToMediaStorageFromStage" stepKey="goToMediaStorageFromStage1">
96+
<argument name="contentType" value="PageBuilderImageContentType"/>
97+
<argument name="x" value="0"/>
98+
<argument name="y" value="0"/>
99+
</actionGroup>
100+
101+
<!-- Delete image A -->
102+
<comment stepKey="deleteImageA" userInput="Delete image A"/>
103+
<actionGroup ref="DeleteImageFromStorageActionGroup" stepKey="DeleteImageFromStorage1">
104+
<argument name="Image" value="PageBuilderBackgroundImage_JPG"/>
105+
</actionGroup>
106+
107+
<!-- Select image B from Media Gallery -->
108+
<comment userInput="Attach image B from Media Gallery" stepKey="attachImageToSlideOut"/>
109+
<actionGroup ref="InsertImageFromMediaGalleryFromCmsActionGroup" stepKey="insertImageFromMediaGallery">
110+
<argument name="imageFileName" value="{{PageBuilderImagePropertyJpgCopyOtherFolder.fileName}}"/>
111+
<argument name="imageFilePath" value="{{PageBuilderImagePropertyJpgCopyOtherFolder.file}}"/>
112+
</actionGroup>
113+
114+
<!-- Save Cms Page -->
115+
<actionGroup ref="exitPageBuilderFullScreen" stepKey="exitPageBuilderFullScreen"/>
116+
<actionGroup ref="SaveAndContinueEditCmsPageActionGroup" stepKey="saveAndContinueEditCmsPage"/>
117+
118+
<!-- Go to Storefront -->
119+
<actionGroup ref="StorefrontGoToCMSPageActionGroup" stepKey="goToCMSPageOnStorefrontAsGuest">
120+
<argument name="identifier" value="$createCMSPage.identifier$"/>
121+
</actionGroup>
122+
123+
<!-- Validate Storefront -->
124+
<comment userInput="Validate Storefront" stepKey="commentValidateStorefront"/>
125+
<waitForElementVisible selector="{{ImageOnStorefront.imageSourceByIndex('1', PageBuilderImagePropertyJpgCopyOtherFolder.fileName)}}" stepKey="seeImage2SourceOnStorefront"/>
126+
</test>
127+
</tests>

app/code/Magento/PageBuilder/Test/Mftf/Test/AdminPageBuilderImageTest/ImageTestCMSPageOnTabletTest.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -94,12 +94,12 @@
9494
<dontSeeElement selector="{{ImageOnStorefront.imageMobile('1')}}" stepKey="dontSeeMobileImageOnDefaultRes"/>
9595

9696
<!-- Validate images with window width of 768px -->
97-
<resizeWindow width="769" height="1024" stepKey="resizeWindowTo768by1024"/>
97+
<resizeWindow width="768" height="1024" stepKey="resizeWindowTo768by1024"/>
9898
<seeElement selector="{{ImageOnStorefront.imageDesktop('1')}}" stepKey="seeMainImageOn768by1024"/>
9999
<dontSeeElement selector="{{ImageOnStorefront.imageMobile('1')}}" stepKey="dontSeeMobileImageOn768by1024"/>
100100

101101
<!-- Validate images with window width of 767px -->
102-
<resizeWindow width="768" height="1024" stepKey="resizeWindowTo767by1024"/>
102+
<resizeWindow width="767" height="1024" stepKey="resizeWindowTo767by1024"/>
103103
<seeElement selector="{{ImageOnStorefront.imageMobile('1')}}" stepKey="seeMobileImageOn767by1024"/>
104104
<dontSeeElement selector="{{ImageOnStorefront.imageDesktop('1')}}" stepKey="dontSeeDesktopImageOn767by1024"/>
105105
</test>

app/code/Magento/PageBuilder/Test/Mftf/Test/AdminPageBuilderProductsCommonTest/AdminPageBuilderProductsConfigurationValidateProductTotalsTest.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@
159159
<argument name="property" value="PageBuilderProductsSortByNewestTop"/>
160160
</actionGroup>
161161
<actionGroup ref="validateProductTotals" stepKey="validateTotalProductsOnEditPanel5">
162-
<argument name="productsTotals" value="of 7 total"/>
162+
<argument name="productsTotals" value="of 1 total"/>
163163
</actionGroup>
164164
<actionGroup ref="saveEditPanelSettings" stepKey="saveEditPanel5"/>
165165
<actionGroup ref="validateProductCountInProducts" stepKey="validateTotalProductsOnStage5">
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<?php
2+
/**
3+
* Copyright 2024 Adobe
4+
* All Rights Reserved.
5+
*/
6+
declare(strict_types=1);
7+
8+
namespace Magento\PageBuilder\ViewModel;
9+
10+
use Magento\Backend\ViewModel\RequireJsConfigModifierInterface;
11+
use Magento\Framework\View\Element\Block\ArgumentInterface;
12+
13+
/**
14+
* Modifies requirejs configuration for the stage render frame
15+
*
16+
* Override the text! plugin within the iframe to ensure we can pipe any XHR requests through to the parent window
17+
* as the same origin policy will not allow us to load the templates within this iframe.
18+
* It is important that this mapping is configured before requirejs-config.js to ensure the text! plugin is overridden
19+
* for all requests.
20+
*/
21+
class StageRenderFrameRequireJsConfigModifier implements ArgumentInterface, RequireJsConfigModifierInterface
22+
{
23+
/**
24+
* @inheritDoc
25+
*/
26+
public function modify(array $config): array
27+
{
28+
$config['map']['*'] = array_merge(
29+
$config['map']['*'] ?? [],
30+
[
31+
'text' => 'Magento_PageBuilder/js/master-format/render/requirejs/text',
32+
'Magento_PageBuilder/js/events' => 'Magento_PageBuilder/js/master-format/render/events'
33+
]
34+
);
35+
return $config;
36+
}
37+
}

app/code/Magento/PageBuilder/etc/adminhtml/di.xml

+1
Original file line numberDiff line numberDiff line change
@@ -634,6 +634,7 @@
634634
<argument name="overrideSnapshot" xsi:type="boolean">true</argument>
635635
</arguments>
636636
</virtualType>
637+
<preference for="Magento\Catalog\Ui\Component\Category\Form\Element\Wysiwyg" type="Magento\PageBuilder\Component\Form\Element\CategoryWysiwyg" />
637638
<type name="Magento\PageBuilder\Ui\Component\Template\DataProvider">
638639
<arguments>
639640
<argument name="additionalFilterPool" xsi:type="array">

app/code/Magento/PageBuilder/etc/di.xml

-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
-->
88
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
99
<preference for="Magento\Ui\Component\Form\Element\Wysiwyg" type="Magento\PageBuilder\Component\Form\Element\Wysiwyg" />
10-
<preference for="Magento\Catalog\Ui\Component\Category\Form\Element\Wysiwyg" type="Magento\PageBuilder\Component\Form\Element\CategoryWysiwyg" />
1110
<preference for="Magento\Framework\Data\Form\Element\Editor" type="Magento\PageBuilder\Block\Element\Editor" />
1211
<preference for="Magento\PageBuilder\Model\ConfigInterface" type="Magento\PageBuilder\Model\Config" />
1312
<preference for="Magento\PageBuilder\Model\Dom\Adapter\AttrInterface" type="Magento\PageBuilder\Model\Dom\Attr" />

app/code/Magento/PageBuilder/etc/view.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,9 @@
6262
<var name="stage">true</var>
6363
<var name="class">mobile-switcher</var>
6464
<var name="icon">Magento_PageBuilder::css/images/switcher/switcher-mobile.svg</var>
65-
<var name="media">only screen and (max-width: 768px)</var>
65+
<var name="media">only screen and (max-width: 767px)</var>
6666
<var name="conditions">
67-
<var name="max-width">768px</var>
67+
<var name="max-width">767px</var>
6868
<var name="min-width">640px</var>
6969
</var>
7070
<var name="options">

app/code/Magento/PageBuilder/view/adminhtml/layout/pagebuilder_stage_render.xml

+7
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,13 @@
1414
<remove src="css/styles.css"/>
1515
</head>
1616
<body>
17+
<referenceBlock name="require.js">
18+
<arguments>
19+
<argument name="config_modifier" xsi:type="object">
20+
Magento\PageBuilder\ViewModel\StageRenderFrameRequireJsConfigModifier
21+
</argument>
22+
</arguments>
23+
</referenceBlock>
1724
<referenceContainer name="backend.page" remove="true"/>
1825
<referenceContainer name="menu.wrapper" remove="true"/>
1926
<referenceContainer name="root">

0 commit comments

Comments
 (0)