Skip to content

Commit 7121e9c

Browse files
committed
MC-5450: Product Contents Are Ordered Incorrectly On Storefront
- Add test for product storefront content order
1 parent 58262fd commit 7121e9c

File tree

4 files changed

+188
-0
lines changed

4 files changed

+188
-0
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
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+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
10+
<actionGroup name="addUpSellProductBySku" extends="addRelatedProductBySku">
11+
<click selector="{{AdminProductFormRelatedUpSellCrossSellSection.AddUpSellProductsButton}}" stepKey="clickAddRelatedProductButton"/>
12+
<conditionalClick selector="{{AdminAddUpSellProductsModalSection.Modal}} {{AdminProductGridFilterSection.clearFilters}}" dependentSelector="{{AdminAddUpSellProductsModalSection.Modal}} {{AdminProductGridFilterSection.clearFilters}}" visible="true" stepKey="clickClearFilters"/>
13+
<click selector="{{AdminAddUpSellProductsModalSection.Modal}} {{AdminProductGridFilterSection.filters}}" stepKey="openProductFilters"/>
14+
<fillField selector="{{AdminAddUpSellProductsModalSection.Modal}} {{AdminProductGridFilterSection.skuFilter}}" userInput="{{sku}}" stepKey="fillProductSkuFilter"/>
15+
<click selector="{{AdminAddUpSellProductsModalSection.Modal}} {{AdminProductGridFilterSection.applyFilters}}" stepKey="clickApplyFilters"/>
16+
<waitForPageLoad stepKey="waitForPageToLoad"/>
17+
<click selector="{{AdminAddUpSellProductsModalSection.Modal}}{{AdminProductModalSlideGridSection.productGridXRowYColumnButton('1', '1')}}" stepKey="selectProduct"/>
18+
<click selector="{{AdminAddUpSellProductsModalSection.AddSelectedProductsButton}}" stepKey="addRelatedProductSelected"/>
19+
</actionGroup>
20+
</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+
<sections xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
11+
<section name="AdminProductFormRelatedUpSellCrossSellSection">
12+
<element name="AddUpSellProductsButton" type="button" selector="button[data-index='button_upsell']" timeout="30"/>
13+
</section>
14+
<section name="AdminAddUpSellProductsModalSection">
15+
<element name="Modal" type="button" selector=".product_form_product_form_related_upsell_modal"/>
16+
<element name="AddSelectedProductsButton" type="button" selector="//aside[contains(@class, 'product_form_product_form_related_upsell_modal')]//button/span[contains(text(), 'Add Selected Products')]" timeout="30"/>
17+
</section>
18+
</sections>

app/code/Magento/PageBuilder/Test/Mftf/Section/CatalogSection.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,13 @@
1111
<section name="PageBuilderCatalog">
1212
<element name="openPageBuilder" type="button" selector="[data-index='description'] button.action-default"/>
1313
</section>
14+
<section name="StorefrontProductFullWidth">
15+
<element name="infoMain" type="button" selector=".product-info-main"/>
16+
<element name="media" type="button" selector=".product.media"/>
17+
<element name="description" type="button" selector=".page-main-description"/>
18+
<element name="attributes" type="button" selector=".page-main-pagebuilder-attributes"/>
19+
<element name="reviews" type="button" selector=".block.review-add"/>
20+
<element name="related" type="button" selector=".block.related"/>
21+
<element name="upsell" type="button" selector=".block.upsell"/>
22+
</section>
1423
</sections>

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

Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -415,4 +415,145 @@
415415
<waitForElementVisible selector="{{PageBuilderProductStorefront.attributeSectionHeading('2', $$createPageBuilderAttribute1.default_frontend_label$$)}}" stepKey="validateAttribute1DisplayedSecond"/>
416416
<waitForElementVisible selector="{{PageBuilderProductStorefront.attributeSectionHeading('1', $$createPageBuilderAttribute2.default_frontend_label$$)}}" stepKey="validateAttribute2DisplayedFirst"/>
417417
</test>
418+
<test name="StorefrontPageBuilderFullWidthProductsContentsAreOrderedCorrectly">
419+
<annotations>
420+
<features value="PageBuilder"/>
421+
<stories value="Page Layout"/>
422+
<title value="Catalog product storefront page should be ordered correctly"/>
423+
<description value="Catalog product storefront detail page should be ordered correctly"/>
424+
<severity value="MAJOR"/>
425+
<useCaseId value="MC-5450"/>
426+
<testCaseId value="MC-5477"/>
427+
<group value="pagebuilder"/>
428+
<group value="pagebuilder-fullwidth"/>
429+
</annotations>
430+
<before>
431+
<createData stepKey="createPageBuilderAttribute" entity="productAttributeWysiwyg"/>
432+
<createData stepKey="addToDefaultSetSortOrder" entity="AddToDefaultSetSortOrder1">
433+
<requiredEntity createDataKey="createPageBuilderAttribute"/>
434+
</createData>
435+
<createData stepKey="createPreReqCategory" entity="_defaultCategory"/>
436+
<createData stepKey="relatedSimpleProduct" entity="SimpleProduct2"/>
437+
<actionGroup ref="LoginAsAdmin" stepKey="loginAsAdmin"/>
438+
</before>
439+
<after>
440+
<actionGroup ref="logout" stepKey="logout"/>
441+
<deleteData createDataKey="createPreReqCategory" stepKey="deletePreReqCategory"/>
442+
<deleteData createDataKey="createPageBuilderAttribute" stepKey="deleteAttribute1"/>
443+
<deleteData createDataKey="relatedSimpleProduct" stepKey="deleteRelatedProduct"/>
444+
</after>
445+
<!-- Update created attribute to enable Page Builder -->
446+
<comment userInput="Update created attribute to enable Page Builder" stepKey="commentUpdateAttribute"/>
447+
<actionGroup ref="navigateToCreatedProductAttribute" stepKey="navigateToCreatedProductAttribute">
448+
<argument name="ProductAttribute" value="$$createPageBuilderAttribute$$"/>
449+
</actionGroup>
450+
<selectOption selector="{{AttributePropertiesSection.InputType}}" userInput="Page Builder" stepKey="selectPageBuilder" />
451+
<click selector="{{AttributePropertiesSection.Save}}" stepKey="saveAttribute" />
452+
<waitForPageLoad stepKey="waitForAttributeSave" />
453+
<actionGroup ref="FillAdminSimpleProductForm" stepKey="fillProductFieldsInAdmin">
454+
<argument name="category" value="$$createPreReqCategory$$"/>
455+
<argument name="simpleProduct" value="_defaultProduct"/>
456+
</actionGroup>
457+
<!-- Set background colour of row for our first custom attribute -->
458+
<comment userInput="Set background colour of row for our first custom attribute" stepKey="commentSetBackgroundColor"/>
459+
<scrollToTopOfPage stepKey="scrollToTopOfPage"/>
460+
<actionGroup ref="openPageBuilderForAttribute" stepKey="openPageBuilderForAttribute1">
461+
<argument name="attributeCode" value="$$createPageBuilderAttribute.attribute_code$$"/>
462+
</actionGroup>
463+
<actionGroup ref="openPageBuilderEditPanel" stepKey="openEditMenuOnStage">
464+
<argument name="contentType" value="PageBuilderRowContentType"/>
465+
</actionGroup>
466+
<actionGroup ref="fillSlideOutPanelFieldGeneral" stepKey="enterBackgroundColor">
467+
<argument name="property" value="PageBuilderBackgroundColor_HSV_Orange"/>
468+
</actionGroup>
469+
<actionGroup ref="saveEditPanelSettingsFullScreen" stepKey="saveEditPanelSettings"/>
470+
<click selector="{{PageBuilderStage.exitFullScreen}}" stepKey="exitPageBuilderFullScreen" />
471+
<waitForPageLoad stepKey="waitForPageLoadExitFullScreen"/>
472+
<!-- Add PageBuilder description -->
473+
<comment userInput="Add PageBuilder description" stepKey="commentAddDescription"/>
474+
<click selector="{{AdminProductContentSection.sectionHeader}}" stepKey="openContentSection"/>
475+
<waitForPageLoad stepKey="waitForPageLoadContentSection"/>
476+
<waitForElementVisible selector="{{PageBuilderCatalog.openPageBuilder}}" stepKey="waitForPageBuilderBtn" />
477+
<see userInput="{{EditWithPageBuilderButton.value}}" stepKey="seePageBuilderBtn"/>
478+
<click selector="{{PageBuilderCatalog.openPageBuilder}}" stepKey="clickOnPageBuilderBtn" />
479+
<waitForPageLoad stepKey="waitForPageLoadPageBuilder"/>
480+
<waitForElementVisible selector="{{PageBuilderPanel.layoutGroup}}" stepKey="waiForPageBuilderVisible" />
481+
<waitForElementVisible selector="{{PageBuilderStage.stageWrapperFullScreen}}" stepKey="seePageBuilderFullSizeScreen" />
482+
<!-- Set background color of row -->
483+
<comment userInput="Set background color of row" stepKey="commentSetRowBackgroundColor"/>
484+
<actionGroup ref="openPageBuilderEditPanel" stepKey="openEditMenuOnStage1">
485+
<argument name="contentType" value="PageBuilderRowContentType"/>
486+
</actionGroup>
487+
<actionGroup ref="fillSlideOutPanelFieldGeneral" stepKey="enterBackgroundColor1">
488+
<argument name="property" value="PageBuilderBackgroundColorProperty_3C3C3C"/>
489+
</actionGroup>
490+
<actionGroup ref="saveEditPanelSettingsFullScreen" stepKey="saveEditPanelSettings1"/>
491+
<click selector="{{PageBuilderStage.exitFullScreen}}" stepKey="exitPageBuilderFullScreen1" />
492+
<waitForPageLoad stepKey="waitForPageLoadExitFullScreen1"/>
493+
<!-- Add our related product -->
494+
<comment userInput="Add our related product" stepKey="commentAddRelatedProduct"/>
495+
<actionGroup ref="addRelatedProductBySku" stepKey="addRelatedProduct">
496+
<argument name="sku" value="$$relatedSimpleProduct.sku$$"/>
497+
</actionGroup>
498+
<!-- Add our up-sell product -->
499+
<comment userInput="Add our up-sell product" stepKey="commentAddUpSellProduct"/>
500+
<actionGroup ref="addUpSellProductBySku" stepKey="addUpSellProduct">
501+
<argument name="sku" value="$$relatedSimpleProduct.sku$$"/>
502+
</actionGroup>
503+
<!-- Use Full Width layout -->
504+
<comment userInput="Set Layout to Product - Full Width" stepKey="commentSetLayout"/>
505+
<actionGroup ref="setLayout" stepKey="setFullWidthLayout">
506+
<argument name="designSection" value="ProductDesignSection"/>
507+
<argument name="layoutOption" value="PageBuilderFullWidthLayout.product"/>
508+
</actionGroup>
509+
<click selector="{{AdminProductFormActionSection.saveButton}}" stepKey="saveProduct"/>
510+
<waitForPageLoad stepKey="waitForPageLoadSaveProduct"/>
511+
<waitForElementVisible selector="{{AdminProductMessagesSection.successMessage}}" stepKey="assertSaveMessageSuccess"/>
512+
<!-- Check that description is full width -->
513+
<comment userInput="Check that description is full width" stepKey="commentSeeDescriptionFullWidth"/>
514+
<amOnPage url="{{_defaultProduct.urlKey}}.html" stepKey="navigateToProductPage"/>
515+
<waitForPageLoad stepKey="waitForPageLoadProductPage"/>
516+
<!-- Verify all sections exist on page -->
517+
<comment userInput="Verify all sections exist on page" stepKey="commentVerifySectionsOnPage"/>
518+
<seeElement selector="{{StorefrontProductFullWidth.infoMain}}" stepKey="seeInfoMain" />
519+
<seeElement selector="{{StorefrontProductFullWidth.media}}" stepKey="seeMedia" />
520+
<seeElement selector="{{StorefrontProductFullWidth.description}}" stepKey="seeDescription" />
521+
<seeElement selector="{{StorefrontProductFullWidth.attributes}}" stepKey="seeAttributes" />
522+
<seeElement selector="{{StorefrontProductFullWidth.reviews}}" stepKey="seeReviews" />
523+
<seeElement selector="{{StorefrontProductFullWidth.related}}" stepKey="seeRelated" />
524+
<seeElement selector="{{StorefrontProductFullWidth.upsell}}" stepKey="seeUpsell" />
525+
<!-- Assert sections on page are in correct order -->
526+
<comment userInput="Assert sections on page are in correct order" stepKey="commentAssertOrder"/>
527+
<executeJS function="return document.querySelectorAll('{{StorefrontProductFullWidth.infoMain}}')[0].getBoundingClientRect().y" stepKey="infoMainPosition"/>
528+
<executeJS function="return document.querySelectorAll('{{StorefrontProductFullWidth.media}}')[0].getBoundingClientRect().y" stepKey="mediaPosition"/>
529+
<executeJS function="return document.querySelectorAll('{{StorefrontProductFullWidth.description}}')[0].getBoundingClientRect().y" stepKey="descriptionPosition"/>
530+
<executeJS function="return document.querySelectorAll('{{StorefrontProductFullWidth.attributes}}')[0].getBoundingClientRect().y" stepKey="attributesPosition"/>
531+
<executeJS function="return document.querySelectorAll('{{StorefrontProductFullWidth.reviews}}')[0].getBoundingClientRect().y" stepKey="reviewsPosition"/>
532+
<executeJS function="return document.querySelectorAll('{{StorefrontProductFullWidth.related}}')[0].getBoundingClientRect().y" stepKey="relatedPosition"/>
533+
<executeJS function="return document.querySelectorAll('{{StorefrontProductFullWidth.upsell}}')[0].getBoundingClientRect().y" stepKey="upsellPosition"/>
534+
<assertEquals stepKey="assertInfoMainAndMediaPosition">
535+
<expectedResult type="variable">infoMainPosition</expectedResult>
536+
<actualResult type="variable">mediaPosition</actualResult>
537+
</assertEquals>
538+
<assertGreaterThan stepKey="assertDescriptionBelowInfoMain">
539+
<expectedResult type="variable">infoMainPosition</expectedResult>
540+
<actualResult type="variable">descriptionPosition</actualResult>
541+
</assertGreaterThan>
542+
<assertGreaterThan stepKey="assertAttributesBelowDescription">
543+
<expectedResult type="variable">descriptionPosition</expectedResult>
544+
<actualResult type="variable">attributesPosition</actualResult>
545+
</assertGreaterThan>
546+
<assertGreaterThan stepKey="assertReviewsBelowAttributes">
547+
<expectedResult type="variable">attributesPosition</expectedResult>
548+
<actualResult type="variable">reviewsPosition</actualResult>
549+
</assertGreaterThan>
550+
<assertGreaterThan stepKey="assertRelatedBelowReviews">
551+
<expectedResult type="variable">reviewsPosition</expectedResult>
552+
<actualResult type="variable">relatedPosition</actualResult>
553+
</assertGreaterThan>
554+
<assertGreaterThan stepKey="assertUpsellBelowRelated">
555+
<expectedResult type="variable">relatedPosition</expectedResult>
556+
<actualResult type="variable">upsellPosition</actualResult>
557+
</assertGreaterThan>
558+
</test>
418559
</tests>

0 commit comments

Comments
 (0)