Skip to content

Commit 822003d

Browse files
committed
Merge branch '383-lock-admin-creating-role' of https://github.com/Leandry/magento-functional-tests-migration into community-tests-migration-pr
2 parents bb5df51 + 4dbdc83 commit 822003d

File tree

9 files changed

+185
-1
lines changed

9 files changed

+185
-1
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
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="AssertMessageInAdminPanelActionGroup">
12+
<arguments>
13+
<argument name="message" type="string" />
14+
<argument name="messageType" type="string" defaultValue="success" />
15+
</arguments>
16+
17+
<waitForElementVisible selector="{{AdminMessagesSection.messageByType(messageType)}}" stepKey="waitForMessageVisible" />
18+
<see userInput="{{message}}" selector="{{AdminMessagesSection.messageByType(messageType)}}" stepKey="verifyMessage" />
19+
</actionGroup>
20+
</actionGroups>

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,6 @@
1313
<element name="nthSuccess" type="text" selector=".message.message-success.success:nth-of-type({{n}})>div" parameterized="true"/>
1414
<element name="error" type="text" selector="#messages div.message-error"/>
1515
<element name="notice" type="text" selector=".message.message-notice.notice"/>
16+
<element name="messageByType" type="text" selector="#messages div.message-{{messageType}}" parameterized="true" />
1617
</section>
1718
</sections>
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
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="AdminLockAdminUserWhenCreatingNewRoleTest">
12+
<annotations>
13+
<features value="Security"/>
14+
<stories value="Runs Lock admin user when creating new admin role test."/>
15+
<title value="Lock admin user when creating new admin role"/>
16+
<description value="Runs Lock admin user when creating new admin role test."/>
17+
<severity value="CRITICAL"/>
18+
<testCaseId value="MC-14384" />
19+
<group value="security"/>
20+
<group value="mtf_migrated"/>
21+
</annotations>
22+
<before>
23+
<!-- Log in to Admin Panel -->
24+
<actionGroup ref="LoginAsAdmin" stepKey="loginAsAdmin"/>
25+
</before>
26+
<after>
27+
<!-- Unlock Admin user -->
28+
<magentoCLI command="admin:user:unlock {{_ENV.MAGENTO_ADMIN_USERNAME}}" stepKey="unlockAdminUser"/>
29+
</after>
30+
<!-- Perform add new role 6 specified number of times. -->
31+
<actionGroup ref="AdminOpenCreateRolePageActionGroup" stepKey="openCreateRolePage"/>
32+
33+
<actionGroup ref="AdminFillUserRoleFormActionGroup" stepKey="fillFieldFirstAttempt">
34+
<argument name="role" value="roleAdministrator" />
35+
<argument name="currentAdminPassword" value="{{_ENV.MAGENTO_ADMIN_PASSWORD}}INVALID" />
36+
</actionGroup>
37+
<actionGroup ref="AdminClickSaveButtonOnUserRoleFormActionGroup" stepKey="saveRoleFirstAttempt"/>
38+
<actionGroup ref="AssertMessageInAdminPanelActionGroup" stepKey="checkFirstSaveRoleError">
39+
<argument name="message" value="The password entered for the current user is invalid. Verify the password and try again." />
40+
<argument name="messageType" value="error" />
41+
</actionGroup>
42+
43+
<actionGroup ref="AdminFillUserRoleFormActionGroup" stepKey="fillFieldSecondAttempt">
44+
<argument name="role" value="roleAdministrator" />
45+
<argument name="currentAdminPassword" value="{{_ENV.MAGENTO_ADMIN_PASSWORD}}INVALID" />
46+
</actionGroup>
47+
<actionGroup ref="AdminClickSaveButtonOnUserRoleFormActionGroup" stepKey="saveRoleSecondAttempt"/>
48+
<actionGroup ref="AssertMessageInAdminPanelActionGroup" stepKey="checkSecondSaveRoleError">
49+
<argument name="message" value="The password entered for the current user is invalid. Verify the password and try again." />
50+
<argument name="messageType" value="error" />
51+
</actionGroup>
52+
53+
<actionGroup ref="AdminFillUserRoleFormActionGroup" stepKey="fillFieldThirdAttempt">
54+
<argument name="role" value="roleAdministrator" />
55+
<argument name="currentAdminPassword" value="{{_ENV.MAGENTO_ADMIN_PASSWORD}}INVALID" />
56+
</actionGroup>
57+
<actionGroup ref="AdminClickSaveButtonOnUserRoleFormActionGroup" stepKey="saveRoleThirdAttempt"/>
58+
<actionGroup ref="AssertMessageInAdminPanelActionGroup" stepKey="checkThirdSaveRoleError">
59+
<argument name="message" value="The password entered for the current user is invalid. Verify the password and try again." />
60+
<argument name="messageType" value="error" />
61+
</actionGroup>
62+
63+
<actionGroup ref="AdminFillUserRoleFormActionGroup" stepKey="fillFieldFourthAttempt">
64+
<argument name="role" value="roleAdministrator" />
65+
<argument name="currentAdminPassword" value="{{_ENV.MAGENTO_ADMIN_PASSWORD}}INVALID" />
66+
</actionGroup>
67+
<actionGroup ref="AdminClickSaveButtonOnUserRoleFormActionGroup" stepKey="saveRoleFourthAttempt"/>
68+
<actionGroup ref="AssertMessageInAdminPanelActionGroup" stepKey="checkFourthSaveRoleError">
69+
<argument name="message" value="The password entered for the current user is invalid. Verify the password and try again." />
70+
<argument name="messageType" value="error" />
71+
</actionGroup>
72+
73+
<actionGroup ref="AdminFillUserRoleFormActionGroup" stepKey="fillFieldFifthAttempt">
74+
<argument name="role" value="roleAdministrator" />
75+
<argument name="currentAdminPassword" value="{{_ENV.MAGENTO_ADMIN_PASSWORD}}INVALID" />
76+
</actionGroup>
77+
<actionGroup ref="AdminClickSaveButtonOnUserRoleFormActionGroup" stepKey="saveRoleFifthAttempt"/>
78+
<actionGroup ref="AssertMessageInAdminPanelActionGroup" stepKey="checkFifthSaveRoleError">
79+
<argument name="message" value="The password entered for the current user is invalid. Verify the password and try again." />
80+
<argument name="messageType" value="error" />
81+
</actionGroup>
82+
83+
<actionGroup ref="AdminFillUserRoleFormActionGroup" stepKey="fillFieldSixthAttempt">
84+
<argument name="role" value="roleAdministrator" />
85+
<argument name="currentAdminPassword" value="{{_ENV.MAGENTO_ADMIN_PASSWORD}}INVALID" />
86+
</actionGroup>
87+
<actionGroup ref="AdminClickSaveButtonOnUserRoleFormActionGroup" stepKey="saveRoleSixthAttempt"/>
88+
<actionGroup ref="AssertMessageOnAdminLoginActionGroup" stepKey="checkFifthError">
89+
<argument name="message" value="Your account is temporarily disabled. Please try again later."/>
90+
</actionGroup>
91+
92+
<!-- Try to login as admin and check error message -->
93+
<actionGroup ref="LoginAsAdmin" stepKey="loginAsLockedAdmin"/>
94+
<actionGroup ref="AssertMessageOnAdminLoginActionGroup" stepKey="checkLoginMessage"/>
95+
</test>
96+
</tests>
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+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
10+
<actionGroup name="AdminClickSaveButtonOnUserRoleFormActionGroup">
11+
<click selector="{{AdminCreateRoleSection.save}}" stepKey="saveRole"/>
12+
<waitForPageLoad stepKey="waitForSaveResultLoad"/>
13+
</actionGroup>
14+
</actionGroups>
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
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="AdminFillUserRoleFormActionGroup">
11+
<arguments>
12+
<argument name="role" type="entity" />
13+
<argument name="currentAdminPassword" type="string" defaultValue="{{_ENV.MAGENTO_ADMIN_PASSWORD}}" />
14+
</arguments>
15+
16+
<fillField selector="{{AdminCreateRoleSection.name}}" userInput="{{role.name}}" stepKey="fillRoleName"/>
17+
<fillField selector="{{AdminCreateRoleSection.password}}" userInput="{{currentAdminPassword}}" stepKey="fillCurrentUserPassword"/>
18+
19+
<click selector="{{AdminCreateRoleSection.roleResources}}" stepKey="clickToOpenRoleResources"/>
20+
<waitForPageLoad stepKey="waitForRoleResourceTab" />
21+
22+
<selectOption userInput="{{role.resourceAccess}}" selector="{{AdminCreateRoleSection.resourceAccess}}" stepKey="selectResourceAccess" />
23+
<performOn stepKey="checkNeededResources" selector="{{AdminCreateRoleSection.resourceTree}}" function="function($I,$userRoles={{role.resources}}){foreach($userRoles as $userRole){$I->conditionalClick('//li[@data-id=\'' . $userRole . '\']//*[@class=\'jstree-checkbox\']','//li[@data-id=\'' . $userRole . '\' and contains(@class, \'jstree-checked\')]',false);}}" />
24+
</actionGroup>
25+
</actionGroups>
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+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
10+
<actionGroup name="AdminOpenCreateRolePageActionGroup">
11+
<amOnPage url="{{AdminEditRolePage.url}}" stepKey="amOnNewAdminRolePage"/>
12+
<waitForPageLoad stepKey="waitForNewAdminRolePageLoad"/>
13+
</actionGroup>
14+
</actionGroups>

app/code/Magento/User/Test/Mftf/Data/UserRoleData.xml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,15 @@
1313
<data key="scope">1</data>
1414
<data key="access">1</data>
1515
</entity>
16+
17+
<entity name="roleAdministrator" type="role">
18+
<data key="name" unique="suffix">Administrator </data>
19+
<data key="resourceAccess">All</data>
20+
<data key="resources">[]</data>
21+
</entity>
22+
<entity name="roleSales" type="role">
23+
<data key="name" unique="suffix">Role Sales </data>
24+
<data key="resourceAccess">Custom</data>
25+
<data key="resources">['Magento_Sales::sales','Magento_Sales::sales_operation','Magento_Sales::actions','Magento_Sales::sales_order','Magento_Sales::create','Magento_Sales::actions_view','Magento_Sales::email','Magento_Sales::reorder','Magento_Sales::actions_edit','Magento_Sales::cancel','Magento_Sales::review_payment','Magento_Sales::capture','Magento_Sales::invoice','Magento_Sales::creditmemo','Magento_Sales::hold','Magento_Sales::unhold','Magento_Sales::ship','Magento_Sales::comment','Magento_Sales::emails','Magento_Backend::system','Magento_Backend::system_other_settings','Magento_AdminNotification::adminnotification','Magento_AdminNotification::show_list']</data>
26+
</entity>
1627
</entities>

app/code/Magento/User/Test/Mftf/Section/AdminCreateRoleSection.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212
<element name="create" type="button" selector="#add"/>
1313
<element name="name" type="button" selector="#role_name"/>
1414
<element name="password" type="input" selector="#current_password"/>
15+
<element name="resourceAccess" type="select" selector="[data-ui-id='adminhtml-user-editroles-tab-content-account'] [name='all']"/>
16+
<element name="resourceTree" type="block" selector="[data-ui-id='adminhtml-user-editroles-tab-content-account'] [data-role='resource-tree']"/>
17+
1518
<element name="roleResources" type="button" selector="#role_info_tabs_account"/>
1619
<element name="roleResource" type="button" selector="#gws_is_all"/>
1720
<element name="resourceValue" type="button" selector="//*[text()='{{arg1}}']" parameterized="true"/>

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd">
99
<testCase name="Magento\Security\Test\TestCase\LockAdminUserWhenCreatingNewRoleTest" summary="Lock admin user after entering incorrect password while creating new role">
1010
<variation name="LockAdminUserWhenCreatingNewRoleTestVariation1">
11-
<data name="tag" xsi:type="string">severity:S2</data>
11+
<data name="tag" xsi:type="string">severity:S2, mftf_migrated:yes</data>
1212
<data name="configData" xsi:type="string">user_lockout_failures</data>
1313
<data name="customAdmin/dataset" xsi:type="string">custom_admin_with_default_role</data>
1414
<data name="role/data/rolename" xsi:type="string">AdminRole%isolation%</data>

0 commit comments

Comments
 (0)