Skip to content

Commit a1317ac

Browse files
Merge remote-tracking branch 'magento2/2.4-develop' into graphQl/32370-sort_customer_orders
2 parents 1627084 + 81340cb commit a1317ac

File tree

31 files changed

+968
-154
lines changed

31 files changed

+968
-154
lines changed
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
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+
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
11+
<test name="AdminProductGridSwitchViewBookmarkTest">
12+
<annotations>
13+
<features value="Catalog"/>
14+
<stories value="Switch views in product grid"/>
15+
<title value="Verify that newly created view on product grid and switching between default view is correct"/>
16+
<description value="Verify that newly created view on product grid and switching between default view is correct"/>
17+
<severity value="MAJOR"/>
18+
<testCaseId value="ACP2E-258"/>
19+
<group value="product"/>
20+
</annotations>
21+
22+
<before>
23+
<actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/>
24+
<actionGroup ref="AdminOpenProductIndexPageActionGroup" stepKey="navigateToProductIndex"/>
25+
</before>
26+
27+
<after>
28+
<actionGroup ref="AdminLogoutActionGroup" stepKey="logoutOfAdmin"/>
29+
</after>
30+
31+
<waitForElementVisible selector="{{AdminGridColumnsControls.columns}}" stepKey="waitForAdminGridColumnControlsColumn"/>
32+
<click selector="{{AdminGridColumnsControls.columns}}" stepKey="clickAdminGridColumnControlsColumn"/>
33+
<waitForElementVisible selector="{{AdminDataGridHeaderSection.columnCheckbox('Special Price')}}" stepKey="verifyAdminGridColumnControlsForSelectedColumnVisible"/>
34+
<click selector="{{AdminDataGridHeaderSection.columnCheckbox('Special Price')}}" stepKey="clickForAdminGridControlForSelectedColumn"/>
35+
<waitForElementVisible selector="{{AdminGridHeaders.headerByName('Special Price')}}" stepKey="waitForAdminGridColumnHeaderForSelectedColumn"/>
36+
<click selector="{{AdminGridColumnsControls.columns}}" stepKey="closeAdminGridColumnControls"/>
37+
<waitForElementNotVisible selector="{{AdminGridColumnsControls.columnName('Special Price')}}" stepKey="verifyAdminGridColumnControlsForSelectedColumnNotVisible"/>
38+
39+
<click selector="{{AdminDataGridHeaderSection.bookmarkToggle}}" stepKey="openViewBookmarks"/>
40+
<waitForElementVisible selector="{{AdminGridDefaultViewControls.saveViewAs}}" stepKey="waitForSaveViewButton"/>
41+
<click selector="{{AdminGridDefaultViewControls.saveViewAs}}" stepKey="saveView"/>
42+
<waitForElementVisible selector="{{AdminGridDefaultViewControls.viewName}}" stepKey="waitForViewNameInput"/>
43+
<fillField selector="{{AdminGridDefaultViewControls.viewName}}" userInput="{{NewGridView.name}}" stepKey="inputViewName"/>
44+
<pressKey selector="{{AdminGridDefaultViewControls.viewName}}" parameterArray="[\Facebook\WebDriver\WebDriverKeys::ENTER]" stepKey="pressEnterKey"/>
45+
<waitForElementNotVisible selector="{{AdminGridDefaultViewControls.viewName}}" stepKey="waitForViewNameInputGone"/>
46+
47+
<waitForPageLoad stepKey="waitForGridLoad" time="10"/>
48+
49+
<grabTextFrom selector="{{AdminGridHeaders.headerByName('Special Price')}}" stepKey="grabCustomViewHeaderColumn"/>
50+
<assertEquals message="ExpectedSpecialPriceHeader" stepKey="assertExpectedSpecialPriceHeader">
51+
<actualResult type="variable">$grabCustomViewHeaderColumn</actualResult>
52+
<expectedResult type="string">Special Price</expectedResult>
53+
</assertEquals>
54+
55+
<click selector="{{AdminGridDefaultViewControls.viewByName('Default View')}}" stepKey="clickOnViewButton"/>
56+
<waitForPageLoad stepKey="waitForGridReset"/>
57+
58+
<waitForElementNotVisible selector="{{AdminGridHeaders.headerByName('Special Price')}}" stepKey="verifyAdminGridHeaderForSelectedViewNotVisible"/>
59+
60+
<click selector="{{AdminDataGridHeaderSection.bookmarkToggle}}" stepKey="openViewBookmarksForDeletion"/>
61+
<click selector="{{AdminGridDefaultViewControls.viewByName(NewGridView.name)}}{{AdminEnhancedMediaGalleryActionsSection.editViewButtonPartial}}" stepKey="clickEditButton"/>
62+
<seeElement selector="{{AdminEnhancedMediaGalleryActionsSection.deleteViewButton}}" stepKey="seeDeleteButton"/>
63+
<click selector="{{AdminEnhancedMediaGalleryActionsSection.deleteViewButton}}" stepKey="clickDeleteButton"/>
64+
<waitForPageLoad stepKey="waitForDeletion" time="10"/>
65+
</test>
66+
</tests>

app/code/Magento/Config/Test/Mftf/Section/AdminConfigSection.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,5 +23,9 @@
2323
<element name="collapsibleSectionByTitle" type="text" selector="//form[@id='config-edit-form']//div[@class='section-config'][contains(.,'{{sectionTitle}}')]" parameterized="true" />
2424
<element name="expandedSectionByTitle" type="text" selector="//form[@id='config-edit-form']//div[@class='section-config active'][contains(.,'{{sectionTitle}}')]" parameterized="true" />
2525
<element name="errorElement" type="text" selector="#{{inputId}}-error" parameterized="true" />
26+
<element name="defaultCurrency" type="select" selector="#currency_options_default" />
27+
<element name="allowedCurrencies" type="multiselect" selector="#currency_options_allow" />
28+
<element name="defaultCurrencyCheckbox" type="checkbox" selector="#currency_options_default_inherit"/>
29+
<element name="allowedCurrencyCheckbox" type="checkbox" selector="#currency_options_allow_inherit"/>
2630
</section>
2731
</sections>

app/code/Magento/Customer/Block/Account/AuthenticationPopup.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ public function __construct(
4242
}
4343

4444
/**
45+
* Returns serialize jsLayout
46+
*
4547
* @return string
4648
*/
4749
public function getJsLayout()
@@ -60,7 +62,8 @@ public function getConfig()
6062
'autocomplete' => $this->escapeHtml($this->isAutocompleteEnabled()),
6163
'customerRegisterUrl' => $this->escapeUrl($this->getCustomerRegisterUrlUrl()),
6264
'customerForgotPasswordUrl' => $this->escapeUrl($this->getCustomerForgotPasswordUrl()),
63-
'baseUrl' => $this->escapeUrl($this->getBaseUrl())
65+
'baseUrl' => $this->escapeUrl($this->getBaseUrl()),
66+
'customerLoginUrl' => $this->getUrl('customer/ajax/login'),
6467
];
6568
}
6669

app/code/Magento/Customer/Test/Unit/Block/Account/AuthenticationPopupTest.php

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ function ($string) {
102102
*
103103
* @dataProvider dataProviderGetConfig
104104
*/
105-
public function testGetConfig($isAutocomplete, $baseUrl, $registerUrl, $forgotUrl, array $result)
105+
public function testGetConfig($isAutocomplete, $baseUrl, $registerUrl, $forgotUrl, $loginUrl, array $result)
106106
{
107107
$this->scopeConfigMock->expects($this->any())
108108
->method('getValue')
@@ -129,6 +129,7 @@ public function testGetConfig($isAutocomplete, $baseUrl, $registerUrl, $forgotUr
129129
[
130130
['customer/account/create', [], $registerUrl],
131131
['customer/account/forgotpassword', [], $forgotUrl],
132+
['customer/ajax/login', [], $loginUrl],
132133
]
133134
);
134135

@@ -146,47 +147,55 @@ public function dataProviderGetConfig()
146147
'base',
147148
'reg',
148149
'forgot',
150+
'loginUrl',
149151
[
150152
'autocomplete' => 'escapeHtmloff',
151153
'customerRegisterUrl' => 'escapeUrlreg',
152154
'customerForgotPasswordUrl' => 'escapeUrlforgot',
153155
'baseUrl' => 'escapeUrlbase',
156+
'customerLoginUrl'=>'loginUrl',
154157
],
155158
],
156159
[
157160
1,
158161
'',
159162
'reg',
160163
'forgot',
164+
'loginUrl',
161165
[
162166
'autocomplete' => 'escapeHtmlon',
163167
'customerRegisterUrl' => 'escapeUrlreg',
164168
'customerForgotPasswordUrl' => 'escapeUrlforgot',
165169
'baseUrl' => 'escapeUrl',
170+
'customerLoginUrl'=>'loginUrl',
166171
],
167172
],
168173
[
169174
'',
170175
'base',
171176
'',
172177
'forgot',
178+
'loginUrl',
173179
[
174180
'autocomplete' => 'escapeHtmloff',
175181
'customerRegisterUrl' => 'escapeUrl',
176182
'customerForgotPasswordUrl' => 'escapeUrlforgot',
177183
'baseUrl' => 'escapeUrlbase',
184+
'customerLoginUrl'=>'loginUrl',
178185
],
179186
],
180187
[
181188
true,
182189
'base',
183190
'reg',
184191
'',
192+
'loginUrl',
185193
[
186194
'autocomplete' => 'escapeHtmlon',
187195
'customerRegisterUrl' => 'escapeUrlreg',
188196
'customerForgotPasswordUrl' => 'escapeUrl',
189197
'baseUrl' => 'escapeUrlbase',
198+
'customerLoginUrl'=>'loginUrl',
190199
],
191200
],
192201
];
@@ -202,8 +211,14 @@ public function dataProviderGetConfig()
202211
*
203212
* @dataProvider dataProviderGetConfig
204213
*/
205-
public function testGetSerializedConfig($isAutocomplete, $baseUrl, $registerUrl, $forgotUrl, array $result)
206-
{
214+
public function testGetSerializedConfig(
215+
$isAutocomplete,
216+
$baseUrl,
217+
$registerUrl,
218+
$forgotUrl,
219+
$loginUrl,
220+
array $result
221+
) {
207222
$this->scopeConfigMock->expects($this->any())
208223
->method('getValue')
209224
->with(Form::XML_PATH_ENABLE_AUTOCOMPLETE, ScopeInterface::SCOPE_STORE, null)
@@ -229,6 +244,7 @@ public function testGetSerializedConfig($isAutocomplete, $baseUrl, $registerUrl,
229244
[
230245
['customer/account/create', [], $registerUrl],
231246
['customer/account/forgotpassword', [], $forgotUrl],
247+
['customer/ajax/login', [], $loginUrl],
232248
]
233249
);
234250
$this->serializerMock->expects($this->any())->method('serialize')

app/code/Magento/Customer/view/frontend/web/js/action/login.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,15 @@ define([
2222
*/
2323
action = function (loginData, redirectUrl, isGlobal, messageContainer) {
2424
messageContainer = messageContainer || globalMessageList;
25+
let customerLoginUrl = 'customer/ajax/login';
26+
27+
if (loginData.customerLoginUrl) {
28+
customerLoginUrl = loginData.customerLoginUrl;
29+
delete loginData.customerLoginUrl;
30+
}
2531

2632
return storage.post(
27-
'customer/ajax/login',
33+
customerLoginUrl,
2834
JSON.stringify(loginData),
2935
isGlobal
3036
).done(function (response) {

app/code/Magento/Customer/view/frontend/web/js/view/authentication-popup.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ define([
8080
formDataArray.forEach(function (entry) {
8181
loginData[entry.name] = entry.value;
8282
});
83-
83+
loginData['customerLoginUrl'] = window.authenticationPopup.customerLoginUrl;
8484
if (formElement.validation() &&
8585
formElement.validation('isValid')
8686
) {

0 commit comments

Comments
 (0)