| *** 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 |