1*** Settings *** 2 3Documentation Test OpenBMC GUI "User management" sub-menu of "Security and access". 4 5Resource ../../lib/gui_resource.robot 6 7Suite Setup Launch Browser And Login GUI 8Suite Teardown Close Browser 9Test Setup Test Setup Execution 10 11 12*** Variables *** 13 14 15${xpath_user_management_heading} //h1[text()="User management"] 16${xpath_select_user} //input[contains(@class,"custom-control-input")] 17${xpath_account_policy} //button[contains(text(),'Account policy settings')] 18${xpath_add_user} //button[contains(text(),'Add user')] 19${xpath_edit_user} //*[@data-test-id='userManagement-tableRowAction-edit-0'] 20${xpath_delete_user} //*[@data-test-id='userManagement-tableRowAction-delete-1'] 21${xpath_account_status_enabled_button} //*[@data-test-id='userManagement-radioButton-statusEnabled'] 22${xpath_account_status_disabled_button} //*[@data-test-id='userManagement-radioButton-statusDisabled'] 23${xpath_username_input_button} //*[@data-test-id='userManagement-input-username'] 24${xpath_privilege_list_button} //*[@data-test-id='userManagement-select-privilege'] 25${xpath_password_input_button} //*[@data-test-id='userManagement-input-password'] 26${xpath_password_confirm_button} //*[@data-test-id='userManagement-input-passwordConfirmation'] 27${xpath_cancel_button} //*[@data-test-id='userManagement-button-cancel'] 28${xpath_submit_button} //*[@data-test-id='userManagement-button-submit'] 29${xpath_add_user_heading} //h5[contains(text(),'Add user')] 30${xpath_policy_settings_header} //*[text()="Account policy settings"] 31${xpath_auto_unlock} //*[@data-test-id='userManagement-radio-automaticUnlock'] 32${xpath_manual_unlock} //*[@data-test-id='userManagement-radio-manualUnlock'] 33${xpath_max_failed_login} //*[@data-test-id='userManagement-input-lockoutThreshold'] 34${test_user_password} TestPwd1 35 36 37*** Test Cases *** 38 39Verify Navigation To User Management Page 40 [Documentation] Verify navigation to user management page. 41 [Tags] Verify_Navigation_To_User_Management_Page 42 43 Page Should Contain Element ${xpath_user_management_heading} 44 45 46Verify Existence Of All Sections In User Management Page 47 [Documentation] Verify existence of all sections in user management page. 48 [Tags] Verify_Existence_Of_All_Sections_In_User_Management_Page 49 50 Page should contain View privilege role descriptions 51 52 53Verify Existence Of All Input Boxes In User Management Page 54 [Documentation] Verify existence of all sections in user managemnet page. 55 [Tags] Verify_Existence_Of_All_Input_Boxes_In_User_Management_Page 56 57 Page Should Contain Checkbox ${xpath_select_user} 58 59 60Verify Existence Of All Buttons In User Management Page 61 [Documentation] Verify existence of all buttons in user management page. 62 [Tags] Verify_Existence_Of_All_Buttons_In_User_Management_Page 63 64 Page should contain Button ${xpath_account_policy} 65 Page should contain Button ${xpath_add_user} 66 Page Should Contain Element ${xpath_edit_user} 67 Page Should Contain Element ${xpath_delete_user} 68 69 70Verify Existence Of All Button And Fields In Add User 71 [Documentation] Verify existence of all buttons and fields in add user page. 72 [Tags] Verify_Existence_Of_All_Button_And_Fields_In_Add_User 73 [Teardown] Click Element ${xpath_cancel_button} 74 75 Click Element ${xpath_add_user} 76 Wait Until Page Contains Element ${xpath_add_user_heading} 77 Page Should Contain Element ${xpath_account_status_enabled_button} 78 Page Should Contain Element ${xpath_account_status_disabled_button} 79 Page Should Contain Element ${xpath_username_input_button} 80 Page Should Contain Element ${xpath_privilege_list_button} 81 Page Should Contain Element ${xpath_password_input_button} 82 Page Should Contain Element ${xpath_password_confirm_button} 83 Page Should Contain Element ${xpath_cancel_button} 84 Page Should Contain Element ${xpath_submit_button} 85 86 87Verify Existence Of All Buttons And Fields In Account Policy Settings 88 [Documentation] Verify existence of all buttons and fields in account policy settings page. 89 [Tags] Verify_Existence_Of_All_Buttons_And_Fields_In_Account_Policy_Settings 90 [Teardown] Click Element ${xpath_cancel_button} 91 92 Click Element ${xpath_account_policy} 93 Wait Until Page Contains Element ${xpath_policy_settings_header} 94 Page Should Contain Element ${xpath_auto_unlock} 95 Page Should Contain Element ${xpath_manual_unlock} 96 Page Should Contain Element ${xpath_max_failed_login} 97 Page Should Contain Element ${xpath_submit_button} 98 Page Should Contain Element ${xpath_cancel_button} 99 100 101Verify User Access Privilege 102 [Documentation] Create a new user with a privilege and verify that user is created. 103 [Tags] Verify_User_Access_Privilege 104 [Template] Create User And Verify 105 106 # username privilege_level enabled 107 admin_user Administrator ${True} 108 readonly_user ReadOnly ${True} 109 disabled_user Administrator ${False} 110 111 112Verify Operator And No Access User Privilege 113 [Documentation] Create users with different access privilege 114 ... and verify that the user is getting created. 115 [Tags] Verify_Operator_And_No_Access_User_Privilege 116 [Template] Create User And Verify 117 118 # username privilege_level enabled 119 operator_user Operator ${True} 120 noaccess_user NoAccess ${True} 121 122 123Verify User Account And Properties Saved Through Reboots 124 [Documentation] Verify that user account and properties saved through reboots. 125 [Tags] Verify_User_Account_And_Properties_Saved_Through_Reboots 126 127 # Create an User account. 128 Create User And Verify my_admin_user Administrator ${True} 129 130 # Reboot BMC. 131 Redfish OBMC Reboot (off) stack_mode=normal 132 133 Click Element ${xpath_refresh_button} 134 Wait Until Page Contains my_admin_user timeout=15 135 136 137*** Keywords *** 138 139Create User And Verify 140 [Documentation] Create a user with given user name and privilege and verify that the 141 ... user is created successfully via GUI and Redfish. 142 [Teardown] Run Keywords Redfish.Logout AND Redfish.Login AND 143 ... Redfish.Delete /redfish/v1/AccountService/Accounts/${user_name} 144 [Arguments] ${user_name} ${user_privilege} ${enabled} 145 146 # Description of argument(s): 147 # user_name The name of the user to be created (e.g. "test", "robert", etc.). 148 # user_privilege Privilege of the user. 149 # enabled If the user is enabled (e.g True if enabled, False if disabled). 150 151 Click Element ${xpath_add_user} 152 Wait Until Page Contains Element ${xpath_add_user_heading} 153 154 # Select disabled radio button if user needs to be disabled 155 Run Keyword If ${enabled} == ${False} 156 ... Click Element At Coordinates ${xpath_account_status_disabled_button} 0 0 157 158 # Input username, password and privilege. 159 Input Text ${xpath_username_input_button} ${user_name} 160 Select From List by Value ${xpath_privilege_list_button} ${user_privilege} 161 162 Input Text ${xpath_password_input_button} ${test_user_password} 163 164 Input Text ${xpath_password_confirm_button} ${test_user_password} 165 166 # Submit. 167 Click Element ${xpath_submit_button} 168 169 # Refresh page and check new user is available. 170 Wait Until Page Contains Element ${xpath_add_user} 171 Click Element ${xpath_refresh_button} 172 Wait Until Page Contains ${user_name} timeout=15 173 174 # Cross check the privilege of newly added user via Redfish. 175 ${user_priv_redfish}= Redfish_Utils.Get Attribute 176 ... /redfish/v1/AccountService/Accounts/${user_name} RoleId 177 Should Be Equal ${user_privilege} ${user_priv_redfish} 178 179 # Check enable/disable status for user. 180 Redfish.Logout 181 ${status}= Run Keyword And Return Status Redfish.Login ${user_name} ${test_user_password} 182 Run Keyword If ${enabled} == ${False} 183 ... Should Be Equal ${status} ${False} 184 ... ELSE Should Be Equal ${status} ${True} 185 186 187Test Setup Execution 188 [Documentation] Do test case setup tasks. 189 190 # Navigate to https://xx.xx.xx.xx/#/access-control/user-management user management page. 191 192 Click Element ${xpath_secuity_and_accesss_menu} 193 Click Element ${xpath_user_management_sub_menu} 194 Wait Until Keyword Succeeds 30 sec 10 sec Location Should Contain user-management 195 Wait Until Element Is Not Visible ${xpath_page_loading_progress_bar} timeout=30 196