blob: 0650ec037b7def74a0d4b325aedd71899d6b3b63 [file] [log] [blame]
*** Settings ***
Documentation Test OpenBMC GUI "Date and time" sub-menu of "Settings".
Resource ../../lib/gui_resource.robot
Suite Setup Suite Setup Execution
Suite Teardown Suite Teardown Execution
Test Setup Navigate To Date and Time Page
Force Tags Date_And_Time_Sub_Menu
*** Variables ***
${xpath_date_time_heading} //h1[text()="Date and time"]
${xpath_select_manual} //*[@data-test-id="dateTime-radio-configureManual"]
${xpath_select_ntp} //*[@data-test-id="dateTime-radio-configureNTP"]
${xpath_manual_date} //input[@data-test-id="dateTime-input-manualDate"]
${xpath_manual_time} //input[@data-test-id="dateTime-input-manualTime"]
${xpath_ntp_server1} //input[@data-test-id="dateTime-input-ntpServer1"]
${xpath_ntp_server2} //input[@data-test-id="dateTime-input-ntpServer2"]
${xpath_ntp_server3} //input[@data-test-id="dateTime-input-ntpServer3"]
${xpath_select_save_settings} //button[@data-test-id="dateTime-button-saveSettings"]
${xpath_invalid_format_message} //*[contains(text(), "Invalid format")]
${LOOP_COUNT} 2
*** Test Cases ***
Verify Navigation To Date And Time Page
[Documentation] Verify navigation to date and time page.
[Tags] Verify_Navigation_To_Date_And_Time_Page
Page Should Contain Element ${xpath_date_time_heading}
Verify Text Under Date And Time Page
[Documentation] Verify the presence of the required text on the date and time page.
[Tags] Verify_Text_Under_Date_And_Time_Page
Page Should Contain To change how date and time are displayed
... (either UTC or browser offset) throughout the application, visit Profile Settings
Page Should Contain If NTP is selected but an NTP server is not given or the
... given NTP server is not reachable, then time.google.com will be used.
Verify Existence Of All Sections In Date And Time Page
[Documentation] Verify existence of all sections in date and time page.
[Tags] Verify_Existence_Of_All_Sections_In_Date_And_Time_Page
Page Should Contain Configure settings
Verify Existence Of All Buttons In Date And Time Page
[Documentation] Verify existence of all buttons in date and time settings page.
[Tags] Verify_Existence_Of_All_Buttons_In_Date_And_Time_Page
Page Should Contain Element ${xpath_select_manual}
Page Should Contain Element ${xpath_select_ntp}
Page Should Contain Element ${xpath_select_save_settings}
Verify Existence Of All Input Boxes In Date And Time Page
[Documentation] Verify existence of all input boxes in date time page.
[Tags] Verify_Existence_Of_All_Input_Boxes_In_Date_And_Time_Page
Click Element At Coordinates ${xpath_select_manual} 0 0
Page Should Contain Element ${xpath_manual_date}
Page Should Contain Element ${xpath_manual_time}
Click Element At Coordinates ${xpath_select_ntp} 0 0
Page Should Contain Element ${xpath_ntp_server1}
Page Should Contain Element ${xpath_ntp_server2}
Page Should Contain Element ${xpath_ntp_server3}
Verify Date And Time From Configuration Section
[Documentation] Get date and time from configuration section and verify it via BMC CLI.
[Tags] Verify_Date_And_Time_From_Configuration_Section
Click Element At Coordinates ${xpath_select_manual} 0 0
${manual_date}= Get Value ${xpath_manual_date}
${manual_time}= Get Value ${xpath_manual_time}
${cli_date_time}= CLI Get BMC DateTime
Should contain ${cli_date_time} ${manual_date} ${manual_time}
Verify Display Of Date And Time In GUI Page
[Documentation] Get date and time from Redfish and verify it via GUI date and time page.
[Tags] Verify_Display_Of_Date_And_Time_In_GUI_Page
# Set Default timezone in profile settings page.
Set Timezone In Profile Settings Page Default
Navigate To Date and Time Page
# Get date and time from Redfish.
${redfish_date_time}= CLI Get BMC DateTime
${redfish_date}= Convert Date ${redfish_date_time} result_format=%Y-%m-%d
${redfish_time}= Convert Date ${redfish_date_time} result_format=%H:%M
# Verify date and time via GUI date and time page.
Page Should Contain ${redfish_date}
Page Should Contain ${redfish_time}
Verify Profile Setting Button In Date And Time Page
[Documentation] Verify navigation to profile setting page after clicking
... on profile setting button in date and time page.
[Tags] Verify_Profile_Setting_Button_In_Date_And_Time_Page
Click Element ${xpath_profile_settings_link}
Wait Until Page Contains Element ${xpath_profile_settings_heading} timeout=10
Location Should Contain profile-settings
Verify Existence Of Timezone Buttons In Profile Settings Page
[Documentation] Verify default UTC button and browser offset IST button
... in Profile settings page
[Tags] Verify_Existence_Of_Timezone_Buttons_In_Profile_Settings_Page
Click Element ${xpath_profile_settings_link}
Wait Until Page Contains Element ${xpath_profile_settings_heading} timeout=30
Page Should Contain Element ${xpath_default_UTC}
Page Should Contain Element ${xpath_browser_offset}
Verify Date And Time Change To Browser Offset Time
[Documentation] Verify date and time change to broswer's offset time when
... 'Browser offset' option is selected in Profile settings page.
[Tags] Verify_Date_And_Time_Change_To_Browser_Offset_Time
Click Element ${xpath_profile_settings_link}
Wait Until Page Contains Element ${xpath_profile_settings_heading} timeout=10
Click Element At Coordinates ${xpath_browser_offset} 0 0
Click Element ${xpath_profile_save_button}
${xpath_browser_offset_text}= Get Text ${xpath_browser_offset_textfield}
# We get an output ${xpath_browser_offset_text} = Browser offset (CST UTC-6).
# Need to compare "CST UTC-6" text so removing the spaces and other values.
${text}= Set Variable ${xpath_browser_offset_text.split("(")[1].split(")")[0]}
Navigate To Date and Time Page
Page Should Contain ${text}
Verify NTP Server Input Fields In Date And Time Page
[Documentation] Verify NTP server input fields in date and time page.
[Tags] Verify_NTP_Server_Input_Fields_In_Date_And_Time_Page
[Setup] Setup To Power Off And Navigate
Click Element At Coordinates ${xpath_select_ntp} 0 0
Input Text ${xpath_ntp_server1} 10.10.10.10
Input Text ${xpath_ntp_server2} 20.20.20.20
Input Text ${xpath_ntp_server3} 30.30.30.30
Click Element ${xpath_select_save_settings}
# Refresh the NTP Page.
Click Element ${xpath_refresh_button}
Wait Until Page Contains Element ${xpath_select_ntp} timeout=10s
Textfield Value Should Be ${xpath_ntp_server1} 10.10.10.10
Textfield Value Should Be ${xpath_ntp_server2} 20.20.20.20
Textfield Value Should Be ${xpath_ntp_server3} 30.30.30.30
Verify Setting Manual BMC Time
[Documentation] Verify changing manual time and comparing it with CLI time.
[Tags] Verify_Setting_Manual_BMC_Time
[Setup] Run Keywords Set Timezone In Profile Settings Page
... Default AND Setup To Power Off And Navigate
Click Element At Coordinates ${xpath_select_manual} 0 0
Input Text ${xpath_manual_date} 2023-05-12
Input Text ${xpath_manual_time} 15:30
Click Element ${xpath_select_save_settings}
# Wait for changes to take effect.
Sleep 120
${manual_date}= Get Value ${xpath_manual_date}
${manual_time}= Get Value ${xpath_manual_time}
${cli_date_time}= CLI Get BMC DateTime
Should contain ${cli_date_time} ${manual_date} ${manual_time}
Verify Setting Invalid Date And Time Is Not Allowed
[Documentation] Verify if invalid date and invalid time input is given,
... it should throw error.
[Tags] Verify_Setting_Invalid_Date_And_Time_Is_Not_Allowed
[Setup] Setup To Power Off And Navigate
Click Element At Coordinates ${xpath_select_manual} 0 0
Input Text ${xpath_manual_date} 2023-18-48
Page Should Contain Element ${xpath_invalid_format_message}
Input Text ${xpath_manual_time} 29:48
Page Should Contain Element ${xpath_invalid_format_message}
Verify Changing BMC Time From NTP To Manual
[Documentation] Verify that BMC time can be changed from NTP to
... manual time via GUI.
[Tags] Verify_Changing_BMC_Time_From_NTP_To_Manual
[Setup] Setup To Power Off And Navigate
# Add NTP server for BMC time to sync.
Click Element At Coordinates ${xpath_select_ntp} 0 0
Input Text ${xpath_ntp_server1} time.google.com
Click Element ${xpath_select_save_settings}
# Wait for changes to take effect.
Wait Until Page Contains Element ${xpath_select_ntp} timeout=30s
# Set the manual date and time.
${cli_date_time}= CLI Get BMC DateTime
${date_changed}= Add Time To Date ${cli_date_time} 31 days
${date_changed}= Add Time To Date ${date_changed} 05:10:00
Log "Setting BMC date : ${date_changed} using Manual option"
${date}= Convert Date ${date_changed} result_format=%Y-%m-%d
${time}= Convert Date ${date_changed} result_format=%H:%M
Click Element At Coordinates ${xpath_select_manual} 0 0
Input Text ${xpath_manual_date} ${date}
Input Text ${xpath_manual_time} ${time}
Click Element ${xpath_select_save_settings}
# Refresh the NTP Page.
Click Element ${xpath_refresh_button}
Wait Until Page Contains ${date} timeout=60s
Page Should Contain ${time}
# Wait for the "Saved Successfully" window to close automatically.
Sleep 15
Verify Moving From Manual To NTP
[Documentation] Verify switching between manual mode and NTP mode.
[Tags] Verify_Moving_From_Manual_To_NTP
[Setup] Setup To Power Off And Navigate
[Template] Switch From Manual To NTP
# loop_count
${LOOP_COUNT}
*** Keywords ***
Suite Setup Execution
[Documentation] Do test case setup tasks.
Launch Browser And Login GUI
Maximize Browser Window
Suite Teardown Execution
[Documentation] Do the post suite teardown.
Run Keyword And Ignore Error Logout GUI
Close Browser
Setup To Power Off And Navigate
[Documentation] Power off system if not powered off and go to date and
... time page.
Redfish Power off stack_mode=skip
Navigate To Date and Time Page
Navigate To Date and Time Page
[Documentation] Navigate to the date and time page from main menu.
Click Element ${xpath_settings_menu}
Click Element ${xpath_date_time_sub_menu}
Wait Until Keyword Succeeds 30 sec 10 sec Location Should Contain date-time
Wait Until Element Is Not Visible ${xpath_page_loading_progress_bar} timeout=30
Set Manual Date and Time Via GUI
[Documentation] Set BMC date and time to one month in future via GUI.
${cli_date_time}= CLI Get BMC DateTime
${new_date}= Add Time To Date ${cli_date_time} 31 days
${new_date_time}= Add Time To Date ${new_date} 05:10:00
Log "Setting BMC date : ${new_date_time} using Manual option"
${date}= Convert Date ${new_date_time} result_format=%Y-%m-%d
${time}= Convert Date ${new_date_time} result_format=%H:%M
Click Element At Coordinates ${xpath_select_manual} 0 0
Input Text ${xpath_manual_date} ${date}
Input Text ${xpath_manual_time} ${time}
Click Element ${xpath_select_save_settings}
# Wait for changes to take effect.
Wait Until Element Is Enabled ${xpath_select_ntp} timeout=30s
Switch From Manual To NTP
[Documentation] Verify switching from manual mode to NTP mode.
[Arguments] ${loop_count}=${LOOP_COUNT}
# Description of argument(s):
# loop_count Number of loops to move from manual to NTP.
FOR ${x} IN RANGE ${loop_count}
Set Manual Date and Time Via GUI
# Set BMC date time to sync with NTP server.
Click Element At Coordinates ${xpath_select_ntp} 0 0
Input Text ${xpath_ntp_server1} 216.239.35.0
Click Element ${xpath_select_save_settings}
# Wait until saved successfully message is visible.
Wait Until Element Is Visible ${xpath_success_message} timeout=60
${cli_date_time}= CLI Get BMC DateTime
${ntp_date}= Convert Date ${cli_date_time} result_format=%Y-%m-%d
${ntp_time}= Convert Date ${cli_date_time} result_format=%H:%M
Wait Until Page Contains ${ntp_date} timeout=60s
Page Should Contain ${ntp_time}
Wait Until Element Is Not Visible ${xpath_success_message} timeout=60
Log "Completed Loop for ${x} time"
END