Skip to content

Commit 5274476

Browse files
committed
Merge remote-tracking branch 'origin/MAGETWO-66361-buttons-vertical-alignment-in-the-group' into cms-team-2-sprint-9
2 parents b4ce538 + b58c12c commit 5274476

File tree

23 files changed

+1244
-192
lines changed

23 files changed

+1244
-192
lines changed

app/code/Magento/PageBuilder/Setup/DataConverter/Renderer/Buttons.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,16 +44,17 @@ public function render(array $itemData, array $additionalData = [])
4444

4545
$rootElementAttributes = [
4646
'data-role' => 'buttons',
47-
'data-appearance' => 'default',
48-
'class' => $eavData['css_classes'] ?? ''
47+
'data-appearance' => 'inline',
48+
'class' => $eavData['css_classes'] ?? '',
49+
'style' => 'display: inline-block;'
4950
];
5051

5152
if (isset($itemData['formData'])) {
5253
$style = $this->styleExtractor->extractStyle($itemData['formData']);
5354
if (strpos($style, 'padding') === false) {
5455
$style .= ($style ? ' ' : '') . 'padding: 10px 10px 0px;';
5556
}
56-
$rootElementAttributes['style'] = $style;
57+
$rootElementAttributes['style'] .= ' ' . $style;
5758
}
5859

5960
$rootElementHtml = '<div';

app/code/Magento/PageBuilder/Test/Mftf/ActionGroup/ButtonActionGroup.xml

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,4 +69,79 @@
6969
<waitForPageLoad stepKey="waitForPageLoad2"/>
7070
<waitForElementVisible selector="{{ButtonItemOnStage.base(buttonIndexToMove)}}" stepKey="waitForButton2"/>
7171
</actionGroup>
72+
<actionGroup name="validateButtonGroupInlineAppearance">
73+
<arguments>
74+
<argument name="buttonGroupPage"/>
75+
<argument name="buttonItemPage"/>
76+
<argument name="buttonGroupindex" defaultValue="1" type="string"/>
77+
<argument name="firstButtonIndex" defaultValue="1" type="string"/>
78+
<argument name="secondButtonIndex" defaultValue="2" type="string"/>
79+
</arguments>
80+
<waitForElementVisible selector="{{buttonGroupPage.base(buttonGroupindex)}}" stepKey="waitForButtonGroup"/>
81+
<waitForElementVisible selector="{{buttonGroupPage.appearance(buttonGroupindex, PageBuilderButtonGroupAppearance_Inline.value)}}" stepKey="seeButtonAppearance"/>
82+
<waitForElementVisible selector="{{buttonItemPage.base(firstButtonIndex)}}" stepKey="waitForButton1"/>
83+
<executeJS function="return {{buttonItemPage.jsButtonSelector(firstButtonIndex)}}.getBoundingClientRect().x" stepKey="xCoordinate1"/>
84+
<executeJS function="return {{buttonItemPage.jsButtonSelector(firstButtonIndex)}}.getBoundingClientRect().y" stepKey="yCoordinate1"/>
85+
<waitForElementVisible selector="{{buttonItemPage.base(secondButtonIndex)}}" stepKey="waitForButton2"/>
86+
<executeJS function="return {{buttonItemPage.jsButtonSelector(secondButtonIndex)}}.getBoundingClientRect().x" stepKey="xCoordinate2"/>
87+
<executeJS function="return {{buttonItemPage.jsButtonSelector(secondButtonIndex)}}.getBoundingClientRect().y" stepKey="yCoordinate2"/>
88+
<assertGreaterThan stepKey="checkXCoordinates">
89+
<expectedResult type="variable">xCoordinate1</expectedResult>
90+
<actualResult type="variable">xCoordinate2</actualResult>
91+
</assertGreaterThan>
92+
<assertEquals stepKey="checkYCoordinates">
93+
<expectedResult type="variable">yCoordinate1</expectedResult>
94+
<actualResult type="variable">yCoordinate2</actualResult>
95+
</assertEquals>
96+
</actionGroup>
97+
<actionGroup name="validateButtonGroupInlineAppearanceWraps">
98+
<arguments>
99+
<argument name="buttonGroupPage"/>
100+
<argument name="buttonItemPage"/>
101+
<argument name="buttonGroupindex" defaultValue="1" type="string"/>
102+
<argument name="firstButtonIndex" defaultValue="1" type="string"/>
103+
<argument name="secondButtonIndex" defaultValue="2" type="string"/>
104+
</arguments>
105+
<waitForElementVisible selector="{{buttonGroupPage.base(buttonGroupindex)}}" stepKey="waitForButtonGroup"/>
106+
<waitForElementVisible selector="{{buttonGroupPage.appearance(buttonGroupindex, PageBuilderButtonGroupAppearance_Inline.value)}}" stepKey="seeButtonAppearance"/>
107+
<waitForElementVisible selector="{{buttonItemPage.base(firstButtonIndex)}}" stepKey="waitForButton1"/>
108+
<executeJS function="return {{buttonItemPage.jsButtonSelector(firstButtonIndex)}}.getBoundingClientRect().x" stepKey="xCoordinate1"/>
109+
<executeJS function="return {{buttonItemPage.jsButtonSelector(firstButtonIndex)}}.getBoundingClientRect().y" stepKey="yCoordinate1"/>
110+
<waitForElementVisible selector="{{buttonItemPage.base(secondButtonIndex)}}" stepKey="waitForButton2"/>
111+
<executeJS function="return {{buttonItemPage.jsButtonSelector(secondButtonIndex)}}.getBoundingClientRect().x" stepKey="xCoordinate2"/>
112+
<executeJS function="return {{buttonItemPage.jsButtonSelector(secondButtonIndex)}}.getBoundingClientRect().y" stepKey="yCoordinate2"/>
113+
<assertGreaterThanOrEqual stepKey="checkXCoordinates">
114+
<expectedResult type="variable">xCoordinate1</expectedResult>
115+
<actualResult type="variable">xCoordinate2</actualResult>
116+
</assertGreaterThanOrEqual>
117+
<assertGreaterThan stepKey="checkYCoordinates">
118+
<expectedResult type="variable">yCoordinate1</expectedResult>
119+
<actualResult type="variable">yCoordinate2</actualResult>
120+
</assertGreaterThan>
121+
</actionGroup>
122+
<actionGroup name="validateButtonGroupStackedAppearance">
123+
<arguments>
124+
<argument name="buttonGroupPage"/>
125+
<argument name="buttonItemPage"/>
126+
<argument name="buttonGroupindex" defaultValue="1" type="string"/>
127+
<argument name="firstButtonIndex" defaultValue="1" type="string"/>
128+
<argument name="secondButtonIndex" defaultValue="2" type="string"/>
129+
</arguments>
130+
<waitForElementVisible selector="{{buttonGroupPage.base(buttonGroupindex)}}" stepKey="waitForButtonGroup"/>
131+
<waitForElementVisible selector="{{buttonGroupPage.appearance(buttonGroupindex, PageBuilderButtonGroupAppearance_Stacked.value)}}" stepKey="seeButtonAppearance"/>
132+
<waitForElementVisible selector="{{buttonItemPage.base(firstButtonIndex)}}" stepKey="waitForButton1"/>
133+
<executeJS function="return {{buttonItemPage.jsButtonSelector(firstButtonIndex)}}.getBoundingClientRect().x" stepKey="xCoordinate1"/>
134+
<executeJS function="return {{buttonItemPage.jsButtonSelector(firstButtonIndex)}}.getBoundingClientRect().y" stepKey="yCoordinate1"/>
135+
<waitForElementVisible selector="{{buttonItemPage.base(secondButtonIndex)}}" stepKey="waitForButton2"/>
136+
<executeJS function="return {{buttonItemPage.jsButtonSelector(secondButtonIndex)}}.getBoundingClientRect().x" stepKey="xCoordinate2"/>
137+
<executeJS function="return {{buttonItemPage.jsButtonSelector(secondButtonIndex)}}.getBoundingClientRect().y" stepKey="yCoordinate2"/>
138+
<assertEquals stepKey="checkXCoordinates">
139+
<expectedResult type="variable">xCoordinate1</expectedResult>
140+
<actualResult type="variable">xCoordinate2</actualResult>
141+
</assertEquals>
142+
<assertGreaterThan stepKey="checkYCoordinates">
143+
<expectedResult type="variable">yCoordinate1</expectedResult>
144+
<actualResult type="variable">yCoordinate2</actualResult>
145+
</assertGreaterThan>
146+
</actionGroup>
72147
</actionGroups>
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
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="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataProfileSchema.xsd">
11+
<!-- Button Group Appearance -->
12+
<entity name="PageBuilderButtonGroupAppearance_Inline" type="pagebuilder_button_group_appearance">
13+
<data key="name">Appearance</data>
14+
<data key="section">appearance_fieldset</data>
15+
<data key="fieldName">appearance</data>
16+
<data key="value">inline</data>
17+
</entity>
18+
<entity name="PageBuilderButtonGroupAppearance_Stacked" type="pagebuilder_button_group_appearance">
19+
<data key="name">Appearance</data>
20+
<data key="section">appearance_fieldset</data>
21+
<data key="fieldName">appearance</data>
22+
<data key="value">stacked</data>
23+
</entity>
24+
</entities>

app/code/Magento/PageBuilder/Test/Mftf/Data/ButtonData.xml renamed to app/code/Magento/PageBuilder/Test/Mftf/Data/ButtonItemData.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,12 @@
6969
<data key="fieldName">button_text</data>
7070
<data key="value">Third</data>
7171
</entity>
72+
<entity name="PageBuilderButtonItemText_Last" type="pagebuilder_button_item_text_property">
73+
<data key="name">Button Text</data>
74+
<data key="section">content</data>
75+
<data key="fieldName">button_text</data>
76+
<data key="value">Last</data>
77+
</entity>
7278
<!-- Button Type -->
7379
<entity name="PageBuilderButtonItemType_Primary" type="pagebuilder_button_item_type_property">
7480
<data key="name">Button Type</data>

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

Lines changed: 0 additions & 11 deletions
This file was deleted.

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
1111
<section name="ButtonGroupOnStage">
1212
<element name="base" type="button" selector="(//div[contains(@class,'pagebuilder-buttons')])[{{arg1}}]" parameterized="true"/>
13+
<element name="appearance" type="button" selector="(//div[contains(@class,'pagebuilder-buttons')])[{{arg1}}]//div[@data-appearance='{{arg2}}']" parameterized="true"/>
1314
<element name="addNewButtonItemOption" type="button" selector="(//div[contains(@class,'pagebuilder-buttons')])[{{arg1}}]//a[contains(@title,'Add Button')]" parameterized="true"/>
1415
<element name="oldAddNewButtonItem" type="button" selector="//button[contains(text(),'Add Button')]"/>
1516
<!-- Advanced Configuration -->
@@ -28,6 +29,7 @@
2829
</section>
2930
<section name="ButtonGroupOnStorefront">
3031
<element name="base" type="button" selector="(//div[@data-role='buttons'])[{{arg1}}]" parameterized="true"/>
32+
<element name="appearance" type="button" selector="(//div[@data-role='buttons'])[{{arg1}}][@data-appearance='{{arg2}}']" parameterized="true"/>
3133
<!-- Advanced Configuration -->
3234
<element name="alignment" type="text" selector="(//div[@data-role='buttons'])[{{arg1}}][contains(@style,'text-align: {{arg2}};')]" parameterized="true"/>
3335
<element name="noAlignment" type="text" selector="(//div[@data-role='buttons'])[{{arg1}}][not(contains(@style,'text-align:'))]" parameterized="true"/>
@@ -46,6 +48,7 @@
4648
<element name="base" type="button" selector="(//div[contains(@class,'pagebuilder-button-item')])[{{arg1}}]//a[contains(@class,'pagebuilder-button')]" parameterized="true"/>
4749
<element name="emptyButtonItemElement" type="button" selector="(//div[contains(@class,'pagebuilder-button-item')])[{{arg1}}]//a[contains(@class,'pagebuilder-button')]//span[contains(@class,'placeholder-text') and not(text())]" parameterized="true"/>
4850
<element name="editableButtonItemElement" type="button" selector="(//div[contains(@class,'pagebuilder-button-item')])[{{arg1}}]//a[contains(@class,'pagebuilder-button')]//span[contains(@contenteditable,'true')]" parameterized="true"/>
51+
<element name="jsButtonSelector" type="text" selector="document.querySelectorAll('.pagebuilder-button-item')[{{arg1}}-1]" parameterized="true"/>
4952
<!-- Content Configuration -->
5053
<element name="buttonItemText" type="button" selector="(//div[contains(@class,'pagebuilder-button-item')])[{{arg1}}]//a[contains(@class,'pagebuilder-button')]//span[contains(.,'{{arg2}}')]" parameterized="true"/>
5154
<element name="buttonItemType" type="button" selector="(//div[contains(@class,'pagebuilder-button-item')])[{{arg1}}]//a[@class='{{arg2}}']" parameterized="true"/>
@@ -66,6 +69,7 @@
6669
<element name="allButtons" type="button" selector="//div[@data-role='button-item']"/>
6770
<element name="base" type="button" selector="(//div[@data-role='button-item'])[{{arg1}}]" parameterized="true"/>
6871
<element name="emptyButtonItemElement" type="button" selector="(//div[@data-role='button-item'])[{{arg1}}]//a//span[not(text())]" parameterized="true"/>
72+
<element name="jsButtonSelector" type="text" selector="document.querySelectorAll('div[data-role=\'button-item\']')[{{arg1}}-1]" parameterized="true"/>
6973
<!-- Content Configuration -->
7074
<element name="buttonItemText" type="button" selector="(//div[@data-role='button-item'])[{{arg1}}]//a//span[contains(.,'{{arg2}}')]" parameterized="true"/>
7175
<element name="buttonItemType" type="button" selector="(//div[@data-role='button-item'])[{{arg1}}]//a[@class='{{arg2}}']" parameterized="true"/>

0 commit comments

Comments
 (0)