| *** Settings *** |
| |
| Documentation Test OpenBMC GUI "Manage user account" sub-menu of |
| ... "Users". |
| |
| Resource ../../lib/resource.robot |
| |
| Test Setup Test Setup Execution |
| Test Teardown Close Browser |
| |
| |
| *** Variables *** |
| |
| ${xpath_input_username} //input[@name='UserName'] |
| ${xpath_input_password} //input[@name='Password'] |
| ${xpath_input_retype_password} //input[@name='VerifyPassword'] |
| ${xpath_input_user_role} //select[@id='role'] |
| ${xpath_input_enabled_checkbox} //label[@for="user-manage__enabled"] |
| ${xpath_input_lockout_time} //input[@id='lockoutTime'] |
| ${xpath_input_failed_login_attempts} //input[@id='lockoutThreshold'] |
| ${xpath_select_manage_users} //a[contains(text(), "Manage user account")] |
| ${xpath_select_users} //button[contains(@class, "users")] |
| ${xpath_save_setting_button} //button[text() ="Save settings"] |
| ${xpath_create_user_button} //button[text() ="Create user"] |
| ${xpath_edit_button} //button[text() ="Edit"] |
| ${xpath_delete_button} //button[text() ="Delete"] |
| ${label} //label[@class="control-check"] |
| ${xpath_edit_save_button} //*[@id="user-accounts"]/form/section/div[7]/button[2] |
| &{user_password} testUser1=testUserPwd1 root=0penBmc |
| &{action_msg_relation} add=User has been created successfully |
| ... modify=User has been updated successfully |
| ... add_dup=Username exists |
| &{user_invalid_password} root=rootPwd1 |
| ${max_num_users} ${15} |
| ${xpath_table_base} //*[@id="user-accounts"]/div[4]/div[2] |
| &{user_table_column_xpath_mapping} Username=/div[1] |
| ... Enabled=/div[2] |
| ... Role=/div[3] |
| ... Edit=/div[5]/button[1] |
| ... Delete=/div[5]/button[2] |
| |
| |
| *** Test Cases *** |
| |
| Verify Existence Of All Section In User Page |
| [Documentation] Verify existence of all sections in user page. |
| [Tags] Verify_Existence_Of_All_Section_In_User_Page |
| |
| Page should contain User account properties |
| Page should contain User account information |
| Page should contain User account settings |
| |
| |
| Verify Existence Of All Input Boxes In User Page |
| [Documentation] Verify existence of all input boxes in user page. |
| [Tags] Verify_Existence_Of_All_Input_Boxes_In_User_Page |
| |
| # Input boxes under user account settings |
| Page Should Contain Element ${xpath_input_username} |
| Page Should Contain Element ${xpath_input_password} |
| Page Should Contain Element ${xpath_input_retype_password} |
| Page Should Contain Element ${xpath_input_user_role} |
| Page Should Contain Element ${xpath_input_enabled_checkbox} |
| |
| # Input boxes under user account properties |
| Page Should Contain Element ${xpath_input_lockout_time} |
| Page Should Contain Element ${xpath_input_failed_login_attempts} |
| |
| |
| Verify Existence Of All Button In User Page |
| [Documentation] Verify existence of all button in user page. |
| [Tags] Verify_Existence_Of_All_Button_In_User_Page |
| |
| # Buttons under user account properties |
| Page Should Contain Element ${xpath_save_setting_button} |
| |
| # Buttons under user account settings |
| Page Should Contain Element ${xpath_create_user_button} |
| |
| # Buttons under user account properties |
| Page Should Contain Element ${xpath_edit_button} |
| Page Should Contain Element ${xpath_delete_button} |
| |
| |
| Verify Error When Duplicate User Is Created |
| [Documentation] Verify error when duplicate user is created. |
| [Tags] Verify_Error_When_Duplicate_User_Is_Created |
| [Setup] Run Keywords Test Setup Execution AND Delete Given Users |
| |
| Add Or Modify User root &{user_password}[root] action=add_dup |
| |
| |
| Delete User And Verify |
| [Documentation] Delete user and verify. |
| [Tags] Delete_User_And_Verify |
| [Setup] Run Keywords Test Setup Execution AND Delete Given Users |
| |
| Add Or Modify User testUser1 &{user_password}[testUser1] |
| Delete Given Users delete_user=testUser1 |
| Page Should Not Contain testUser1 |
| |
| |
| Verify Invalid Password Error |
| [Documentation] Verify the error message when user logs in with invalid password. |
| [Tags] Verify_Invalid_Password_Error |
| [Setup] Run Keywords Test Setup Execution AND Delete Given Users |
| |
| LogOut OpenBMC GUI |
| Login And Verify Message root &{user_invalid_password}[root] Invalid username or password |
| |
| |
| Edit And Verify User Property |
| [Documentation] Edit and verify the user property. |
| [Tags] Edit_And_Verify_User_Property |
| [Setup] Run Keywords Test Setup Execution AND Delete Given Users |
| |
| Add Or Modify User testUser1 &{user_password}[testUser1] User |
| Reload Page |
| Edit User Role testUser1 &{user_password}[testUser1] Callback |
| ${user_role}= Get User Property Value testUser1 Role |
| Should Be Equal ${user_role} Callback |
| |
| |
| *** Keywords *** |
| |
| Test Setup Execution |
| [Documentation] Do test case setup tasks. |
| |
| Launch Browser And Login OpenBMC GUI |
| Click Button ${xpath_select_users} |
| Sleep 2s |
| Wait Until Page Contains Element ${xpath_select_manage_users} |
| Click Element ${xpath_select_manage_users} |
| Wait Until Page Contains User account information |
| |
| Add Or Modify User |
| [Documentation] Create or edit user. |
| [Arguments] ${username} ${password} ${role}=Administrator ${enabled}=${True} |
| ... ${action}=add |
| |
| # Description of argument(s): |
| # username Name of the user to be created. |
| # role Role of the new user. |
| # enabled If True, User is enabled (Default), False, User is disabled. |
| # action add - Creates a new user. |
| # modify - Edits an existing user. |
| # add_dup - Tries to add a duplicate user and verifies the error message. |
| |
| Run Keyword If '${action}' == 'add' or '${action}' == 'add_dup' |
| ... Input Text ${xpath_input_username} ${username} |
| Input Password ${xpath_input_password} ${password} |
| Input Password ${xpath_input_retype_password} ${password} |
| Select From List By Value ${xpath_input_user_role} ${role} |
| Run Keyword If '${enabled}' == 'True' Click Element ${xpath_input_enabled_checkbox} |
| Run Keyword If '${action}' == 'modify' |
| ... Click Button ${xpath_edit_save_button} |
| ... ELSE Click Button ${xpath_create_user_button} |
| Capture Page Screenshot |
| Page Should Contain &{action_msg_relation}[${action}] |
| |
| Delete Given Users |
| [Documentation] Delete given users. |
| [Arguments] ${delete_user}=nonRoot |
| |
| # Description of argument(s): |
| # delete_user values - nonRoot/username |
| # If nonRoot - Deletes all non-root users, |
| # username - Deletes the given user. |
| |
| Wait Until Page Contains root |
| Run Keyword If '${delete_user}' != 'nonRoot' Page Should Contain ${delete_user} |
| # Row id that gets deleted in every iteration. |
| ${deleting_row_id}= Set Variable 1 |
| :FOR ${row} IN RANGE 1 ${max_num_users+1} |
| \ ${xpath_user}= Get Xpath For User Table Attribute Username ${row} |
| \ ${status}= Run Keyword And Return Status Page Should Contain Element ${xpath_user} |
| \ Exit For Loop If '${status}' == 'False' |
| \ ${user}= Get Text ${xpath_user} |
| \ ${deleting_row_id} Set Variable If '${user}' == 'root' or '${deleting_row_id}' == '2' |
| \ ... 2 1 |
| \ Continue For Loop If '${user}' == 'root' |
| \ ${xpath_delete_user} Run Keyword If '${user}' == '${delete_user}' or '${delete_user}' == 'nonRoot' |
| \ ... Get Xpath For User Table Attribute Delete ${deleting_row_id} |
| \ Run Keyword If '${user}' == '${delete_user}' or '${delete_user}' == 'nonRoot' |
| \ ... Run Keywords Click Button ${xpath_delete_user} |
| \ ... AND Page Should Contain User has been deleted successfully |
| \ ... AND Reload Page |
| \ ... AND Exit For Loop If '${user}' == '${delete_user}' |
| |
| Get User Property Value |
| [Documentation] Return property value for the given user. |
| [Arguments] ${username} ${property}=Role |
| |
| # Description of argument(s): |
| # username BMC Username. |
| # property User property (e.g. "Role" or "Enabled"). |
| |
| # Maximum user limit is 15. Hence iterating only 15 times. |
| :FOR ${row_num} IN RANGE 1 ${max_num_users+1} |
| \ ${xpath_user}= Get Xpath For User Table Attribute Username ${row_num} |
| \ Page Should Contain Element ${xpath_user} |
| \ ${xpath_property}= Get Xpath For User Table Attribute ${property} ${row_num} |
| \ ${user}= Get Text ${xpath_user} |
| \ Run Keyword And Return If '${user}' == '${username}' Get Text ${xpath_property} |
| |
| Login And Verify Message |
| [Documentation] Verifies the error message displayed on screen while logging in. |
| [Arguments] ${username} ${password} ${msg} |
| |
| # Description of argument(s): |
| # username BMC Username. |
| # password BMC Password. |
| # msg Message which is expected to be found on login page after login attempt. |
| |
| Input Text ${xpath_textbox_username} ${username} |
| Input Password ${xpath_textbox_password} ${password} |
| Click Element ${xpath_button_login} |
| Page Should Contain ${msg} |
| |
| Edit User Role |
| [Documentation] Change the role of user to the given value. |
| [Arguments] ${username} ${password} ${user_role} |
| |
| # Description of argument(s): |
| # username BMC Username. |
| # password BMC Password. |
| # user_role The user role to be assigned ("Administrator", "User", "Operator", "Callback"). |
| |
| # Maximum user limit is 15. Hence iterating only 15 times. |
| :FOR ${row_num} IN RANGE 1 ${max_num_users+1} |
| \ ${xpath_user}= Get Xpath For User Table Attribute Username ${row_num} |
| \ Page Should Contain Element ${xpath_user} |
| \ ${xpath_edit_user}= Get Xpath For User Table Attribute Edit ${row_num} |
| \ ${user}= Get Text ${xpath_user} |
| \ Run Keyword If '${user}' == '${username}' Run Keywords Click Element ${xpath_edit_user} |
| \ ... AND Add Or Modify user ${username} ${password} ${user_role} action=modify |
| \ ... AND Exit For Loop |
| |
| Get Xpath For User Table Attribute |
| [Documentation] Get xpath for given user table attribute. |
| [Arguments] ${attribute} ${row_num} |
| |
| # Description of argument(s): |
| # attribute User table attribute ("Username", "Enabled", "Role", "Edit", "Delete"). |
| # row_num Row number. |
| |
| [Return] ${xpath_table_base}/div[${row_num}]&{user_table_column_xpath_mapping}[${attribute}] |