Skip to content

Commit 0b01c57

Browse files
authored
Merge branch '2.4-develop' into add-aria-links
2 parents 3cf162b + bf4cdad commit 0b01c57

File tree

184 files changed

+3361
-834
lines changed

Some content is hidden

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

184 files changed

+3361
-834
lines changed

.github/stale.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
# Configuration for probot-stale - https://github.com/probot/stale
22

33
# Number of days of inactivity before an Issue or Pull Request becomes stale
4-
daysUntilStale: 76
4+
daysUntilStale: 152
55

66
# Number of days of inactivity before an Issue or Pull Request with the stale label is closed.
77
# Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale.
8-
daysUntilClose: 14
8+
daysUntilClose: 28
99

1010
# Only issues or pull requests with all of these labels are check if stale. Defaults to `[]` (disabled)
1111
onlyLabels: []
@@ -15,6 +15,8 @@ exemptLabels:
1515
- "Priority: P0"
1616
- "Priority: P1"
1717
- "Priority: P2"
18+
- "Severity: S0"
19+
- "Severity: S1"
1820
- "Progress: dev in progress"
1921
- "Progress: PR in progress"
2022
- "Progress: done"
@@ -39,7 +41,7 @@ staleLabel: "stale issue"
3941
# Comment to post when marking as stale. Set to `false` to disable
4042
markComment: >
4143
This issue has been automatically marked as stale because it has not had
42-
recent activity. It will be closed after 14 days if no further activity occurs.
44+
recent activity. It will be closed after 28 days if no further activity occurs.
4345
Is this issue still relevant? If so, what is blocking it? Is there anything you can do to help move it forward?
4446
Thank you for your contributions!
4547
# Comment to post when removing the stale label.

README.md

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@ Welcome to Magento 2 installation! We're glad you chose to install Magento 2, a
2121

2222
## Magento System Requirements
2323

24-
[Magento System Requirements](https://devdocs.magento.com/guides/v2.4/install-gde/system-requirements.html).
24+
* [Magento System Requirements](https://devdocs.magento.com/guides/v2.4/install-gde/system-requirements.html)
2525

2626
## Install Magento
2727

28-
* [Installation Guide](https://devdocs.magento.com/guides/v2.4/install-gde/bk-install-guide.html).
28+
* [Installation Guide](https://devdocs.magento.com/guides/v2.4/install-gde/bk-install-guide.html)
2929

30-
## Learn More About GraphQL in Magento 2
30+
## Learn About GraphQL in Magento 2
3131

3232
* [GraphQL Developer Guide](https://devdocs.magento.com/guides/v2.4/graphql/index.html)
3333

@@ -37,12 +37,14 @@ Contributions can take the form of new components or features, changes to existi
3737

3838
To learn about how to contribute, click [here][1].
3939

40-
To learn about issues, click [here][2]. To open an issue, click [here][3].
40+
To learn about issues, click [here][2].
41+
42+
To open an issue, click [here][3].
4143

4244
To suggest documentation improvements, click [here][4].
4345

44-
[1]: https://devdocs.magento.com/guides/v2.4/contributor-guide/contributing.html
45-
[2]: https://devdocs.magento.com/guides/v2.4/contributor-guide/contributing.html#report
46+
[1]: https://devdocs.magento.com/contributor-guide/contributing.html
47+
[2]: https://devdocs.magento.com/contributor-guide/contributing.html#report
4648
[3]: https://github.com/magento/magento2/issues
4749
[4]: https://devdocs.magento.com
4850

@@ -61,7 +63,7 @@ Magento is thankful for any contribution that can improve our codebase, document
6163
### Labels Applied by the Magento Team
6264

6365
We apply labels to public Pull Requests and Issues to help other participants retrieve additional information about current progress, component assignments, Magento release lines, and much more.
64-
Please review the [Code Contributions guide](https://devdocs.magento.com/guides/v2.4/contributor-guide/contributing.html#labels) for detailed information on labels used in Magento 2 repositories.
66+
Please review the [Code Contributions guide](https://devdocs.magento.com/contributor-guide/contributing.html#labels) for detailed information on labels used in Magento 2 repositories.
6567

6668
## Reporting Security Issues
6769

@@ -85,6 +87,6 @@ To connect with Magento and the Community, join us on the [Magento Community Eng
8587

8688
We have channels for each project. These channels are recommended for new members:
8789

88-
* [general](https://magentocommeng.slack.com/messages/C4YS78WE6): Open chat for introductions and Magento 2 questions
89-
* [github](https://magentocommeng.slack.com/messages/C7KB93M32): Support for GitHub issues, pull requests, and processes
90-
* [public-backlog](https://magentocommeng.slack.com/messages/CCV3J3RV5): Discussions of the Magento 2 backlog
90+
* [general](https://magentocommeng.slack.com/archives/C4YS78WE6): Open chat for introductions and Magento 2 questions
91+
* [github](https://magentocommeng.slack.com/archives/C7KB93M32): Support for GitHub issues, pull requests, and processes
92+
* [public-backlog](https://magentocommeng.slack.com/archives/CCV3J3RV5): Discussions of the Magento 2 backlog

app/code/Magento/Backend/Block/Widget/Form.php

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,10 @@ protected function _applyTypeSpecificConfig($inputType, $element, \Magento\Eav\M
230230
case 'date':
231231
$element->setDateFormat($this->_localeDate->getDateFormatWithLongYear());
232232
break;
233+
case 'datetime':
234+
$element->setDateFormat($this->_localeDate->getDateFormatWithLongYear());
235+
$element->setTimeFormat($this->_localeDate->getTimeFormat());
236+
break;
233237
case 'multiline':
234238
$element->setLineCount($attribute->getMultilineCount());
235239
break;
@@ -246,7 +250,13 @@ protected function _applyTypeSpecificConfig($inputType, $element, \Magento\Eav\M
246250
*/
247251
protected function _addElementTypes(\Magento\Framework\Data\Form\AbstractForm $baseElement)
248252
{
249-
$types = $this->_getAdditionalElementTypes();
253+
$types = array_merge(
254+
[
255+
'datetime' => 'date'
256+
],
257+
$this->_getAdditionalElementTypes()
258+
);
259+
250260
foreach ($types as $code => $className) {
251261
$baseElement->addType($code, $className);
252262
}

app/code/Magento/Backend/view/adminhtml/web/template/dynamic-rows/grid.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
<div class="admin__control-table-pagination" visible="!!element.getRecordCount()">
3838
<div class="admin__data-grid-pager">
3939
<button class="action-previous" type="button" data-bind="attr: {title: $t('Previous Page')}, click: previousPage, disable: isFirst()"></button>
40-
<input class="admin__control-text" type="number" data-bind="attr: {id: ++ko.uid}, value: currentPage">
40+
<input class="admin__control-text" type="number" data-bind="attr: {id: ++ko.uid}, value: currentPage"/>
4141
<label class="admin__control-support-text" data-bind="attr: {for: ko.uid}, text: 'of ' + pages()"></label>
4242
<button class="action-next" type="button" data-bind="attr: {title: $t('Next Page')}, click: nextPage, disable: isLast()"></button>
4343
</div>
@@ -86,7 +86,7 @@
8686
<div class="message message-notice notice">
8787
<span
8888
translate="'Search strings are either normal strings or regular expressions (PCRE). They are matched in the same order as entered.'"></span>
89-
<br>
89+
<br/>
9090
<span
9191
translate="'Examples'"></span>:
9292
<span class="code-sample">Firefox: /^mozilla/i</span>

app/code/Magento/Bundle/Test/Mftf/Test/NewProductsListWidgetBundleProductTest.xml

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,15 @@
4040
<actionGroup ref="AdminClickAddProductToggleAndSelectProductTypeActionGroup" stepKey="clickAddBundleProduct">
4141
<argument name="productType" value="bundle"/>
4242
</actionGroup>
43-
<fillField selector="{{AdminProductFormSection.productName}}" userInput="{{_defaultProduct.name}}" stepKey="fillProductName"/>
44-
<fillField selector="{{AdminProductFormSection.productSku}}" userInput="{{_defaultProduct.sku}}" stepKey="fillProductSku"/>
45-
<fillField selector="{{AdminProductFormSection.setProductAsNewFrom}}" userInput="01/1/2000" stepKey="fillProductNewFrom"/>
46-
<fillField selector="{{AdminProductFormSection.setProductAsNewTo}}" userInput="01/1/2099" stepKey="fillProductNewTo"/>
47-
43+
<actionGroup ref="FillProductNameAndSkuInProductFormActionGroup" stepKey="fillProductName">
44+
<argument name="product" value="_defaultProduct"/>
45+
</actionGroup>
46+
<comment userInput="Comment is added to preserve the step key for backward compatibility" stepKey="fillProductSku"/>
47+
<actionGroup ref="AdminSetProductAsNewDateActionGroup" stepKey="fillProductNewFrom">
48+
<argument name="fromDate" value="01/1/2000"/>
49+
<argument name="toDate" value="01/1/2099"/>
50+
</actionGroup>
51+
<comment userInput="Comment is added to preserve the step key for backward compatibility" stepKey="fillProductNewTo"/>
4852
<!-- and then configure bundled items for this product -->
4953

5054
<scrollTo selector="{{AdminProductFormBundleSection.addOption}}" stepKey="scrollToAddOptionButton"/>
@@ -69,9 +73,12 @@
6973
<!-- If PageCache is enabled, Cache clearing happens here, via merge -->
7074

7175
<!-- Check for product on the CMS page with the New Products widget -->
72-
73-
<amOnPage url="{{_newDefaultCmsPage.identifier}}" stepKey="amOnCmsPage"/>
74-
<waitForPageLoad stepKey="waitForCmsPage"/>
75-
<see selector="{{StorefrontCategoryMainSection.ProductItemInfo}}" userInput="{{_defaultProduct.name}}" stepKey="seeProductName"/>
76+
<actionGroup ref="StorefrontGoToCMSPageActionGroup" stepKey="amOnCmsPage">
77+
<argument name="identifier" value="{{_newDefaultCmsPage.identifier}}"/>
78+
</actionGroup>
79+
<comment userInput="Comment is added to preserve the step key for backward compatibility" stepKey="waitForCmsPage"/>
80+
<actionGroup ref="AssertStorefrontProductIsShownOnCmsPageActionGroup" stepKey="seeProductName">
81+
<argument name="cmsTitle" value="{{_newDefaultCmsPage.title}}"/>
82+
</actionGroup>
7683
</test>
7784
</tests>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
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+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
11+
<actionGroup name="AssertStorefrontCaptchaVisibleOnShoppingCartApplyCouponCodeFormActionGroup">
12+
<waitForElement selector="{{StorefrontSalesRuleCartCouponSection.couponHeader}}" time="30" stepKey="waitForCouponHeader"/>
13+
<conditionalClick selector="{{StorefrontSalesRuleCartCouponSection.couponHeader}}" dependentSelector="{{StorefrontSalesRuleCartCouponSection.discountBlockActive}}" visible="false" stepKey="clickCouponHeader"/>
14+
<waitForElementVisible selector="{{StorefrontSalesRuleCartCouponSection.couponField}}" stepKey="waitForCouponField"/>
15+
<waitForElementVisible selector="{{StorefrontShoppingCartApplyDiscountCodeSection.captchaField}}" stepKey="waitToSeeCaptchaField"/>
16+
<waitForElementVisible selector="{{StorefrontShoppingCartApplyDiscountCodeSection.captchaImg}}" stepKey="waitToSeeCaptchaImage"/>
17+
<waitForElementVisible selector="{{StorefrontShoppingCartApplyDiscountCodeSection.captchaReload}}" stepKey="waitToSeeCaptchaReloadButton"/>
18+
<reloadPage stepKey="refreshPage"/>
19+
<waitForPageLoad stepKey="waitForPageReloaded"/>
20+
<waitForElement selector="{{StorefrontSalesRuleCartCouponSection.couponHeader}}" time="30" stepKey="waitForCouponHeaderAfterReload"/>
21+
<conditionalClick selector="{{StorefrontSalesRuleCartCouponSection.couponHeader}}" dependentSelector="{{StorefrontSalesRuleCartCouponSection.discountBlockActive}}" visible="false" stepKey="clickCouponHeaderAfterReload"/>
22+
<waitForElementVisible selector="{{StorefrontSalesRuleCartCouponSection.couponField}}" stepKey="waitForCouponFieldAfterReload"/>
23+
<waitForElementVisible selector="{{StorefrontShoppingCartApplyDiscountCodeSection.captchaField}}" stepKey="waitToSeeCaptchaFieldAfterPageReload"/>
24+
<waitForElementVisible selector="{{StorefrontShoppingCartApplyDiscountCodeSection.captchaImg}}" stepKey="waitToSeeCaptchaImageAfterPageReload"/>
25+
<waitForElementVisible selector="{{StorefrontShoppingCartApplyDiscountCodeSection.captchaReload}}" stepKey="waitToSeeCaptchaReloadButtonAfterPageReload"/>
26+
</actionGroup>
27+
</actionGroups>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
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+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
11+
<actionGroup name="StorefrontCustomerChangePasswordWithCaptchaActionGroup" extends="StorefrontEditCustomerPasswordActionGroup">
12+
<annotations>
13+
<description>EXTENDS: StorefrontEditCustomerPasswordActionGroup. Fills in the Captcha field on the Storefront Customer Information page.</description>
14+
</annotations>
15+
<arguments>
16+
<argument name="captcha" type="string"/>
17+
</arguments>
18+
19+
<fillField selector="{{StorefrontCustomerAccountInformationSection.captchaField}}" userInput="{{captcha}}" stepKey="fillCaptchaField" after="confirmNewPassword"/>
20+
</actionGroup>
21+
</actionGroups>
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+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
11+
<actionGroup name="StorefrontShoppingCartFillCaptchaFieldOnApplyDiscountFormActionGroup">
12+
<arguments>
13+
<argument name="captcha" type="string"/>
14+
</arguments>
15+
16+
<fillField userInput="{{captcha}}" selector="{{StorefrontShoppingCartApplyDiscountCodeSection.captchaField}}" stepKey="fillCaptchaField"/>
17+
</actionGroup>
18+
</actionGroups>

app/code/Magento/Captcha/Test/Mftf/Data/CaptchaConfigData.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,4 +145,10 @@
145145
<data key="label">ABCDEFGHJKMnpqrstuvwxyz23456789</data>
146146
<data key="value">ABCDEFGHJKMnpqrstuvwxyz23456789</data>
147147
</entity>
148+
<entity name="StorefrontCaptchaOnApplyingCouponCodeFormsConfigData">
149+
<data key="path">customer/captcha/forms</data>
150+
<data key="scope_id">0</data>
151+
<data key="label">Applying coupon code</data>
152+
<data key="value">sales_rule_coupon_request</data>
153+
</entity>
148154
</entities>
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
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="StorefrontShoppingCartApplyDiscountCodeSection">
12+
<element name="captchaField" type="input" selector="#discount-coupon-form input[name='captcha[sales_rule_coupon_request]']" />
13+
<element name="captchaImg" type="block" selector="#discount-coupon-form img.captcha-img"/>
14+
<element name="captchaReload" type="block" selector="#discount-coupon-form button.captcha-reload"/>
15+
</section>
16+
</sections>
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
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="StorefrontCaptchaChangeCustomerPasswordTest">
12+
<annotations>
13+
<features value="Captcha"/>
14+
<stories value="Change customer password with enabled captcha"/>
15+
<title value="Enabled captcha on changing customer password form"/>
16+
<description value="Customer should be able change the password with enabled captcha"/>
17+
<severity value="MAJOR"/>
18+
<group value="captcha"/>
19+
</annotations>
20+
<before>
21+
<magentoCLI command="config:set {{StorefrontCaptchaOnCustomerChangePasswordConfigData.path}} {{StorefrontCaptchaOnCustomerChangePasswordConfigData.value}}" stepKey="enableUserEditCaptcha"/>
22+
<magentoCLI command="config:set {{StorefrontCustomerCaptchaLength3ConfigData.path}} {{StorefrontCustomerCaptchaLength3ConfigData.value}}" stepKey="setCaptchaLength"/>
23+
<magentoCLI command="config:set {{StorefrontCustomerCaptchaSymbols1ConfigData.path}} {{StorefrontCustomerCaptchaSymbols1ConfigData.value}}" stepKey="setCaptchaSymbols"/>
24+
<magentoCLI command="config:set {{StorefrontCustomerCaptchaModeAlwaysConfigData.path}} {{StorefrontCustomerCaptchaModeAlwaysConfigData.value}}" stepKey="setCaptchaAlwaysVisible"/>
25+
<actionGroup ref="CliCacheCleanActionGroup" stepKey="cleanInvalidatedCaches">
26+
<argument name="tags" value="config full_page"/>
27+
</actionGroup>
28+
<createData entity="Simple_US_Customer" stepKey="customer"/>
29+
<actionGroup ref="LoginToStorefrontActionGroup" stepKey="loginToStorefrontAccount">
30+
<argument name="Customer" value="$$customer$$"/>
31+
</actionGroup>
32+
</before>
33+
<after>
34+
<magentoCLI command="config:set {{StorefrontCaptchaOnCustomerLoginConfigData.path}} {{StorefrontCaptchaOnCustomerLoginConfigData.value}},{{StorefrontCaptchaOnCustomerForgotPasswordConfigData.value}}" stepKey="enableCaptchaOnDefaultForms"/>
35+
<magentoCLI command="config:set {{StorefrontCustomerCaptchaDefaultLengthConfigData.path}} {{StorefrontCustomerCaptchaDefaultLengthConfigData.value}}" stepKey="setDefaultCaptchaLength"/>
36+
<magentoCLI command="config:set {{StorefrontCustomerCaptchaDefaultSymbolsConfigData.path}} {{StorefrontCustomerCaptchaDefaultSymbolsConfigData.value}}" stepKey="setDefaultCaptchaSymbols"/>
37+
<magentoCLI command="config:set {{StorefrontCustomerCaptchaModeAfterFailConfigData.path}} {{StorefrontCustomerCaptchaModeAfterFailConfigData.value}}" stepKey="setCaptchaDefaultVisibility"/>
38+
<actionGroup ref="CliCacheCleanActionGroup" stepKey="cleanInvalidatedCaches">
39+
<argument name="tags" value="config full_page"/>
40+
</actionGroup>
41+
<deleteData createDataKey="customer" stepKey="deleteCustomer"/>
42+
</after>
43+
44+
<actionGroup ref="StorefrontOpenCustomerAccountInfoEditPageActionGroup" stepKey="goToCustomerEditPage"/>
45+
<actionGroup ref="AssertCaptchaVisibleOnCustomerAccountInfoActionGroup" stepKey="assertCaptchaVisible"/>
46+
<actionGroup ref="StorefrontCustomerChangePasswordWithCaptchaActionGroup" stepKey="changePasswordWithIncorrectCaptcha">
47+
<argument name="currentPassword" value="{{Simple_US_Customer.password}}"/>
48+
<argument name="newPassword" value="{{Colorado_US_Customer.password}}"/>
49+
<argument name="captcha" value="{{WrongCaptcha.value}}"/>
50+
</actionGroup>
51+
<actionGroup ref="AssertMessageCustomerChangeAccountInfoActionGroup" stepKey="assertErrorMessage">
52+
<argument name="message" value="Incorrect CAPTCHA"/>
53+
<argument name="messageType" value="error"/>
54+
</actionGroup>
55+
<actionGroup ref="StorefrontCustomerChangePasswordWithCaptchaActionGroup" stepKey="changePasswordWithCorrectValues">
56+
<argument name="currentPassword" value="{{Simple_US_Customer.password}}"/>
57+
<argument name="newPassword" value="{{Colorado_US_Customer.password}}"/>
58+
<argument name="captcha" value="{{PreconfiguredCaptcha.value}}"/>
59+
</actionGroup>
60+
<actionGroup ref="AssertMessageCustomerChangeAccountInfoActionGroup" stepKey="assertSuccessMessage">
61+
<argument name="message" value="You saved the account information."/>
62+
</actionGroup>
63+
</test>
64+
</tests>

0 commit comments

Comments
 (0)