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

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

    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
