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=2 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 ${xpath_select_all_events} 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 Create Test Error Log 106 Click Element ${xpath_select_refresh_button} 107 # Ensure that page is not in refreshing state. 108 Wait Until Page Does Not Contain Element ${xpath_refresh_circle} 109 Click Element ${xpath_select_all_events} 110 Page Should Contain Button ${xpath_event_action_delete} limit=1 111 Page Should Contain Element ${xpath_event_action_export} limit=1 112 113 114Verify Number of Events Appears 115 [Documentation] Check that "number of events" element appears and value is 116 ... visible. 117 [Tags] Verify_Number_of_Events_Appears 118 119 # Ensure that page is not in refreshing state. 120 Wait Until Page Does Not Contain Element ${xpath_refresh_circle} 121 Page Should Contain Element ${xpath_number_of_events} 122 ${number_of_events}= Get Text ${xpath_number_of_events} 123 Log To Console \n Number of Events:${number_of_events} 124 125 126Select All Error Logs And Mark As Resolved 127 [Documentation] Select all error logs and mark them as resolved. 128 [Tags] Select_All_Error_Logs_And_Mark_As_Resolved 129 130 Create Test Error Log 131 Create Test Error Log 132 Click Element ${xpath_select_refresh_button} 133 Wait Until Page Does Not Contain Element ${xpath_refresh_circle} 134 Page Should Contain Element ${xpath_number_of_events} 135 ${number_of_events}= Get Text ${xpath_number_of_events} 136 Click Element ${xpath_select_all_events} 137 Run Keyword If ${number_of_events} > 0 138 ... Click Element ${xpath_mark_as_resolved} 139 Element Should Be Disabled ${xpath_mark_as_resolved} 140 141 142Select All Error Logs And Click Export 143 [Documentation] Select all error logs and click export element. 144 [Tags] Select_All_Error_Logs_And_Click_Export 145 146 Create Test Error Log 147 Create Test Error Log 148 Click Element ${xpath_select_refresh_button} 149 Wait Until Page Does Not Contain Element ${xpath_refresh_circle} 150 Page Should Contain Element ${xpath_number_of_events} 151 ${number_of_events}= Get Text ${xpath_number_of_events} 152 Click Element ${xpath_select_all_events} 153 Page Should Contain Element ${xpath_events_export} 154 Run Keyword If ${number_of_events} > 0 155 ... Click Element ${xpath_events_export} 156 157 158Select All Error Logs And Delete 159 [Documentation] Select all error logs and delete them. 160 [Tags] Select_All_Error_Logs_And_Delete 161 162 Create Test Error Log 163 Create Test Error Log 164 Click Element ${xpath_select_refresh_button} 165 Wait Until Page Does Not Contain Element ${xpath_refresh_circle} 166 Page Should Contain Element ${xpath_number_of_events} 167 ${number_of_events}= Get Text ${xpath_number_of_events} 168 Run Keyword If ${number_of_events} > 0 169 ... Common Event Log Click Element ${xpath_individual_event_delete} 170 ... ${xpath_yes_button} ${xpath_select_all_events} 171 ${number_of_events}= Get Text ${xpath_number_of_events} 172 Should Be Equal ${number_of_events} 0 173 174 175Select Single Error Log And Delete 176 [Documentation] Select single error log and delete it. 177 [Tags] Select_Single_Error_Log_And_Delete 178 179 Create Test Error Log 180 # Refresh the GUI to get the latest update. 181 Click Element ${xpath_select_refresh_button} 182 Wait Until Page Does Not Contain Element ${xpath_refresh_circle} 183 Page Should Contain Element ${xpath_number_of_events} 184 ${number_of_events}= Get Text ${xpath_number_of_events} 185 Run Keyword If ${number_of_events} > 0 186 ... Common Event Log Click Element ${xpath_individual_event_delete} 187 ... ${xpath_yes_button} 188 ${number_of_events}= Get Text ${xpath_number_of_events} 189 Should Be Equal ${number_of_events} 0 190 ... msg=Failed to delete single error log entry. 191 192 193Select Multiple Error Logs And Delete 194 [Documentation] Select multiple error logs and delete them. 195 [Tags] Select_Multiple_Error_Logs_And_Delete 196 197 Create Test Error Log 198 Create Test Error Log 199 # Refresh the GUI to get the latest update. 200 Click Element ${xpath_select_refresh_button} 201 Wait Until Page Does Not Contain Element ${xpath_refresh_circle} 202 Page Should Contain Element ${xpath_number_of_events} 203 ${number_of_events}= Get Text ${xpath_number_of_events} 204 Run Keyword If ${number_of_events} > 0 205 ... Double Event Log Click Element ${xpath_individual_event_delete} 206 ... ${xpath_yes_button} 207 ${number_of_events}= Get Text ${xpath_number_of_events} 208 Should Be Equal ${number_of_events} 0 209 ... msg=Failed to delete multiple error log entries. 210 211 212Select Single Error Log And Mark As Resolved 213 [Documentation] Select single error log and mark as resolved. 214 [Tags] Select_Single_Error_Log_And_Mark_As_Resolved 215 216 Create Test Error Log 217 # Refresh the GUI to get the latest update. 218 Click Element ${xpath_select_refresh_button} 219 Wait Until Page Does Not Contain Element ${xpath_refresh_circle} 220 Page Should Contain Element ${xpath_number_of_events} 221 ${number_of_events}= Get Text ${xpath_number_of_events} 222 Run Keyword If ${number_of_events} > 0 223 ... Common Event Log Click Element ${xpath_individual_event_resolved} 224 ${number_of_events}= Get Text ${xpath_number_of_events} 225 Should Be Equal ${number_of_events} 1 226 ... msg=Failed to mark single error log entry as resolved. 227 228 229Select Multiple Error Logs And Mark As Resolved 230 [Documentation] Select multiple error logs and mark as resolved. 231 [Tags] Select_Multiple_Error_Logs_And_Mark_As_Resolved 232 233 Create Test Error Log 234 Create Test Error Log 235 # Refresh the GUI to get the latest update. 236 Click Element ${xpath_select_refresh_button} 237 Wait Until Page Does Not Contain Element ${xpath_refresh_circle} 238 Page Should Contain Element ${xpath_number_of_events} 239 ${number_of_events}= Get Text ${xpath_number_of_events} 240 Run Keyword If ${number_of_events} > 0 241 ... Double Event Log Click Element ${xpath_individual_event_resolved} 242 ${number_of_events}= Get Text ${xpath_number_of_events} 243 Should Be Equal ${number_of_events} 2 244 ... msg=Failed to mark multiple error log entries as resolved. 245 246 247Select Single Error Log And Export 248 [Documentation] Select single error log and export. 249 [Tags] Select_Single_Error_Log_And_Export 250 251 Create Test Error Log 252 # Refresh the GUI to get the latest update. 253 Click Element ${xpath_select_refresh_button} 254 Wait Until Page Does Not Contain Element ${xpath_refresh_circle} 255 Page Should Contain Element ${xpath_number_of_events} 256 ${number_of_events}= Get Text ${xpath_number_of_events} 257 Run Keyword If ${number_of_events} > 0 258 ... Common Event Log Click Element ${xpath_individual_event_export} 259 ${number_of_events}= Get Text ${xpath_number_of_events} 260 Should Be Equal ${number_of_events} 1 261 ... msg=Failed to export single error log entry. 262 263 264Select Multiple Error Log And Export 265 [Documentation] Select multiple error log and export. 266 [Tags] Select_Multiple_Error_Log_And_Export 267 268 Create Test Error Log 269 Create Test Error Log 270 # Refresh the GUI to get the latest update. 271 Click Element ${xpath_select_refresh_button} 272 Wait Until Page Does Not Contain Element ${xpath_refresh_circle} 273 Page Should Contain Element ${xpath_number_of_events} 274 ${number_of_events}= Get Text ${xpath_number_of_events} 275 Run Keyword If ${number_of_events} > 0 276 ... Double Event Log Click Element ${xpath_individual_event_export} 277 ${number_of_events}= Get Text ${xpath_number_of_events} 278 Should Be Equal ${number_of_events} 2 279 ... msg=Failed to export multiple error log entries. 280 281*** Keywords *** 282 283Common Event Log Click Element 284 [Documentation] Keep common click elements associated with event log. 285 [Arguments] ${action_element} ${action_click_confirmation}=${None} 286 ... ${xpath_event_select}=${xpath_individual_event_select} 287 288 # Description of argument(s): 289 # action_element xpath value of the element to be actioned 290 # (e.g. "Delete" or "Resolved" or "Export"). 291 # action_click_confirmation Confirmation of action by pressing yes 292 # (e.g. "Yes" or "No"). 293 # xpath_event_select xpath to select event log. 294 295 Click Element ${xpath_event_select} 296 Page Should Contain Element ${action_element} 297 Click Element ${action_element} 298 Wait Until Page Does Not Contain Element ${xpath_refresh_circle} 299 Run Keyword If "${action_click_confirmation}" != "${None}" 300 ... Click Element ${action_click_confirmation} 301 Click Element ${xpath_select_refresh_button} 302 Run Key Sleep \ 50s 303 304Double Event Log Click Element 305 [Documentation] Keep double click elements associated with event logs. 306 [Arguments] ${action_element} ${action_click_confirmation}=${None} 307 308 # Description of argument(s): 309 # action_element xpath value of the element to be actioned 310 # (e.g. "Delete" or "Resolved" or "Export"). 311 # action_click_confirmation Confirmation of action by pressing yes 312 # (e.g. "Yes" or "No"). 313 314 Click Element ${xpath_second_event_select} 315 Common Event Log Click Element ${action_element} 316 ... ${action_click_confirmation} 317 318Test Setup Execution 319 [Documentation] Do test case setup tasks. 320 321 ${status}= Run Keyword And Return Status Logging Test Binary Exist 322 Run Keyword If ${status} == ${False} Install Tarball 323 Delete Error Logs And Verify 324 325 # Launch the GUI and navigate to server health page. 326 Launch Browser And Login OpenBMC GUI 327 Click Element ${xpath_select_server_health} 328 Wait Until Page Contains Event log 329 330Test Teardown Execution 331 [Documentation] Do the post test teardown. 332 333 FFDC On Test Case Fail 334 Delete All Error Logs 335 Close All Connections 336 Close Browser 337