1*** Settings ***
2
3Documentation  Test OpenBMC GUI "Local users" sub-menu of "Access control".
4
5Resource        ../../lib/resource.robot
6
7Suite Setup     Launch Browser And Login OpenBMC GUI
8Suite Teardown  Close Browser
9Test Setup      Test Setup Execution
10Force Tags      Manage_User
11
12*** Variables ***
13
14${xpath_select_user}              //input[contains(@class,"bmc-table__checkbox-input")]
15${xpath_edit_user}                //button[@aria-label="Edit"]
16${xpath_delete_user}              //button[@aria-label="Delete"]
17${xpath_account_policy}           //button[text()[contains(.,"Account policy settings")]]
18${xpath_add_user}                 //button[text()[contains(.,"Add user")]]
19${xpath_enable_user}              //label[text()[contains(.,"Enabled")]]
20${xpath_disable_user}             //label[text()[contains(.,"Disabled")]]
21${xpath_input_user}               //input[@id="username"]
22${xpath_select_privilege}         //select[@id="privilege"]
23${xpath_input_password}           //input[@id="password"]
24${xpath_confirm_password}         //input[@id="passwordConfirm"]
25${xpath_remove_button}            //button[text()[contains(.,"Remove")]]
26
27*** Test Cases ***
28
29Verify Existence Of All Sections In Local User Management Page
30    [Documentation]  Verify existence of all sections in local user management page.
31    [Tags]  Verify_Existence_Of_All_Sections_In_Local_User_Management_Page
32
33    Page should contain  View privilege role descriptions
34
35
36Verify Existence Of All Buttons In Local User Management Page
37    [Documentation]  Verify existence of all buttons in local user management page.
38    [Tags]  Verify_Existence_Of_All_Buttons_In_Local_User_Management_Page
39
40    Page should contain Button  ${xpath_account_policy}
41    Page should contain Button  ${xpath_add_user}
42    Page Should Contain Button  ${xpath_edit_user}
43    Page Should Contain Button  ${xpath_delete_user}
44
45
46Verify Existence Of All Input Boxes In Local User Management Page
47    [Documentation]  Verify existence of all input boxes in local user management page.
48    [Tags]  Verify_Existence_Of_All_Input_Boxes_In_Local_User_Management_Page
49
50    Page Should Contain Checkbox  ${xpath_select_user}
51
52
53Add User And Verify
54    [Documentation]  Add user and verify.
55    [Tags]  Add_User_And_Verify
56
57    # Confirm same user does not exist.
58    Delete User  testUser1
59    Add User  testUser1  testUserPwd1  Administrator
60    Test Login  testUser1  testUserPwd1
61
62
63Delete User And Verify
64    [Documentation]  Delete user and verify.
65    [Tags]  Delete_User_And_Verify
66
67    # Confirm same user does not exist.
68    Delete User  testUser2
69    Add User  testUser2  testUserPwd2  Callback
70    Delete User  testUser2
71    Click Element  ${xpath_select_refresh_button}
72    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
73    Page Should Not Contain  testUser2
74    Test Login  testUser2  testUserPwd2  ${False}
75
76
77*** Keywords ***
78
79Test Setup Execution
80    [Documentation]  Do test case setup tasks.
81
82    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
83    Click Element  ${xpath_select_access_control}
84    Click Element  ${xpath_select_local_users}
85    Wait Until Page Contains  Local user management
86
87Add User
88   [Documentation]  Create user.
89   [Arguments]  ${username}  ${password}  ${privilege}=Administrator
90   ...  ${account_status}=Enabled
91
92   # Description of argument(s):
93   # username   Name of the user to be created.
94   # password   New user password.
95   # privilege  User privilege.
96   # account_status  Enable or disable new user.
97
98   Click Element  ${xpath_add_user}
99   Add User Details  ${username}  ${password}  ${privilege}  ${account_status}
100
101Add User Details
102   [Documentation]  Add new user details.
103   [Arguments]  ${username}  ${password}  ${privilege}  ${account_status}
104
105   # Description of argument(s):
106   # username   User name.
107   # password   User password.
108   # privilege  User privilege.
109   # account_status  Enable or disable user.
110
111   Run Keyword If  '${account_status}' == 'Enabled'
112   ...  Click Element  ${xpath_enable_user}
113   ...  ELSE  Click Element  ${xpath_disable_user}
114   Input Text  ${xpath_input_user}  ${username}
115   Input Password  ${xpath_input_password}  ${password}
116   Input Password  ${xpath_confirm_password}  ${password}
117   Select User Privilege  ${privilege}
118   Click Element  ${xpath_add_user}
119
120Select User Privilege
121   [Documentation]  Select user privilege.
122   [Arguments]  ${privilege}=Administrator
123
124   # Description of argument(s):
125   # privilege  User privilege.
126
127   Click Element  ${xpath_select_privilege}
128   Click Element  //option[text()[contains(.,"${privilege}")]]
129
130Delete User
131   [Documentation]  Delete user.
132   [Arguments]  ${username}
133
134   # Description of argument(s):
135   # username   Name of the user to be created.
136
137   ${result}=  Run Keyword And Return Status  Page Should Contain  ${username}
138   Run Keyword If  '${result}' == '${True}'
139   ...  Run Keywords  Click Element  //*[text()="${username}"]//following::td[3]//button[@aria-label="Delete"]
140   ...  AND  Click Element  ${xpath_remove_button}
141   ...  ELSE  Log  User does not exist
142
143Test Login
144   [Documentation]  Try to login to Openbmc.
145   [Arguments]  ${username}  ${password}  ${expected_result}=${True}
146
147   # Description of argument(s):
148   # username   Username.
149   # password   User password.
150   # expected_result  Result of the test.
151
152    Open Browser  ${obmc_gui_url}  alias=2
153    Switch Browser  2
154    ${status}=  Run Keyword And Return Status  Login OpenBMC GUI  ${username}  ${password}
155    Should Be Equal  ${status}  ${expected_result}  Login expectation was not met
156    Run Keyword If  '${status}' == '${True}'
157    ...  LogOut OpenBMC GUI
158    ...  ELSE  Page Should Contain  Invalid username or password
159    Close Browser
160    Switch Browser  1
161
162