blob: 770ea84abba2ab90ba814d3046cea8590722472c [file] [log] [blame]
*** Settings ***
Documentation Test Open BMC GUI BMC host information under GUI Header.
Library DateTime
Resource ../../lib/resource.robot
Suite Setup Launch Browser And Login OpenBMC GUI
Suite Teardown Close Browser
*** Variables ***
${xpath_bmc_ip} //*[contains(@class, "header__server-ip")]
${xpath_select_refresh_button} //*[text()[contains(.,"Refresh")]]
${xpath_select_date_text} //*[@class="header__refresh"]
${xpath_header_scroll} //*[contains(@class,"header__action")]
*** Test Cases ***
Verify Server Power Button
[Documentation] Verify server power page on clicking server power button.
[Tags] Verify_Server_Power_Button
Wait Until Element Is Visible ${xpath_select_server_power}
Click Element ${xpath_select_server_power}
Wait Until Page Contains Server power operations
Verify Server Health Button
[Documentation] Verify server health page on clicking server health button.
[Tags] Verify_Server_Health_Button
Wait Until Element Is Visible ${xpath_select_server_health}
Click Element ${xpath_select_server_health}
Wait Until Page Contains All events from the BMC
Verify IP address
[Documentation] Verify BMC IP address displayed in GUI header.
[Tags] Verify_IP_address
# NOTE: gui_displayed_ip can be either a host name or an IP address.
# (e.g. "machinex" or "xx.xx.xx.xx").
${gui_displayed_ip}= Get Text ${xpath_bmc_ip}
Should Contain ${gui_displayed_ip} ${OPENBMC_HOST}
Verify Refresh Button
[Documentation] Verify Refresh Button in GUI header.
[Tags] Verify_Refresh_Button
# Verify power is on after refresh button.
Expected Initial Test State Off
Wait Until Element Is Visible ${xpath_select_refresh_button}
Click Element ${xpath_select_refresh_button}
GUI Power On
Wait Until Element Is Visible ${xpath_select_refresh_button}
Click Element ${xpath_select_refresh_button}
Wait Until Page Contains Running
Verify Date Last Refreshed
[Documentation] Verify Date Last Refreshed text in GUI header.
[Tags] Verify_Date_Last_Refreshed
Wait Until Element Is Visible ${xpath_select_date_text}
${date_info_1st_read}= Get Text ${xpath_select_date_text}
Should Not Be Empty ${date_info_1st_read}
${current_date}= Get Time
${date_conversion}= Convert Date ${current_date} result_format=%b %-d %Y
${mmmdd} ${yyyy}= Split String From Right ${date_conversion} ${SPACE} 1
Should Contain ${date_info_1st_read} ${mmmdd} msg=Month and day mismatch.
Should Contain ${date_info_1st_read} ${yyyy} msg=Year mismatch.
# Refresh button pressed.
Click Element ${xpath_select_refresh_button}
Sleep 2s
${date_info_2nd_read}= Get Text ${xpath_select_date_text}
${current_date}= Get Time
${date_conversion}= Convert Date ${current_date} result_format=%b %-d %Y
${mmmdd} ${yyyy}= Split String From Right ${date_conversion} ${SPACE} 1
Should Contain ${date_info_1st_read} ${mmmdd} msg=Month and day mismatch.
Should Contain ${date_info_1st_read} ${yyyy} msg=Year mismatch.
# Comparison between 1st and 2nd read.
Should Not Be Equal As Strings ${date_info_1st_read}
... ${date_info_2nd_read}
Verify GUI Header Scrolls
[Documentation] Verify GUI header scrolls on click "Server Info" element.
[Tags] Verify_GUI_Header_Scrolls
${current_browser_width} ${current_browser_height}= Get Window Size
Maximize Browser Window
${max_browser_width} ${max_browser_height}= Get Window Size
# Shrink the browser to half from max size.
${shrink_browser_width}= Evaluate ${max_browser_width} / 2
${shrink_browser_height}= Evaluate ${max_browser_height} / 2
# Reduce the browser size which enables scroll element.
Set Window Size ${shrink_browser_width} ${shrink_browser_height}
Click Element ${xpath_header_scroll}
# Below element is to scroll back.
Wait Until Page Does Not Contain Element ${xpath_refresh_circle}
Click Element ${xpath_header_scroll}
# Restore to original browser size.
Set Window Size ${current_browser_width} ${current_browser_height}
OpenBMC GUI Logoff
[Documentation] Log out from openBMC GUI.
[Tags] OpenBMC_GUI_Logoff
Click Button ${xpath_button_user_action}
Click Button ${xpath_button_logout}
Wait Until Page Contains Element ${xpath_button_login}