Skip to content

Commit b96c33c

Browse files
Merge branch '2.4-develop' of github.com:magento-gl/magento2ce into ACP2E-479_19May2022
2 parents 39d8776 + 0117201 commit b96c33c

File tree

12 files changed

+363
-58
lines changed

12 files changed

+363
-58
lines changed
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
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="AdminPasswordResetSettingsTest">
12+
<annotations>
13+
<features value="Backend"/>
14+
<stories value="[SPM-2] Password Reset settings (for Admin)"/>
15+
<title value="[SPM-2] Password Reset settings (for Admin)"/>
16+
<description value="Password Reset settings for Admin"/>
17+
<severity value="MINOR"/>
18+
<testCaseId value="MC-27441"/>
19+
<group value="Admin_UI"/>
20+
</annotations>
21+
22+
<before>
23+
<actionGroup ref="AdminLoginActionGroup" stepKey="LoginAsAdmin"/>
24+
</before>
25+
26+
<after>
27+
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
28+
</after>
29+
30+
<!-- Goto Configurable>Advance>Admin and expand security Tab -->
31+
<amOnPage url="{{AdminConfigAdvancedAdmin.url}}" stepKey="navigateToConfigurationPage"/>
32+
<waitForPageLoad stepKey="wait1"/>
33+
<conditionalClick stepKey="expandSecurityTab" selector="{{AdminSection.SecurityTab}}" dependentSelector="{{AdminSection.CheckIfTabExpand}}" visible="true"/>
34+
35+
<!-- Uncheck system value and enter the number for password reset limitation -->
36+
<actionGroup ref="AdminUncheckUseSystemValueActionGroup" stepKey="uncheckUseSystemValue">
37+
<argument name="rowId" value="row_admin_security_max_number_password_reset_requests"/>
38+
</actionGroup>
39+
<waitForPageLoad stepKey="waitForPageLoad"/>
40+
<fillField selector="{{AdminSection.passwordLimitation}}" userInput="1" stepKey="fillNumbersForPasswordLimitation"/>
41+
<waitForPageLoad stepKey="waitForPageLoad1"/>
42+
43+
<!-- check system value after entering the password reset limitation and save the configuration-->
44+
<actionGroup ref="AdminCheckUseSystemValueActionGroup" stepKey="checkUseSystemValue">
45+
<argument name="rowId" value="row_admin_security_max_number_password_reset_requests"/>
46+
</actionGroup>
47+
<click selector="{{AdminConfigSection.saveButton}}" stepKey="saveConfig"/>
48+
<actionGroup ref="AssertMessageInAdminPanelActionGroup" stepKey="assertSaveCookieLifetimeSuccessMessage">
49+
<argument name="message" value="You saved the configuration."/>
50+
<argument name="messageType" value="success"/>
51+
</actionGroup>
52+
53+
<!--Collabase Security Tab and log out -->
54+
<click selector="{{AdminSection.SecurityTab}}" stepKey="minimiseSecurityTab"/>
55+
56+
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
57+
58+
<!-- login with wrong password and verify the error message first time1-->
59+
<amOnPage url="{{AdminLoginPage.url}}" stepKey="navigateToAdmin"/>
60+
<fillField selector="{{AdminLoginFormSection.username}}" userInput="admin" stepKey="fillUsername"/>
61+
<fillField selector="{{AdminLoginFormSection.password}}" userInput="Admin@1234" stepKey="fillPassword"/>
62+
<click selector="{{AdminLoginFormSection.signIn}}" stepKey="clickLogin"/>
63+
<actionGroup ref="AssertMessageOnAdminLoginActionGroup" stepKey="verifyErrorMessage"/>
64+
65+
<!-- login with wrong password and verify the error message first time2-->
66+
<amOnPage url="{{AdminLoginPage.url}}" stepKey="navigateToAdmin1"/>
67+
<fillField selector="{{AdminLoginFormSection.username}}" userInput="admin" stepKey="fillUsername1"/>
68+
<fillField selector="{{AdminLoginFormSection.password}}" userInput="Admin@1" stepKey="fillPassword1"/>
69+
<click selector="{{AdminLoginFormSection.signIn}}" stepKey="clickLogin1"/>
70+
<actionGroup ref="AssertMessageOnAdminLoginActionGroup" stepKey="verifyErrorMessage1"/>
71+
72+
<!-- login with valid credentials-->
73+
<actionGroup ref="AdminLoginActionGroup" stepKey="LoginAsAdmin1"/>
74+
75+
</test>
76+
</tests>

app/code/Magento/Catalog/Test/Mftf/Section/AdminCategoryBasicFieldSection/AdminCategoryBasicFieldSection.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,6 @@
2424
<element name="productsInCategory" type="input" selector="div[data-index='assign_products']" timeout="30"/>
2525
<element name="scheduleDesignUpdateTab" type="block" selector="div[data-index='schedule_design_update']" timeout="15"/>
2626
<element name="categoryNameRequiredField" type="text" selector="//label[@class='admin__field-error' and contains(text(),'This is a required field.')]" timeout="15"/>
27+
<element name="urlExistsErrorMessage" type="text" selector="//div[@class='message message-error error']//h4[contains(text(),'The value specified in the URL Key field would generate a URL that already exists.')]" timeout="30"/>
2728
</section>
2829
</sections>
Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
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="AdminCreateCategoriesWithTheSameCategoryNamesTest">
12+
<annotations>
13+
<features value="Catalog"/>
14+
<stories value="Create categories with the same category names"/>
15+
<title value="Create categories with the same category names"/>
16+
<description value="Verify that it's possible to create categories with the same URL keys, but only if they will have different URL paths"/>
17+
<severity value="MAJOR"/>
18+
<testCaseId value="MC-27423"/>
19+
<group value="Catalog"/>
20+
</annotations>
21+
22+
<before>
23+
<actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/>
24+
</before>
25+
26+
<actionGroup ref="AdminOpenCategoryPageActionGroup" stepKey="amOnAdminCategoryPage"/>
27+
<scrollToTopOfPage stepKey="scrollToTopOfPage1"/>
28+
<waitForPageLoad stepKey="waitForPageLoad1"/>
29+
<!--Create subcategory-->
30+
<actionGroup ref="CreateCategoryActionGroup" stepKey="createSubcategory1">
31+
<argument name="categoryEntity" value="SubCategory"/>
32+
</actionGroup>
33+
34+
<!--Open the root category and add subcategory with same name. Save category.-->
35+
<actionGroup ref="AdminOpenCategoryPageActionGroup" stepKey="amOnAdminCategoryPage1"/>
36+
<waitForPageLoad stepKey="waitForPageLoad2"/>
37+
<click selector="{{AdminCategorySidebarActionSection.AddSubcategoryButton}}" stepKey="clickOnAddSubCategory"/>
38+
<checkOption selector="{{AdminCategoryBasicFieldSection.EnableCategory}}" stepKey="enableNewCategory"/>
39+
<fillField selector="{{AdminCategoryBasicFieldSection.CategoryNameInput}}" userInput="{{SubCategory.name}}" stepKey="fillSameSubCategoryName"/>
40+
<actionGroup ref="AdminSaveCategoryActionGroup" stepKey="saveSameSubCategoryFirstTime"/>
41+
<seeElement selector="{{AdminCategoryBasicFieldSection.urlExistsErrorMessage}}" stepKey="validateErrorMessages"/>
42+
<actionGroup ref="AdminSaveCategoryActionGroup" stepKey="saveSameSubCategoryAgain"/>
43+
<seeElement selector="{{AdminCategoryBasicFieldSection.urlExistsErrorMessage}}" stepKey="validateSameErrorMessages"/>
44+
45+
<!--Create category1/NewCategory-->
46+
<actionGroup ref="AdminOpenCategoryPageActionGroup" stepKey="amOnAdminCategoryPage2"/>
47+
<waitForPageLoad stepKey="waitForPageLoadAgain"/>
48+
<click selector="{{AdminCategorySidebarActionSection.AddSubcategoryButton}}" stepKey="clickOnAddSubCategoryButton1"/>
49+
<actionGroup ref="CreateCategoryActionGroup" stepKey="createNewSubcategory1">
50+
<argument name="categoryEntity" value="FirstLevelSubCat"/>
51+
</actionGroup>
52+
<click selector="{{FirstLevelSubCat.name}}" stepKey="clickOnCreateCategory1"/>
53+
<waitForPageLoad stepKey="waitForCategory1PageLoad"/>
54+
<click selector="{{AdminCategorySidebarActionSection.AddSubcategoryButton}}" stepKey="clickOnAddSubCategory1Button"/>
55+
<checkOption selector="{{AdminCategoryBasicFieldSection.EnableCategory}}" stepKey="enableCategory1"/>
56+
<fillField selector="{{AdminCategoryBasicFieldSection.CategoryNameInput}}" userInput="{{SubCategory.name}}" stepKey="fillFirstSubCategoryName"/>
57+
<actionGroup ref="AdminSaveCategoryActionGroup" stepKey="saveFirstSubCategory"/>
58+
59+
<!-- Verify success message -->
60+
<actionGroup ref="AssertAdminCategorySaveSuccessMessageActionGroup" stepKey="assertSuccessMessage"/>
61+
62+
<!--Create category2/NewCategory-->
63+
<actionGroup ref="AdminOpenCategoryPageActionGroup" stepKey="amOnAdminCategoryPage3"/>
64+
<waitForPageLoad stepKey="waitForCategory2PageLoad"/>
65+
<click selector="{{AdminCategorySidebarActionSection.AddSubcategoryButton}}" stepKey="clickOnAddSubCategoryButton2"/>
66+
<actionGroup ref="CreateCategoryActionGroup" stepKey="createNewSubcategory2">
67+
<argument name="categoryEntity" value="SecondLevelSubCat"/>
68+
</actionGroup>
69+
<click selector="{{SecondLevelSubCat.name}}" stepKey="clickOnCreateCategory2"/>
70+
<waitForPageLoad stepKey="waitForPageLoad3"/>
71+
<click selector="{{AdminCategorySidebarActionSection.AddSubcategoryButton}}" stepKey="clickOnAddSubCategory2Button"/>
72+
<checkOption selector="{{AdminCategoryBasicFieldSection.EnableCategory}}" stepKey="enableCategory2"/>
73+
<fillField selector="{{AdminCategoryBasicFieldSection.CategoryNameInput}}" userInput="{{SubCategory.name}}" stepKey="fillSecondSubCategoryName"/>
74+
<actionGroup ref="AdminSaveCategoryActionGroup" stepKey="saveSecondSubCategory"/>
75+
76+
<!-- Verify success message -->
77+
<actionGroup ref="AssertAdminCategorySaveSuccessMessageActionGroup" stepKey="assertSuccessMessage1"/>
78+
79+
<!--Go to store front page-->
80+
<actionGroup ref="StorefrontOpenHomePageActionGroup" stepKey="openHomepage"/>
81+
82+
<!-- Check on storefront that category was created, Its URL path is '.../new.html' -->
83+
<actionGroup ref="StorefrontNavigateToCategoryUrlActionGroup" stepKey="goToCategoryStorefrontPage1">
84+
<argument name="categoryUrl" value="{{SubCategory.urlKey}}"/>
85+
</actionGroup>
86+
<see userInput="{{SubCategory.name}}" selector="{{StorefrontCategoryMainSection.CategoryTitle}}" stepKey="assertCategoryNewHtmlOnStorefront"/>
87+
88+
<!-- Check on storefront that category was created, Its URL path is '.../cat1/new.html'-->
89+
<amOnPage url="/{{FirstLevelSubCat.name}}/{{SubCategory.name}}.html" stepKey="goToConfigProductPage1"/>
90+
<seeElement selector="{{StorefrontCategoryMainSection.CategoryTitle}}" stepKey="assertCategoryCat1NewHtmlOnStorefront"/>
91+
92+
<!--Check on storefront that category was created, Its URL path is '.../cat2/new.html'-->
93+
<amOnPage url="/{{SecondLevelSubCat.name}}/{{SubCategory.name}}.html" stepKey="goToConfigProductPage2"/>
94+
<seeElement selector="{{StorefrontCategoryMainSection.CategoryTitle}}" stepKey="assertCategoryCat2NewHtmlOnStorefront"/>
95+
96+
<after>
97+
<actionGroup ref="AdminOpenCategoryPageActionGroup" stepKey="goToCategoryPage1"/>
98+
<click selector="{{AdminCategorySidebarTreeSection.categoryInTree(SecondLevelSubCat.name)}}" stepKey="clickCategoryLink"/>
99+
<click selector="{{AdminCategoryMainActionsSection.DeleteButton}}" stepKey="clickDelete"/>
100+
<waitForElementVisible selector="{{AdminCategoryModalSection.message}}" stepKey="waitForConfirmationModal"/>
101+
<see selector="{{AdminCategoryModalSection.message}}" userInput="Are you sure you want to delete this category?" stepKey="seeDeleteConfirmationMessage"/>
102+
<click selector="{{AdminCategoryModalSection.ok}}" stepKey="confirmDelete"/>
103+
<waitForPageLoad time="60" stepKey="waitForDeleteToFinish"/>
104+
<see selector="You deleted the category." stepKey="seeDeleteSuccess"/>
105+
<actionGroup ref="AdminExpandCategoryTreeActionGroup" stepKey="expandToSeeAllCategories"/>
106+
<dontSee selector="{{AdminCategorySidebarTreeSection.categoryInTree(SecondLevelSubCat.name)}}" stepKey="dontSeeCategoryInTree"/>
107+
108+
<click selector="{{AdminCategorySidebarTreeSection.categoryInTree(FirstLevelSubCat.name)}}" stepKey="clickCategoryLink1"/>
109+
<click selector="{{AdminCategoryMainActionsSection.DeleteButton}}" stepKey="clickDelete1"/>
110+
<waitForElementVisible selector="{{AdminCategoryModalSection.message}}" stepKey="waitForConfirmationModal1"/>
111+
<see selector="{{AdminCategoryModalSection.message}}" userInput="Are you sure you want to delete this category?" stepKey="seeDeleteConfirmationMessage1"/>
112+
<click selector="{{AdminCategoryModalSection.ok}}" stepKey="confirmDelete1"/>
113+
<waitForPageLoad time="60" stepKey="waitForDeleteToFinish1"/>
114+
<see selector="You deleted the category." stepKey="seeDeleteSuccess1"/>
115+
<actionGroup ref="AdminExpandCategoryTreeActionGroup" stepKey="expandToSeeAllCategories1"/>
116+
<dontSee selector="{{AdminCategorySidebarTreeSection.categoryInTree(FirstLevelSubCat.name)}}" stepKey="dontSeeCategoryInTree1"/>
117+
118+
<click selector="{{AdminCategorySidebarTreeSection.categoryInTree(SubCategory.name)}}" stepKey="clickCategoryLink2"/>
119+
<click selector="{{AdminCategoryMainActionsSection.DeleteButton}}" stepKey="clickDelete2"/>
120+
<waitForElementVisible selector="{{AdminCategoryModalSection.message}}" stepKey="waitForConfirmationModal2"/>
121+
<see selector="{{AdminCategoryModalSection.message}}" userInput="Are you sure you want to delete this category?" stepKey="seeDeleteConfirmationMessage2"/>
122+
<click selector="{{AdminCategoryModalSection.ok}}" stepKey="confirmDelete2"/>
123+
<waitForPageLoad time="60" stepKey="waitForDeleteToFinish2"/>
124+
<see selector="You deleted the category." stepKey="seeDeleteSuccess2"/>
125+
<actionGroup ref="AdminExpandCategoryTreeActionGroup" stepKey="expandToSeeAllCategories2"/>
126+
<dontSee selector="{{AdminCategorySidebarTreeSection.categoryInTree(SubCategory.name)}}" stepKey="dontSeeCategoryInTree2"/>
127+
128+
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
129+
</after>
130+
131+
</test>
132+
</tests>
133+

app/code/Magento/Catalog/Test/Mftf/Test/SaveProductWithCustomOptionsSecondWebsiteTest.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@
1717
<severity value="BLOCKER"/>
1818
<testCaseId value="MC-25687"/>
1919
<group value="product"/>
20+
<skip>
21+
<issueId value="MQE-3515">Skipped</issueId>
22+
</skip>
2023
</annotations>
2124
<before>
2225
<actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/>

app/code/Magento/CatalogGraphQl/Plugin/DesignLoader.php

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,35 +9,48 @@
99

1010
use Magento\Catalog\Model\Product;
1111
use Magento\Framework\Message\MessageInterface;
12-
use Magento\Framework\View\DesignLoader as ViewDesignLoader;
1312
use Magento\Framework\Message\ManagerInterface;
1413
use Magento\Catalog\Block\Product\ImageFactory;
14+
use Magento\Framework\App\AreaList;
15+
use Magento\Framework\App\State;
1516

1617
/**
1718
* Load necessary design files for GraphQL
1819
*/
1920
class DesignLoader
2021
{
2122
/**
22-
* @var DesignLoader
23+
* @var ManagerInterface
2324
*/
24-
private $designLoader;
25+
private $messageManager;
2526

2627
/**
27-
* @var ManagerInterface
28+
* Application arealist
29+
*
30+
* @var AreaList
2831
*/
29-
private $messageManager;
32+
private $areaList;
33+
34+
/**
35+
* Application State
36+
*
37+
* @var State
38+
*/
39+
private $appState;
3040

3141
/**
32-
* @param ViewDesignLoader $designLoader
3342
* @param ManagerInterface $messageManager
43+
* @param AreaList $areaList
44+
* @param State $appState
3445
*/
3546
public function __construct(
36-
ViewDesignLoader $designLoader,
37-
ManagerInterface $messageManager
47+
ManagerInterface $messageManager,
48+
AreaList $areaList,
49+
State $appState
3850
) {
39-
$this->designLoader = $designLoader;
4051
$this->messageManager = $messageManager;
52+
$this->areaList = $areaList;
53+
$this->appState = $appState;
4154
}
4255

4356
/**
@@ -57,7 +70,8 @@ public function beforeCreate(
5770
array $attributes = null
5871
) {
5972
try {
60-
$this->designLoader->load();
73+
$area = $this->areaList->getArea($this->appState->getAreaCode());
74+
$area->load(\Magento\Framework\App\Area::PART_DESIGN);
6175
} catch (\Magento\Framework\Exception\LocalizedException $e) {
6276
if ($e->getPrevious() instanceof \Magento\Framework\Config\Dom\ValidationException) {
6377
/** @var MessageInterface $message */

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,6 @@
1515
<element name="EnableSystemValue" type="button" selector="#admin_security_admin_account_sharing_inherit"/>
1616
<element name="systemValueForMaximumLoginFailures" type="checkbox" selector="#admin_security_lockout_failures_inherit"/>
1717
<element name="MaximumLoginFailures" type="input" selector="#admin_security_lockout_failures"/>
18+
<element name="passwordLimitation" type="input" selector="//input[@id='admin_security_max_number_password_reset_requests']"/>
1819
</section>
1920
</sections>

app/code/Magento/GraphQl/Model/Query/Logger/NewRelic.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,7 @@ public function execute(array $queryDetails)
5050
}
5151

5252
$transactionName = $queryDetails[LoggerInterface::OPERATION_NAMES] ?: '';
53-
if (strpos($transactionName, ',') !== false) {
54-
$transactionName = 'multipleQueries';
55-
}
53+
5654
$this->newRelicWrapper->setTransactionName('GraphQL-' . $transactionName);
5755
}
5856
}

dev/tests/static/testsuite/Magento/Test/Legacy/LegacyFixtureTest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ public function testNew(): void
3434
|| (
3535
strpos($file, 'dev/tests/') === false
3636
&& preg_match('/app\/code\/.*\/Test.*\/(_files|Fixtures)/', $file)
37+
&& !preg_match('/app\/code\/.*\/Tests?\/Performance\/(_files|Fixtures)/', $file)
3738
)
3839
)
3940
) {

setup/performance-toolkit/profiles/ce/small.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
<websites>1</websites> <!-- Number of websites to generate -->
1212
<store_groups>1</store_groups> <!--Number of stores-->
1313
<store_views>1</store_views> <!-- Number of store views -->
14+
<sources>1</sources> <!-- Number of sources to generate -->
15+
<stocks>1</stocks> <!-- Number of stocks to generate -->
1416
<assign_entities_to_all_websites>0</assign_entities_to_all_websites> <!-- Whether to assign all products per each website -->
1517
<simple_products>800</simple_products> <!-- Simple products count -->
1618
<configurable_products> <!-- Configurable product -->

0 commit comments

Comments
 (0)