1*** Settings *** 2 3Documentation Test Open BMC GUI server health under GUI Header. 4 5Resource ../../lib/resource.robot 6Resource ../../../lib/boot_utils.robot 7Resource ../../../lib/utils.robot 8Resource ../../../lib/openbmc_ffdc.robot 9Resource ../../../lib/state_manager.robot 10Resource ../../../lib/openbmc_ffdc_methods.robot 11Resource ../../../lib/dump_utils.robot 12Resource ../../../lib/logging_utils.robot 13Library ../../../lib/gen_robot_keyword.py 14 15Test Setup Test Setup Execution 16Test Teardown Test Teardown Execution 17 18 19*** Test Cases *** 20 21Verify Event Log Text Appears By Clicking Server Health 22 [Documentation] Check that "Event Log" text appears by clicking server 23 ... health in GUI header. 24 [Tags] Verify_Event_Log_Text_Appears_By_Clicking_Server_Health 25 26 Wait Until Page Contains Element event-log 27 Page should contain Event log 28 29 30Verify Filters By Severity Elements Appears 31 [Documentation] Check that the "event log" filters appears by clicking 32 ... server health in GUI header. 33 [Tags] Verify_Filters_By_Severity_Elements_Appears 34 35 # Types of event severity: All, High, Medium, Low. 36 Page Should Contain Element ${xpath_event_severity_all} limit=1 37 Page Should Contain Element ${xpath_event_severity_high} limit=1 38 Page Should Contain Element ${xpath_event_severity_medium} limit=1 39 Page Should Contain Element ${xpath_event_severity_low} limit=1 40 41 42Verify Drop Down Button User Timezone Appears 43 [Documentation] Check that the "drop down" button of user timezone appears 44 ... by clicking server health in GUI header. 45 [Tags] Verify_Drop_Down_Button_User_Timezone_Appears 46 47 Page Should Contain Button ${xpath_drop_down_timezone_edt} 48 # Ensure that page is not in refreshing state. 49 # It helps to click the drop down element. 50 Wait Until Page Does Not Contain Element ${xpath_refresh_circle} 51 Click Element //*[@class='dropdown__button'] 52 Page Should Contain Button ${xpath_drop_down_timezone_utc} 53 54 55Verify Content Search Element Appears 56 [Documentation] Check that the "event search element is available with 57 ... filter" button appears. 58 [Tags] Verify_Content_Search_Element_Appears 59 60 Page Should Contain Element content__search-input limit=1 61 # Ensure that page is not in refreshing state. 62 Wait Until Page Does Not Contain Element ${xpath_refresh_circle} 63 Page Should Contain Button content__search-submit 64 65 66Verify Filter By Date Element Appears 67 [Documentation] Check that the "filter by date" elements are available and 68 ... visible. 69 [Tags] Verify_Filter_By_Date_Element_Appears 70 71 Wait Until Element Is Visible event-filter-start-date 72 Page Should Contain Element event-filter-start-date limit=1 73 Page Should Contain Element event-filter-end-date limit=1 74 75 76Verify Filter By Event Status Element Appears 77 [Documentation] Check that the "filter by event status" element appears. 78 [Tags] Verify_Filter_By_Event_Status_Element_Appears 79 80 # Ensure that page is not in refreshing state. 81 Wait Until Page Does Not Contain Element ${xpath_refresh_circle} 82 Wait Until Element is Visible //*[@class='dropdown__wrapper'] 83 Click Element //*[@class='dropdown__wrapper'] 84 Page Should Contain Element ${xpath_event_filter_all} limit=1 85 Page Should Contain Element ${xpath_event_filter_resolved} limit=1 86 Page Should Contain Element ${xpath_event_filter_unresolved} limit=1 87 88 89Verify Event Action Bar Element Appears 90 [Documentation] Check that "event action bar" element appears. 91 [Tags] Verify_Event_Action_Bar_Element_Appears 92 93 # Ensure that page is not in refreshing state. 94 Wait Until Page Does Not Contain Element ${xpath_refresh_circle} 95 Page Should Contain Element ${xpath_event_action_bars} limit=1 96 Page Should Contain Element //*[@class='control__indicator'] 97 98 99Verify Click Events Check Box 100 [Documentation] Check that "event check box" element appears and on click 101 ... should be able to see elements like "Delete" button and "Export" 102 ... element. 103 [Tags] Verify_Click_Events_Check_Box 104 105 # Ensure that page is not in refreshing state. 106 Wait Until Page Does Not Contain Element ${xpath_refresh_circle} 107 Click Element //*[@class='control__indicator'] 108 Page Should Contain Button ${xpath_event_action_delete} limit=1 109 Page Should Contain Element ${xpath_event_action_export} limit=1 110 111 112Verify Number of Events Appears 113 [Documentation] Check that "number of events" element appears and value is 114 ... visible. 115 [Tags] Verify_Number_of_Events_Appears 116 117 # Ensure that page is not in refreshing state. 118 Wait Until Page Does Not Contain Element ${xpath_refresh_circle} 119 Page Should Contain Element ${xpath_number_of_events} 120 ${number_of_events}= Get Text ${xpath_number_of_events} 121 Log To Console \n Number of Events:${number_of_events} 122 123 124Select All Error Logs And Mark As Resolved 125 [Documentation] Select all error logs and mark them as resolved. 126 [Tags] Select_All_Error_Logs_And_Mark_As_Resolved 127 128 Create Test Error Log 129 Create Test Error Log 130 Wait Until Page Does Not Contain Element ${xpath_refresh_circle} 131 Page Should Contain Element ${xpath_number_of_events} 132 ${number_of_events}= Get Text ${xpath_number_of_events} 133 Click Element //*[@class='control__indicator'] 134 Run Keyword If ${number_of_events} > 0 135 ... Click Element ${xpath_mark_as_resolved} 136 Element Should Be Disabled ${xpath_mark_as_resolved} 137 138 139Select All Error Logs And Click Export 140 [Documentation] Select all error logs and click export element. 141 [Tags] Select_All_Error_Logs_And_Click_Export 142 143 Create Test Error Log 144 Create Test Error Log 145 Wait Until Page Does Not Contain Element ${xpath_refresh_circle} 146 Page Should Contain Element ${xpath_number_of_events} 147 ${number_of_events}= Get Text ${xpath_number_of_events} 148 Click Element //*[@class='control__indicator'] 149 Page Should Contain Element ${xpath_events_export} 150 Run Keyword If ${number_of_events} > 0 151 ... Click Element ${xpath_events_export} 152 153 154Select All Error Logs And Delete 155 [Documentation] Select all error logs and delete them. 156 [Tags] Select_All_Error_Logs_And_Delete 157 158 Create Test Error Log 159 Create Test Error Log 160 Wait Until Page Does Not Contain Element ${xpath_refresh_circle} 161 Page Should Contain Element ${xpath_number_of_events} 162 ${number_of_events}= Get Text ${xpath_number_of_events} 163 Click Element //*[@class='control__indicator'] 164 Page Should Contain Button ${xpath_event_action_delete} 165 Run Keyword If ${number_of_events} > 0 166 ... Click Element ${xpath_event_action_delete} 167 ${number_of_events}= Get Text ${xpath_number_of_events} 168 Should Be Equal ${number_of_events} 0 169 170 171Select Single Error Log And Delete 172 [Documentation] Select single error log and delete it. 173 [Tags] Select_Single_Error_Log_And_Delete 174 175 Create Test Error Log 176 # Refresh the GUI to get the latest update. 177 Click Element ${xpath_select_refresh_button} 178 Wait Until Page Does Not Contain Element ${xpath_refresh_circle} 179 Page Should Contain Element ${xpath_number_of_events} 180 ${number_of_events}= Get Text ${xpath_number_of_events} 181 Run Keyword If ${number_of_events} > 0 182 ... Common Event Log Click Element ${xpath_individual_event_delete} 183 ... ${xpath_yes_button} 184 ${number_of_events}= Get Text ${xpath_number_of_events} 185 Should Be Equal ${number_of_events} 0 186 ... msg=Failed to delete single error log entry. 187 188 189Select Multiple Error Logs And Delete 190 [Documentation] Select multiple error logs and delete them. 191 [Tags] Select_Multiple_Error_Logs_And_Delete 192 193 Create Test Error Log 194 Create Test Error Log 195 # Refresh the GUI to get the latest update. 196 Click Element ${xpath_select_refresh_button} 197 Wait Until Page Does Not Contain Element ${xpath_refresh_circle} 198 Page Should Contain Element ${xpath_number_of_events} 199 ${number_of_events}= Get Text ${xpath_number_of_events} 200 Run Keyword If ${number_of_events} > 0 201 ... Double Event Log Click Element ${xpath_individual_event_delete} 202 ... ${xpath_yes_button} 203 ${number_of_events}= Get Text ${xpath_number_of_events} 204 Should Be Equal ${number_of_events} 0 205 ... msg=Failed to delete multiple error log entries. 206 207 208Select Single Error Log And Mark As Resolved 209 [Documentation] Select single error log and mark as resolved. 210 [Tags] Select_Single_Error_Log_And_Mark_As_Resolved 211 212 Create Test Error Log 213 # Refresh the GUI to get the latest update. 214 Click Element ${xpath_select_refresh_button} 215 Wait Until Page Does Not Contain Element ${xpath_refresh_circle} 216 Page Should Contain Element ${xpath_number_of_events} 217 ${number_of_events}= Get Text ${xpath_number_of_events} 218 Run Keyword If ${number_of_events} > 0 219 ... Common Event Log Click Element ${xpath_individual_event_resolved} 220 ${number_of_events}= Get Text ${xpath_number_of_events} 221 Should Be Equal ${number_of_events} 1 222 ... msg=Failed to mark single error log entry as resolved. 223 224 225Select Multiple Error Logs And Mark As Resolved 226 [Documentation] Select multiple error logs and mark as resolved. 227 [Tags] Select_Multiple_Error_Logs_And_Mark_As_Resolved 228 229 Create Test Error Log 230 Create Test Error Log 231 # Refresh the GUI to get the latest update. 232 Click Element ${xpath_select_refresh_button} 233 Wait Until Page Does Not Contain Element ${xpath_refresh_circle} 234 Page Should Contain Element ${xpath_number_of_events} 235 ${number_of_events}= Get Text ${xpath_number_of_events} 236 Run Keyword If ${number_of_events} > 0 237 ... Double Event Log Click Element ${xpath_individual_event_resolved} 238 ${number_of_events}= Get Text ${xpath_number_of_events} 239 Should Be Equal ${number_of_events} 2 240 ... msg=Failed to mark multiple error log entries as resolved. 241 242 243Select Single Error Log And Export 244 [Documentation] Select single error log and export. 245 [Tags] Select_Single_Error_Log_And_Export 246 247 Create Test Error Log 248 # Refresh the GUI to get the latest update. 249 Click Element ${xpath_select_refresh_button} 250 Wait Until Page Does Not Contain Element ${xpath_refresh_circle} 251 Page Should Contain Element ${xpath_number_of_events} 252 ${number_of_events}= Get Text ${xpath_number_of_events} 253 Run Keyword If ${number_of_events} > 0 254 ... Common Event Log Click Element ${xpath_individual_event_export} 255 ${number_of_events}= Get Text ${xpath_number_of_events} 256 Should Be Equal ${number_of_events} 1 257 ... msg=Failed to export single error log entry. 258 259 260Select Multiple Error Log And Export 261 [Documentation] Select multiple error log and export. 262 [Tags] Select_Multiple_Error_Log_And_Export 263 264 Create Test Error Log 265 Create Test Error Log 266 # Refresh the GUI to get the latest update. 267 Click Element ${xpath_select_refresh_button} 268 Wait Until Page Does Not Contain Element ${xpath_refresh_circle} 269 Page Should Contain Element ${xpath_number_of_events} 270 ${number_of_events}= Get Text ${xpath_number_of_events} 271 Run Keyword If ${number_of_events} > 0 272 ... Double Event Log Click Element ${xpath_individual_event_export} 273 ${number_of_events}= Get Text ${xpath_number_of_events} 274 Should Be Equal ${number_of_events} 2 275 ... msg=Failed to export multiple error log entries. 276 277*** Keywords *** 278 279Common Event Log Click Element 280 [Documentation] Keep common click elements associated with event log. 281 [Arguments] ${action_element} ${action_click_confirmation}=${None} 282 283 # Description of argument(s): 284 # action_element xpath value of the element to be actioned 285 # (e.g. "Delete" or "Resolved" or "Export"). 286 # action_click_confirmation Confirmation of action by pressing yes 287 # (e.g. "Yes" or "No"). 288 289 Click Element ${xpath_individual_event_select} 290 Page Should Contain Element ${action_element} 291 Click Element ${action_element} 292 Wait Until Page Does Not Contain Element ${xpath_refresh_circle} 293 Run Keyword If "${action_click_confirmation}" != "${None}" 294 ... Click Element ${action_click_confirmation} 295 Click Element ${xpath_select_refresh_button} 296 Run Key Sleep \ 50s 297 298Double Event Log Click Element 299 [Documentation] Keep double click elements associated with event logs. 300 [Arguments] ${action_element} ${action_click_confirmation}=${None} 301 302 # Description of argument(s): 303 # action_element xpath value of the element to be actioned 304 # (e.g. "Delete" or "Resolved" or "Export"). 305 # action_click_confirmation Confirmation of action by pressing yes 306 # (e.g. "Yes" or "No"). 307 308 Click Element ${xpath_second_event_select} 309 Common Event Log Click Element ${action_element} 310 ... ${action_click_confirmation} 311 312Test Setup Execution 313 [Documentation] Do test case setup tasks. 314 315 ${status}= Run Keyword And Return Status Logging Test Binary Exist 316 Run Keyword If ${status} == ${False} Install Tarball 317 Delete Error Logs And Verify 318 319 # Launch the GUI and navigate to server health page. 320 Launch Browser And Login OpenBMC GUI 321 Click Element ${xpath_select_server_health} 322 Wait Until Page Contains Event log 323 324Test Teardown Execution 325 [Documentation] Do the post test teardown. 326 327 FFDC On Test Case Fail 328 Delete All Error Logs 329 Close All Connections 330 Close Browser 331