blob: e1e96092405a4779b6d720a67fec89d71b700da2 [file] [log] [blame]
*** Settings ***
Documentation Test Open BMC GUI server health under GUI Header.
Resource ../../lib/resource.robot
Resource ../../../lib/boot_utils.robot
Resource ../../../lib/utils.robot
Resource ../../../lib/openbmc_ffdc.robot
Resource ../../../lib/state_manager.robot
Resource ../../../lib/openbmc_ffdc_methods.robot
Resource ../../../lib/dump_utils.robot
Resource ../../../lib/logging_utils.robot
Library ../../../lib/gen_robot_keyword.py
Test Setup Test Setup Execution
Test Teardown Test Teardown Execution
*** Variables ***
${xpath_delete_remote_server} //*[@class="remote-logging-server"]//button[2]
${xpath_add_server} //*[@class="remote-logging-server"]//button[1]
${xpath_remote_server_ip} //input[@id="remoteServerIP"]
${xpath_remote_server_port} //input[@id="remoteServerPort"]
*** Test Cases ***
Verify Event Log Text Appears By Clicking Server Health
[Documentation] Check that "Event Log" text appears by clicking server
... health in GUI header.
[Tags] Verify_Event_Log_Text_Appears_By_Clicking_Server_Health
Wait Until Page Contains Element event-log
Page should contain Event log
Verify Filters By Severity Elements Appears
[Documentation] Check that the "event log" filters appears by clicking
... server health in GUI header.
[Tags] Verify_Filters_By_Severity_Elements_Appears
# Types of event severity: All, High, Medium, Low.
Page Should Contain Element ${xpath_event_severity_all} limit=1
Page Should Contain Element ${xpath_event_severity_high} limit=1
Page Should Contain Element ${xpath_event_severity_medium} limit=1
Page Should Contain Element ${xpath_event_severity_low} limit=1
Verify Drop Down Button User Timezone Appears
[Documentation] Check that the "drop down" button of user timezone appears
... by clicking server health in GUI header.
[Tags] Verify_Drop_Down_Button_User_Timezone_Appears
Page Should Contain Button ${xpath_drop_down_timezone_edt}
# Ensure that page is not in refreshing state.
# It helps to click the drop down element.
Wait Until Page Does Not Contain Element ${xpath_refresh_circle}
Click Element //*[@class='dropdown__button']
Page Should Contain Button ${xpath_drop_down_timezone_utc}
Verify Content Search Element Appears
[Documentation] Check that the "event search element is available with
... filter" button appears.
[Tags] Verify_Content_Search_Element_Appears
Page Should Contain Element content__search-input limit=1
# Ensure that page is not in refreshing state.
Wait Until Page Does Not Contain Element ${xpath_refresh_circle}
Page Should Contain Button content__search-submit
Verify Filter By Date Element Appears
[Documentation] Check that the "filter by date" elements are available and
... visible.
[Tags] Verify_Filter_By_Date_Element_Appears
Wait Until Element Is Visible event-filter-start-date
Page Should Contain Element event-filter-start-date limit=1
Page Should Contain Element event-filter-end-date limit=1
Verify Filter By Event Status Element Appears
[Documentation] Check that the "filter by event status" element appears.
[Tags] Verify_Filter_By_Event_Status_Element_Appears
# Ensure that page is not in refreshing state.
Wait Until Page Does Not Contain Element ${xpath_refresh_circle}
Wait Until Element is Visible //*[@class='dropdown__wrapper']
Click Element //*[@class='dropdown__wrapper']
Page Should Contain Element ${xpath_event_filter_all} limit=2
Page Should Contain Element ${xpath_event_filter_resolved} limit=1
Page Should Contain Element ${xpath_event_filter_unresolved} limit=1
Verify Event Action Bar Element Appears
[Documentation] Check that "event action bar" element appears.
[Tags] Verify_Event_Action_Bar_Element_Appears
# Ensure that page is not in refreshing state.
Wait Until Page Does Not Contain Element ${xpath_refresh_circle}
Page Should Contain Element ${xpath_event_action_bars} limit=1
Page Should Contain Element ${xpath_select_all_events}
Verify Click Events Check Box
[Documentation] Check that "event check box" element appears and on click
... should be able to see elements like "Delete" button and "Export"
... element.
[Tags] Verify_Click_Events_Check_Box
Create Test Error Log
Click Element ${xpath_select_refresh_button}
# Ensure that page is not in refreshing state.
Wait Until Page Does Not Contain Element ${xpath_refresh_circle}
Click Element ${xpath_select_all_events}
Page Should Contain Button ${xpath_event_action_delete} limit=1
Page Should Contain Element ${xpath_event_action_export} limit=1
Verify Number of Events Appears
[Documentation] Check that "number of events" element appears and value is
... visible.
[Tags] Verify_Number_of_Events_Appears
# Ensure that page is not in refreshing state.
Wait Until Page Does Not Contain Element ${xpath_refresh_circle}
Page Should Contain Element ${xpath_number_of_events}
${number_of_events}= Get Text ${xpath_number_of_events}
Log To Console \n Number of Events:${number_of_events}
Select All Error Logs And Mark As Resolved
[Documentation] Select all error logs and mark them as resolved.
[Tags] Select_All_Error_Logs_And_Mark_As_Resolved
Create Test Error Log
Create Test Error Log
Click Element ${xpath_select_refresh_button}
Wait Until Page Does Not Contain Element ${xpath_refresh_circle}
Page Should Contain Element ${xpath_number_of_events}
${number_of_events}= Get Text ${xpath_number_of_events}
Click Element ${xpath_select_all_events}
Run Keyword If ${number_of_events} > 0
... Click Element ${xpath_mark_as_resolved}
Element Should Be Disabled ${xpath_mark_as_resolved}
Select All Error Logs And Click Export
[Documentation] Select all error logs and click export element.
[Tags] Select_All_Error_Logs_And_Click_Export
Create Test Error Log
Create Test Error Log
Click Element ${xpath_select_refresh_button}
Wait Until Page Does Not Contain Element ${xpath_refresh_circle}
Page Should Contain Element ${xpath_number_of_events}
${number_of_events}= Get Text ${xpath_number_of_events}
Click Element ${xpath_select_all_events}
Page Should Contain Element ${xpath_events_export}
Run Keyword If ${number_of_events} > 0
... Click Element ${xpath_events_export}
Select All Error Logs And Delete
[Documentation] Select all error logs and delete them.
[Tags] Select_All_Error_Logs_And_Delete
Create Test Error Log
Create Test Error Log
Click Element ${xpath_select_refresh_button}
Wait Until Page Does Not Contain Element ${xpath_refresh_circle}
Page Should Contain Element ${xpath_number_of_events}
${number_of_events}= Get Text ${xpath_number_of_events}
Run Keyword If ${number_of_events} > 0
... Common Event Log Click Element ${xpath_individual_event_delete}
... ${xpath_yes_button} ${xpath_select_all_events}
${number_of_events}= Get Text ${xpath_number_of_events}
Should Be Equal ${number_of_events} 0
Select Single Error Log And Delete
[Documentation] Select single error log and delete it.
[Tags] Select_Single_Error_Log_And_Delete
Create Test Error Log
# Refresh the GUI to get the latest update.
Click Element ${xpath_select_refresh_button}
Wait Until Page Does Not Contain Element ${xpath_refresh_circle}
Page Should Contain Element ${xpath_number_of_events}
${number_of_events}= Get Text ${xpath_number_of_events}
Run Keyword If ${number_of_events} > 0
... Common Event Log Click Element ${xpath_individual_event_delete}
... ${xpath_yes_button}
${number_of_events}= Get Text ${xpath_number_of_events}
Should Be Equal ${number_of_events} 0
... msg=Failed to delete single error log entry.
Select Multiple Error Logs And Delete
[Documentation] Select multiple error logs and delete them.
[Tags] Select_Multiple_Error_Logs_And_Delete
Create Test Error Log
Create Test Error Log
# Refresh the GUI to get the latest update.
Click Element ${xpath_select_refresh_button}
Wait Until Page Does Not Contain Element ${xpath_refresh_circle}
Page Should Contain Element ${xpath_number_of_events}
${number_of_events}= Get Text ${xpath_number_of_events}
Run Keyword If ${number_of_events} > 0
... Double Event Log Click Element ${xpath_individual_event_delete}
... ${xpath_yes_button}
${number_of_events}= Get Text ${xpath_number_of_events}
Should Be Equal ${number_of_events} 0
... msg=Failed to delete multiple error log entries.
Select Single Error Log And Mark As Resolved
[Documentation] Select single error log and mark as resolved.
[Tags] Select_Single_Error_Log_And_Mark_As_Resolved
Create Test Error Log
# Refresh the GUI to get the latest update.
Click Element ${xpath_select_refresh_button}
Wait Until Page Does Not Contain Element ${xpath_refresh_circle}
Page Should Contain Element ${xpath_number_of_events}
${number_of_events}= Get Text ${xpath_number_of_events}
Run Keyword If ${number_of_events} > 0
... Common Event Log Click Element ${xpath_individual_event_resolved}
${number_of_events}= Get Text ${xpath_number_of_events}
Should Be Equal ${number_of_events} 1
... msg=Failed to mark single error log entry as resolved.
Select Multiple Error Logs And Mark As Resolved
[Documentation] Select multiple error logs and mark as resolved.
[Tags] Select_Multiple_Error_Logs_And_Mark_As_Resolved
Create Test Error Log
Create Test Error Log
# Refresh the GUI to get the latest update.
Click Element ${xpath_select_refresh_button}
Wait Until Page Does Not Contain Element ${xpath_refresh_circle}
Page Should Contain Element ${xpath_number_of_events}
${number_of_events}= Get Text ${xpath_number_of_events}
Run Keyword If ${number_of_events} > 0
... Double Event Log Click Element ${xpath_individual_event_resolved}
${number_of_events}= Get Text ${xpath_number_of_events}
Should Be Equal ${number_of_events} 2
... msg=Failed to mark multiple error log entries as resolved.
Select Single Error Log And Export
[Documentation] Select single error log and export.
[Tags] Select_Single_Error_Log_And_Export
Create Test Error Log
# Refresh the GUI to get the latest update.
Click Element ${xpath_select_refresh_button}
Wait Until Page Does Not Contain Element ${xpath_refresh_circle}
Page Should Contain Element ${xpath_number_of_events}
${number_of_events}= Get Text ${xpath_number_of_events}
Run Keyword If ${number_of_events} > 0
... Common Event Log Click Element ${xpath_individual_event_export}
${number_of_events}= Get Text ${xpath_number_of_events}
Should Be Equal ${number_of_events} 1
... msg=Failed to export single error log entry.
Select Multiple Error Log And Export
[Documentation] Select multiple error log and export.
[Tags] Select_Multiple_Error_Log_And_Export
Create Test Error Log
Create Test Error Log
# Refresh the GUI to get the latest update.
Click Element ${xpath_select_refresh_button}
Wait Until Page Does Not Contain Element ${xpath_refresh_circle}
Page Should Contain Element ${xpath_number_of_events}
${number_of_events}= Get Text ${xpath_number_of_events}
Run Keyword If ${number_of_events} > 0
... Double Event Log Click Element ${xpath_individual_event_export}
${number_of_events}= Get Text ${xpath_number_of_events}
Should Be Equal ${number_of_events} 2
... msg=Failed to export multiple error log entries.
Verify Existence Of All Buttons In Remote Logging Server Page
[Documentation] Verify existence of all buttons in remote logging server
... page.
[Tags] Verify_Existence_Of_All_Buttons_In_Remote_Logging_Server_Page
[Setup] Setup For Remote Logging Server
[Teardown] Teardown For Remote Logging Server
Page Should Contain Button ${xpath_cancel_button}
Page Should Contain Button ${xpath_add_button}
Verify Existence Of All Input Boxes In Remote Logging Server Page
[Documentation] Verify existence of all input boxes in remote logging server
... page.
[Tags] Verify_Existence_Of_All_Input_Boxes_In_Remote_Logging_Server_Page
[Setup] Setup For Remote Logging Server
[Teardown] Teardown For Remote Logging Server
Page Should Contain Textfield ${xpath_remote_server_ip}
Page Should Contain Textfield ${xpath_remote_server_port}
*** Keywords ***
Common Event Log Click Element
[Documentation] Keep common click elements associated with event log.
[Arguments] ${action_element} ${action_click_confirmation}=${None}
... ${xpath_event_select}=${xpath_individual_event_select}
# Description of argument(s):
# action_element xpath value of the element to be actioned
# (e.g. "Delete" or "Resolved" or "Export").
# action_click_confirmation Confirmation of action by pressing yes
# (e.g. "Yes" or "No").
# xpath_event_select xpath to select event log.
Click Element ${xpath_event_select}
Page Should Contain Element ${action_element}
Click Element ${action_element}
Wait Until Page Does Not Contain Element ${xpath_refresh_circle}
Run Keyword If "${action_click_confirmation}" != "${None}"
... Click Element ${action_click_confirmation}
Click Element ${xpath_select_refresh_button}
Run Key Sleep \ 50s
Double Event Log Click Element
[Documentation] Keep double click elements associated with event logs.
[Arguments] ${action_element} ${action_click_confirmation}=${None}
# Description of argument(s):
# action_element xpath value of the element to be actioned
# (e.g. "Delete" or "Resolved" or "Export").
# action_click_confirmation Confirmation of action by pressing yes
# (e.g. "Yes" or "No").
Click Element ${xpath_second_event_select}
Common Event Log Click Element ${action_element}
... ${action_click_confirmation}
Navigate To Event Log Page
[Documentation] Go to event log page from BMC homepage.
Launch Browser And Login OpenBMC GUI
Wait Until Page Does Not Contain Element ${xpath_refresh_circle}
Click Element ${xpath_select_server_health}
Wait Until Page Does Not Contain Element ${xpath_refresh_circle}
Wait Until Page Contains Event Log
Test Setup Execution
[Documentation] Do test case setup tasks.
${status}= Run Keyword And Return Status Logging Test Binary Exist
Run Keyword If ${status} == ${False} Install Tarball
Delete Error Logs And Verify
Navigate To Event Log Page
Test Teardown Execution
[Documentation] Do the post test teardown.
FFDC On Test Case Fail
Delete All Error Logs
Close All Connections
Close Browser
Delete Remote Logging Server
[Documentation] Delete remote logging server entry.
Click Button ${xpath_delete_remote_server}
Click Button ${xpath_remove_button}
Setup For Remote Logging Server
[Documentation] Test setup for remote logging server page.
Navigate To Event Log Page
# An entry for remote server may not exist so ignoring if there is a fail
# when deleting the entry.
Run Keyword And Ignore Error Delete Remote Logging Server
Click Button ${xpath_add_server}
Page Should Contain Add remote logging server
Teardown For Remote Logging Server
[Documentation] Test teardown for remote logging server page.
Click Button ${xpath_cancel_button}
FFDC On Test Case Fail
Close Browser