Skip to content

Commit f1561c6

Browse files
committed
Merge branch '382-lock-admin-when-creating-new-user' of https://github.com/Leandry/magento-functional-tests-migration into community-tests-migration-pr
2 parents 41bc12e + b49305c commit f1561c6

File tree

8 files changed

+203
-2
lines changed

8 files changed

+203
-2
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
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+
<pages xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/PageObject.xsd">
11+
<page name="AdminAddNewUserPage" url="admin/user/new" area="admin" module="Backend">
12+
<section name="AddNewAdminUserSection"/>
13+
</page>
14+
</pages>

app/code/Magento/Backend/Test/Mftf/Section/AdminLoginFormSection.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,6 @@
1313
<element name="password" type="input" selector="#login"/>
1414
<element name="signIn" type="button" selector=".actions .action-primary" timeout="30"/>
1515
<element name="forgotPasswordLink" type="button" selector=".action-forgotpassword" timeout="10"/>
16+
<element name="error" type="text" selector=".message.message-error.error"/>
1617
</section>
1718
</sections>
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
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="AdminNewUserSection">
12+
<element name="username" type="input" selector="#user_username"/>
13+
<element name="firstname" type="input" selector="#user_firstname"/>
14+
<element name="lastname" type="input" selector="#user_lastname"/>
15+
<element name="email" type="input" selector="#user_email"/>
16+
<element name="password" type="input" selector="#user_password"/>
17+
<element name="confirmation" type="input" selector="#user_confirmation"/>
18+
<element name="currentPassword" type="input" selector="#user_current_password"/>
19+
<element name="save" type="button" selector="#save"/>
20+
<element name="userRoleTab" type="button" selector="#page_tabs_roles_section"/>
21+
<element name="administratorRole" type="radio" selector="//*[@id='permissionsUserRolesGrid_table']//td[{{role}}]/input" parameterized="true"/>
22+
</section>
23+
</sections>

app/code/Magento/Checkout/Test/Mftf/Section/StorefrontCheckoutCheckoutCustomerLoginSection.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<section name="StorefrontCheckoutCheckoutCustomerLoginSection">
1212
<element name="email" type="input" selector="form[data-role='email-with-possible-login'] input[name='username']" />
1313
<element name="emailNoteMessage" type="text" selector="//form[@data-role='email-with-possible-login']//div[input[@name='username']]//*[contains(@class, 'note')]" />
14-
<element name="emailErrorMessage" type="text" selector="//form[@data-role='email-with-possible-login']//div[input[@name='username']]//*[@id='customer-email-error']" />
14+
<element name="emailErrorMessage" type="text" selector="//form[@data-role='email-with-possible-login']//div[input[@name='username']]//*[@id='checkout-customer-email-error']" />
1515
<element name="emailTooltipButton" type="button" selector="//form[@data-role='email-with-possible-login']//div[input[@name='username']]//*[contains(@class, 'action-help')]" />
1616
<element name="emailTooltipContent" type="text" selector="//form[@data-role='email-with-possible-login']//div[input[@name='username']]//*[contains(@class, 'field-tooltip-content')]" />
1717
<element name="password" type="input" selector="form[data-role='email-with-possible-login'] input[name='password']" />
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
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="AdminNewUserInvalidCurrentUserPasswordActionGroup">
11+
<arguments>
12+
<argument name="adminUser" type="string" />
13+
<argument name="adminFirstname" type="string" />
14+
<argument name="adminLastname" type="string" />
15+
<argument name="adminEmail" type="string" />
16+
<argument name="adminPassword" type="string" />
17+
<argument name="adminPasswordConfirmation" type="string" />
18+
<argument name="currentAdminPassword" type="string" />
19+
<argument name="adminUserRole" type="string"/>
20+
</arguments>
21+
<!-- Fill in all data according to data set (current password is incorrect). -->
22+
<fillField selector="{{AdminNewUserSection.username}}" userInput="{{adminUser}}" stepKey="fillUser"/>
23+
<fillField selector="{{AdminNewUserSection.firstname}}" userInput="{{adminFirstname}}" stepKey="fillFirstName"/>
24+
<fillField selector="{{AdminNewUserSection.lastname}}" userInput="{{adminLastname}}" stepKey="fillLastName"/>
25+
<fillField selector="{{AdminNewUserSection.email}}" userInput="{{adminEmail}}" stepKey="fillEmail"/>
26+
<fillField selector="{{AdminNewUserSection.password}}" userInput="{{adminPassword}}" stepKey="fillPassword"/>
27+
<fillField selector="{{AdminNewUserSection.confirmation}}" userInput="{{adminPasswordConfirmation}}" stepKey="fillPasswordConfirmation"/>
28+
<fillField selector="{{AdminNewUserSection.currentPassword}}" userInput="{{currentAdminPassword}}" stepKey="fillCurrentUserPassword"/>
29+
<scrollToTopOfPage stepKey="ScrollToTopOfPage"/>
30+
<click selector="{{AdminNewUserSection.userRoleTab}}" stepKey="openUserRoleTab"/>
31+
<click selector="{{adminUserRole}}" stepKey="assignRole"/>
32+
<click selector="{{AdminNewUserSection.save}}" stepKey="saveNewUser"/>
33+
<waitForPageLoad stepKey="waitForSaveResultLoad"/>
34+
</actionGroup>
35+
</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+
<entities xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:DataGenerator/etc/dataProfileSchema.xsd">
11+
<entity name="AdminUserData" type="admin">
12+
<data key="email" unique="prefix">John.Doe@example.com</data>
13+
<data key="firstname">John</data>
14+
<data key="username" unique="prefix">lockuser</data>
15+
<data key="lastname">Doe</data>
16+
<data key="password">pwdTest123!</data>
17+
</entity>
18+
</entities>
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
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="LockAdminUserWhenCreatingNewUserTest">
12+
<annotations>
13+
<features value="Security"/>
14+
<stories value="Runs Lock admin user when creating new user test."/>
15+
<title value="Lock admin user when creating new user"/>
16+
<description value="Runs Lock admin user when creating new user test."/>
17+
<severity value="MAJOR"/>
18+
<group value="security"/>
19+
<group value="mtf_migrated"/>
20+
</annotations>
21+
<before>
22+
<!-- Log in to Admin Panel -->
23+
<actionGroup ref="LoginAsAdmin" stepKey="loginAsAdmin"/>
24+
</before>
25+
<after>
26+
<!-- Unlock Admin user -->
27+
<magentoCLI command="admin:user:unlock {{_ENV.MAGENTO_ADMIN_USERNAME}}" stepKey="unlockAdminUser"/>
28+
</after>
29+
30+
<!-- Open Admin New User Page -->
31+
<amOnPage url="{{AdminAddNewUserPage.url}}" stepKey="amOnNewAdminUserPage"/>
32+
<waitForPageLoad stepKey="waitForNewAdminUserPageLoad"/>
33+
34+
<!-- Perform add new admin user 6 specified number of times.
35+
"The password entered for the current user is invalid. Verify the password and try again." appears after each attempt.-->
36+
<actionGroup ref="AdminNewUserInvalidCurrentUserPasswordActionGroup" stepKey="failedSaveUserFirstAttempt">
37+
<argument name="adminUser" value="{{AdminUserData.username}}" />
38+
<argument name="adminFirstname" value="{{AdminUserData.firstname}}" />
39+
<argument name="adminLastname" value="{{AdminUserData.lastname}}" />
40+
<argument name="adminEmail" value="{{AdminUserData.email}}" />
41+
<argument name="adminPassword" value="{{AdminUserData.password}}" />
42+
<argument name="adminPasswordConfirmation" value="{{AdminUserData.password}}" />
43+
<argument name="currentAdminPassword" value="{{AdminUserData.password}}INVALID" />
44+
<argument name="adminUserRole" value="{{AdminNewUserSection.administratorRole('1')}}" />
45+
</actionGroup>
46+
<waitForPageLoad stepKey="waitForSaveResultLoad"/>
47+
<see selector="{{AdminMessagesSection.error}}" userInput="The password entered for the current user is invalid. Verify the password and try again."
48+
stepKey="seeInvalidPasswordError"/>
49+
<actionGroup ref="AdminNewUserInvalidCurrentUserPasswordActionGroup" stepKey="failedSaveUserSecondAttempt">
50+
<argument name="adminUser" value="{{AdminUserData.username}}" />
51+
<argument name="adminFirstname" value="{{AdminUserData.firstname}}" />
52+
<argument name="adminLastname" value="{{AdminUserData.lastname}}" />
53+
<argument name="adminEmail" value="{{AdminUserData.email}}" />
54+
<argument name="adminPassword" value="{{AdminUserData.password}}" />
55+
<argument name="adminPasswordConfirmation" value="{{AdminUserData.password}}" />
56+
<argument name="currentAdminPassword" value="{{AdminUserData.password}}INVALID" />
57+
<argument name="adminUserRole" value="{{AdminNewUserSection.administratorRole('1')}}" />
58+
</actionGroup>
59+
<actionGroup ref="AdminNewUserInvalidCurrentUserPasswordActionGroup" stepKey="failedSaveUserThirdAttempt">
60+
<argument name="adminUser" value="{{AdminUserData.username}}" />
61+
<argument name="adminFirstname" value="{{AdminUserData.firstname}}" />
62+
<argument name="adminLastname" value="{{AdminUserData.lastname}}" />
63+
<argument name="adminEmail" value="{{AdminUserData.email}}" />
64+
<argument name="adminPassword" value="{{AdminUserData.password}}" />
65+
<argument name="adminPasswordConfirmation" value="{{AdminUserData.password}}" />
66+
<argument name="currentAdminPassword" value="{{AdminUserData.password}}INVALID" />
67+
<argument name="adminUserRole" value="{{AdminNewUserSection.administratorRole('1')}}" />
68+
</actionGroup>
69+
<actionGroup ref="AdminNewUserInvalidCurrentUserPasswordActionGroup" stepKey="failedSaveUserFourthAttempt">
70+
<argument name="adminUser" value="{{AdminUserData.username}}" />
71+
<argument name="adminFirstname" value="{{AdminUserData.firstname}}" />
72+
<argument name="adminLastname" value="{{AdminUserData.lastname}}" />
73+
<argument name="adminEmail" value="{{AdminUserData.email}}" />
74+
<argument name="adminPassword" value="{{AdminUserData.password}}" />
75+
<argument name="adminPasswordConfirmation" value="{{AdminUserData.password}}" />
76+
<argument name="currentAdminPassword" value="{{AdminUserData.password}}INVALID" />
77+
<argument name="adminUserRole" value="{{AdminNewUserSection.administratorRole('1')}}" />
78+
</actionGroup>
79+
<actionGroup ref="AdminNewUserInvalidCurrentUserPasswordActionGroup" stepKey="failedSaveUserFifthAttempt">
80+
<argument name="adminUser" value="{{AdminUserData.username}}" />
81+
<argument name="adminFirstname" value="{{AdminUserData.firstname}}" />
82+
<argument name="adminLastname" value="{{AdminUserData.lastname}}" />
83+
<argument name="adminEmail" value="{{AdminUserData.email}}" />
84+
<argument name="adminPassword" value="{{AdminUserData.password}}" />
85+
<argument name="adminPasswordConfirmation" value="{{AdminUserData.password}}" />
86+
<argument name="currentAdminPassword" value="{{AdminUserData.password}}INVALID" />
87+
<argument name="adminUserRole" value="{{AdminNewUserSection.administratorRole('1')}}" />
88+
</actionGroup>
89+
<actionGroup ref="AdminNewUserInvalidCurrentUserPasswordActionGroup" stepKey="failedSaveUserSixthAttempt">
90+
<argument name="adminUser" value="{{AdminUserData.username}}" />
91+
<argument name="adminFirstname" value="{{AdminUserData.firstname}}" />
92+
<argument name="adminLastname" value="{{AdminUserData.lastname}}" />
93+
<argument name="adminEmail" value="{{AdminUserData.email}}" />
94+
<argument name="adminPassword" value="{{AdminUserData.password}}" />
95+
<argument name="adminPasswordConfirmation" value="{{AdminUserData.password}}" />
96+
<argument name="currentAdminPassword" value="{{AdminUserData.password}}INVALID" />
97+
<argument name="adminUserRole" value="{{AdminNewUserSection.administratorRole('1')}}" />
98+
</actionGroup>
99+
100+
<!-- Check Error that account has been locked -->
101+
<waitForPageLoad stepKey="wailtForSaveResultLoad"/>
102+
<see selector="{{AdminLoginFormSection.error}}" userInput="Your account is temporarily disabled. Please try again later." stepKey="seeLockUserError"/>
103+
104+
<!-- Try to login as admin and check error -->
105+
<actionGroup ref="LoginAsAdmin" stepKey="loginAsLockedAdmin"/>
106+
<waitForPageLoad stepKey="waitForError"/>
107+
<see selector="{{AdminLoginFormSection.error}}" userInput="The account sign-in was incorrect or your account is disabled temporarily. Please wait and try again later"
108+
stepKey="seeLoginUserError"/>
109+
</test>
110+
</tests>

dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenCreatingNewUserTest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<testCase name="Magento\Security\Test\TestCase\LockAdminUserWhenCreatingNewUserTest" summary="Lock admin user after entering incorrect password while creating new User">
1010
<variation name="LockAdminUserWhenCreatingNewUserTestVariation1">
1111
<data name="configData" xsi:type="string">user_lockout_failures</data>
12-
<data name="tag" xsi:type="string">severity:S2</data>
12+
<data name="tag" xsi:type="string">severity:S2,mftf_migrated:yes</data>
1313
<data name="customAdmin/dataset" xsi:type="string">custom_admin_with_default_role</data>
1414
<data name="user/data/username" xsi:type="string">AdminUser%isolation%</data>
1515
<data name="user/data/firstname" xsi:type="string">FirstName%isolation%</data>

0 commit comments

Comments
 (0)