Keeping only openbmc gui related files under gui folder

Change-Id: I16be748571e9842fe8293ad8137a51730eb21613
Signed-off-by: Rahul Maheshwari <rahulmaheshwari@in.ibm.com>
diff --git a/gui/test/gui_header/test_obmc_gui_ip_refresh_check.robot b/gui/test/gui_header/test_obmc_gui_ip_refresh_check.robot
new file mode 100644
index 0000000..76d1bf6
--- /dev/null
+++ b/gui/test/gui_header/test_obmc_gui_ip_refresh_check.robot
@@ -0,0 +1,89 @@
+*** 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_select_server_control}  //*[@id="header__wrapper"]/div/div[2]/p[2]
+${xpath_select_refresh_button}  //*[@id="header__wrapper"]/div/div[3]/button
+${xpath_select_date_text}       //*[@id="header__wrapper"]/div/div[3]/p/span
+${xpath_header_scroll_front}    //*[@id="header__wrapper"]/div/div[3]/a[1]/span
+${xpath_header_scroll_back}     //*[@id="header__wrapper"]/div/div[3]/a[1]/i
+
+*** Test Cases ***
+
+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_select_server_control}
+    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
+    Click Element  ${xpath_select_refresh_button}
+    GUI Power On
+    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
+
+    ${date_info_1st_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.
+
+    # 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_front}
+    # Below element is to scroll back.
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Click Element  ${xpath_header_scroll_back}
+    # Restore to original browser size.
+    Set Window Size  ${current_browser_width}  ${current_browser_height}
diff --git a/gui/test/gui_header/test_obmc_gui_power_operations.robot b/gui/test/gui_header/test_obmc_gui_power_operations.robot
new file mode 100644
index 0000000..56bd9c6
--- /dev/null
+++ b/gui/test/gui_header/test_obmc_gui_power_operations.robot
@@ -0,0 +1,145 @@
+*** Settings ***
+
+Documentation  Test Open BMC GUI Power Operations under GUI Header.
+
+Resource  ../../../lib/state_manager.robot
+Resource  ../../lib/resource.robot
+
+Test Setup      Test Setup Execution
+Test Teardown   Close Browser
+
+*** Test Cases ***
+
+Power On The Host
+    [Documentation]  Power on the host.
+    [Tags]  Power_On_the_Host
+
+    Expected Initial Test State  Off
+    GUI Power On
+    Wait Until Keyword Succeeds  10 min  10 sec  Is Host Running
+    Wait Until Page Contains  Running
+
+Click Immediate Shutdown Then No
+    [Documentation]  Click the "Immediate shutdown" button and then click the
+    ...  "No" button.
+    [Tags]  Click_Immediate_Shutdown_Then_No
+
+    Expected Initial Test State  Running
+    Controller Server Power Click Button  power__hard-shutdown
+    Controller Power Operations Confirmation Click Button  ${power_operations}
+    ...  ${power_off}  ${confirm_msg}  ${no}
+
+    Is Host Running
+    Wait Until Page Contains  Running
+
+Click Cold Reboot Then No
+    [Documentation]  Click the "Cold reboot" button and then click the "No"
+    ...  button.
+    [Tags]  Click_Cold_Reboot_Then_No
+
+    Expected Initial Test State  Running
+    Controller Server Power Click Button  power__cold-boot
+    Controller Power Operations Confirmation Click Button  ${power_operations}
+    ...  ${cold_boot}  ${confirm_msg}  ${no}
+
+    Is Host Running
+    Page Should Contain  Running
+
+Click Warm Reboot Then No
+    [Documentation]  Click the "Warm reboot" button and then click the "No"
+    ...  button.
+    [Tags]  Click_Warm_Reboot_Then_No
+
+    Expected Initial Test State  Running
+    Controller Server Power Click Button  power__warm-boot
+    Controller Power Operations Confirmation Click Button  ${power_operations}
+    ...  ${warm_boot}  ${confirm_msg}  ${no}
+    Is Host Running
+    Page Should Contain  Running
+
+Click Orderly Shutdown Then No
+    [Documentation]  Click the "Orderly shutdown" button and then click the
+    ...  "No" button.
+    [Tags]  Click_Orderly_Shutdown_Then_No
+
+    Expected Initial Test State  Running
+    Controller Server Power Click Button  power__soft-shutdown
+    Controller Power Operations Confirmation Click Button  ${power_operations}
+    ...  ${shut_down}  ${confirm_msg}  ${no}
+    Wait Until Keyword Succeeds  10 min  10 sec  Is Host Running
+    Page Should Contain  Running
+
+Click Warm Reboot Then Yes
+    [Documentation]  Click the "Warm reboot" button and then click the "Yes"
+    ...  button.
+    [Tags]  Click_Warm_Reboot_Then_Yes
+
+    Expected Initial Test State  Running
+    Controller Server Power Click Button  power__warm-boot
+    Controller Power Operations Confirmation Click Button  ${power_operations}
+    ...  ${warm_boot}  ${confirm_msg}  ${yes}
+    Wait Until Keyword Succeeds  10 min  10 sec  Is Host Running
+    Page Should Contain  Running
+
+Click Cold Reboot Then Yes
+    [Documentation]  Click the "Cold reboot" button and then click the "Yes"
+    ...  button.
+    [Tags]  Click_Cold_Reboot_Then_Yes
+
+    Expected Initial Test State  Running
+    Controller Server Power Click Button  power__cold-boot
+    Controller Power Operations Confirmation Click Button  ${power_operations}
+    ...  ${cold_boot}  ${confirm_msg}  ${yes}
+    Page Should Contain  Standby
+    Wait Until Keyword Succeeds  10 min  10 sec  Is Host Running
+    Page Should Contain  Running
+
+Click Orderly Shutdown Then Yes
+    [Documentation]  Click the "Orderly shutdown" button and then click the
+    ...  "Yes" button.
+    [Tags]  Click_Orderly_Shutdown_Then_Yes
+
+    Expected Initial Test State  Running
+    Controller Server Power Click Button  power__soft-shutdown
+    Controller Power Operations Confirmation Click Button  ${power_operations}
+    ...  ${shut_down}  ${confirm_msg}  ${yes}
+    Page Should Contain  Off
+    Wait Until Keyword Succeeds  6 min  10 sec  Is Host Off
+
+Click Immediate Shutdown Then Yes
+    [Documentation]  Click "Immediate shutdown" button and then click the "Yes"
+    ...  button.
+    [Tags]  Click_Immediate_Shutdown_Then_Yes
+
+    Expected Initial Test State  Running
+
+    # By this time GUI logs out. So relaunching it.
+    Close Browser
+    Launch Browser And Login OpenBMC GUI
+
+    Controller Server Power Click Button  power__hard-shutdown
+    Controller Power Operations Confirmation Click Button  ${power_operations}
+    ...  ${power_off}  ${confirm_msg}  ${yes}
+
+    Wait Until Page Contains  Off
+    Wait Until Keyword Succeeds  6 min  10 sec  Is Host Off
+
+OpenBMC GUI Logoff
+    [Documentation]  Log out from openBMC GUI.
+    [Tags]  OpenBMC_GUI_Logoff
+
+    Log  ${xpath_openbmc_url}
+    Log To Console  ${xpath_openbmc_url}
+    Click Element  header
+
+
+*** Keywords ***
+
+Test Setup Execution
+   [Documentation]  Do testcase setup tasks.
+
+   # Launch the GUI and navigate to server power page.
+   Launch Browser And Login OpenBMC GUI
+   Click Element  ${xpath_select_server_power}
+   Wait Until Page Contains  Server power operations
+
diff --git a/gui/test/gui_header/test_obmc_gui_server_health.robot b/gui/test/gui_header/test_obmc_gui_server_health.robot
new file mode 100644
index 0000000..88fdd69
--- /dev/null
+++ b/gui/test/gui_header/test_obmc_gui_server_health.robot
@@ -0,0 +1,330 @@
+*** 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
+
+
+*** 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=1
+    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  //*[@class='control__indicator']
+
+
+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
+
+    # Ensure that page is not in refreshing state.
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Click Element  //*[@class='control__indicator']
+    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
+    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  //*[@class='control__indicator']
+    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
+    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  //*[@class='control__indicator']
+    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
+    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  //*[@class='control__indicator']
+    Page Should Contain Button  ${xpath_event_action_delete}
+    Run Keyword If  ${number_of_events} > 0
+    ...  Click Element  ${xpath_event_action_delete}
+    ${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.
+
+*** Keywords ***
+
+Common Event Log Click Element
+   [Documentation]  Keep common click elements associated with event log.
+   [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_individual_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}
+
+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
+
+   # Launch the GUI and navigate to server health page.
+   Launch Browser And Login OpenBMC GUI
+   Click Element  ${xpath_select_server_health}
+   Wait Until Page Contains  Event log
+
+Test Teardown Execution
+   [Documentation]  Do the post test teardown.
+
+   FFDC On Test Case Fail
+   Delete All Error Logs
+   Close All Connections
+   Close Browser
diff --git a/gui/test/server_config/test_obmc_gui_firmware_update.robot b/gui/test/server_config/test_obmc_gui_firmware_update.robot
new file mode 100644
index 0000000..528d35e
--- /dev/null
+++ b/gui/test/server_config/test_obmc_gui_firmware_update.robot
@@ -0,0 +1,109 @@
+*** Settings ***
+
+Documentation  Test Open BMC GUI server configuration firmware update.
+
+Resource        ../../lib/resource.robot
+Resource        ../../../lib/logging_utils.robot
+
+Suite Setup     Launch Browser And Login OpenBMC GUI
+Suite Teardown  Close Browser
+Test Setup      Test Setup Execution
+Test Teardown   Run Keyword If Test Failed  Re-Launch GUI on Failure
+
+*** Variables ***
+${xpath_select_server_config}   //*[@id="nav__top-level"]/li[4]/button
+${xpath_select_firmware}        //a[@href='#/configuration/firmware']
+${xpath_choose_file_button}     //*[@id="firmware__upload-form"]/div[1]/label/span[1]
+${xpath_scroll_down}            //a[contains(text(), "Scroll down")]
+${xpath_tftp_server_ip}         //*[@id="tftp-ip"]
+${xpath_tftp_filename}          //*[@id="tftp-file-name"]
+${xpath_download_firmware}      //*[@id="firmware__upload-form"]/div[2]/fieldset/div[1]/div[3]/input
+${xpath_download_progress}      //*[@id="firmware__upload-form"]/div[2]/fieldset/div[2]
+
+*** Test Cases ***
+
+Verify Select Firmware From Server Configuration
+    [Documentation]  Verify ability to select firmware option from server
+    ...  configuration sub-menu.
+    [Tags]  Verify_Select_Firmware_From_Server_Configuration
+
+    Wait Until Page Contains  Firmware
+    Page Should contain  Manage BMC and server firmware
+
+
+Verify Scroll Down Link
+    [Documentation]  Verify scroll down link works.
+    [Tags]  Verify_Scroll_Down_Link
+
+    Page Should Contain Element  ${xpath_scroll_down}
+    Click Element  ${xpath_scroll_down}
+    Page Should Contain Element  ${xpath_choose_file_button}
+
+
+Verify Choose File Button Click
+    [Documentation]  Verify choose file button is clickable.
+    [Tags]  Verify_Choose_File_Button_Click
+
+    Page Should Contain  No file chosen
+    Page Should Contain Element  ${xpath_choose_file_button}
+    Click Element  ${xpath_choose_file_button}
+
+Verify BMC Firmware Download
+    # BMC Firmware File Path located at TFTP server.
+    ${BMC_IMAGE_FILE_PATH}
+    [Template]  Upload Firmware using TFTP Server
+    [Documentation]  Verify BMC image is download from TFTP server.
+    [Tags]  Verify_BMC_Firmware_Download
+
+
+Verify Host Firmware Download
+    # Host Firmware File Path located at TFTP server.
+    ${PNOR_IMAGE_FILE_PATH}
+    [Template]  Upload Firmware using TFTP Server
+    [Documentation]  Verify Host image is download from TFTP server.
+    [Tags]  Verify_HOST_Firmware_Download
+
+
+*** Keywords ***
+
+Test Setup Execution
+   [Documentation]  Do test case setup tasks.
+
+    Delete All Error Logs
+    Click Element  ${xpath_select_server_config}
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Click Element  ${xpath_select_firmware}
+
+Upload Firmware using TFTP Server
+    [Documentation]  Upload firmware using TFTP server.
+    [Arguments]  ${firmware_file_name}
+
+    Page Should Contain Button  ${xpath_download_firmware}
+    Page Should Contain Element  ${xpath_tftp_server_ip}
+    Page Should Contain Element  ${xpath_tftp_filename}
+
+    Input Text  ${xpath_tftp_server_ip}  ${TFTP_SERVER}
+    Input Text  ${xpath_tftp_filename}  ${firmware_file_name}
+    Click Button  ${xpath_download_firmware}
+    Sleep  180s
+    Wait Until Page Does Not Contain Element  ${xpath_download_progress}
+
+    # ${message}=  Handle Alert  timeout=300s
+    # Didn't work so commenting out currently.
+    # Alert not getting captured.
+    # TODO: Issue https://github.com/openbmc/openbmc-test-automation/issues/1412
+
+    Check No Error Log Exist
+
+Check No Error Log Exist
+    [Documentation]  No error log should be logged.
+
+    ${resp}=  OpenBMC Get Request  ${BMC_LOGGING_ENTRY}list  quiet=${1}
+    Should Be Equal As Strings  ${resp.status_code}  ${HTTP_NOT_FOUND}
+    ...  msg=Codeupdate Failed with error.
+
+Re-Launch GUI on Failure
+    [Documentation]  On failure of test case, close and re-launch GUI.
+
+    Logout And Close Browser
+    Launch Browser And Login OpenBMC GUI
diff --git a/gui/test/server_config/test_obmc_gui_network_settings.robot b/gui/test/server_config/test_obmc_gui_network_settings.robot
new file mode 100644
index 0000000..8f705e9
--- /dev/null
+++ b/gui/test/server_config/test_obmc_gui_network_settings.robot
@@ -0,0 +1,98 @@
+*** Settings ***
+
+Documentation   Test OpenBMC GUI "Network settings" sub-menu of
+...             "Server configuration".
+
+Resource        ../../lib/resource.robot
+
+Suite Setup     Launch Browser And Login OpenBMC GUI
+Suite Teardown  Close Browser
+Test Setup      Test Setup Execution
+
+*** Variables ***
+
+${xpath_select_server_configuration}  //*[@id="nav__top-level"]/li[4]/button
+${xpath_select_network_settings}  //a[@href='#/configuration/network']
+${xpath_hostname_input}  //*[@id="net-config__mac"]
+${xpath_network_save_settings}  //*[@id="configuration-network"]/form/section[3]/div[2]/button[1]
+${xpath_continue}  //*[@id=""]/main/section/div/div[4]/button[2]
+${xpath_network_config_ipv4_address}  //*[@id="net-config__ipv4-address"]
+${xpath_default_gateway_input}  //*[@id="net-config__domain"]
+${xpath_mac_address_input}  //*[@id="net-config__host"]
+${xpath_ipv4-address-input}  //*[@id="net-config__ipv4-address"]
+${xpath_network_DHCP_button}  //*[@id="configuration-network"]/form/section[2]/fieldset/div[1]/label/span
+${xpath_network_static_button}  //*[@id="configuration-network"]/form/section[2]/fieldset/div[2]/label/span
+
+*** Test Cases ***
+
+Verify Network Settings From Server Configuration
+    [Documentation]  Verify ability to select "Network Settings" sub-menu option
+    ...  of "Server Configuration".
+    [Tags]  Verify_Network_Settings_From_Server_Configuration
+
+    Wait Until Page Contains  BMC network settings
+    Page Should Contain  IPV4 settings  Common settings
+
+
+Verify Hostname Text Configuration
+    [Documentation]  Verify hostname text is configurable from "network settings"
+    ...  sub-menu.
+    [Tags]  Verify_Hostname_Text_Configuration
+
+    Input Text  ${xpath_hostname_input}  witherspoon1
+    Click Element  ${xpath_network_save_settings}
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Click Element  ${xpath_continue}
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Page Should Contain  witherspoon1
+
+
+Verify Default Gateway Editable
+    [Documentation]  Verify default gateway text input allowed from "network
+    ...  settings".
+    [Tags]  Verify_Default_Gateway_Editable
+
+    Page Should Contain Element  ${xpath_default_gateway_input}
+    Input Text  ${xpath_default_gateway_input}  10.6.6.7
+
+
+Verify MAC Address Editable
+    [Documentation]  Verify MAC address text input allowed from "network
+    ...  settings".
+    [Tags]  Verify_MAC_Address_Editable
+
+    Page Should Contain Element  ${xpath_mac_address_input}
+    Input Text  ${xpath_mac_address_input}  70:e2:84:14:16:6c
+
+
+Verify IP Address Editable With Static IP Selection
+    [Documentation]  Verify IP address editable with static IP selection.
+    [Tags]  Verify_IP_Address_Editable_With_Static_IP_Selection
+
+    Page Should Contain Element  ${xpath_network_static_button}
+    Click Element  ${xpath_network_static_button}
+    ${status}=  Run Keyword And Return Status  Input Text
+    ...  ${xpath_ipv4-address-input}  ${OPENBMC_HOST}
+    Should Be True  '${status}' == '${True}'
+
+
+Verify IP Address Noneditable With DHCP IP Selection
+    [Documentation]  Verify IP address noneditable with DHCP IP selection.
+    [Tags]  Verify_IP_Address_Noneditable_With_DHCP_IP_Selection
+
+    Page Should Contain Element  ${xpath_network_DHCP_button}
+    Click Element  ${xpath_network_DHCP_button}
+    Element Should Be Disabled  ${xpath_ipv4-address-input}
+
+
+*** Keywords ***
+
+Test Setup Execution
+   [Documentation]  Do test case setup tasks.
+
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Click Element  ${xpath_select_server_configuration}
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Click Element  ${xpath_select_network_settings}
+    Wait Until Page Contains Element  ${xpath_network_config_ipv4_address}
+
diff --git a/gui/test/server_control/test_obmc_gui_server_power_operations.robot b/gui/test/server_control/test_obmc_gui_server_power_operations.robot
new file mode 100644
index 0000000..504ced9
--- /dev/null
+++ b/gui/test/server_control/test_obmc_gui_server_power_operations.robot
@@ -0,0 +1,215 @@
+*** Settings ***
+Documentation  This test suite will validate the "OpenBMC" GUI ->
+...            "Server control" main menu -> "Server power
+...            operations" submenu module.
+
+Resource         ../../lib/resource.robot
+Test Setup       Test Setup Execution  ${OBMC_PowerOff_state}
+Test Teardown    Test Teardown Execution
+
+*** Variables ***
+${xpath_select_server_control}           //*[@id="nav__top-level"]/li[3]/button/span
+${xpath_select_server_power_operations}  //a[@href='#/server-control/power-operations']
+${string_server_power_operations}        Server power operations
+${string_current_status}                 Current status
+${string_select_power_operation}         Select a power operation
+${string_warm_reboot}                    Attempts to perform an orderly shutdown before restarting the server
+${string_cold_reboot}                    Shuts down the server immediately, then restarts it
+${string_orderly_shutdown}               Attempts to stop all software on the server before removing power
+${string_immediate_shutdown}             Removes power from the server without waiting for software to stop
+${string_power_on}                       Attempts to power on the server
+
+*** Test Case ***
+# OpenBMC @ Power Off state test cases.
+
+Verify Title Text Should Be Server Power Operations At Power Off
+    [Documentation]  Verify display of title text "Server Power Operations".
+    [Tags]  Verify_Title_Text_Should_Be_Server_Power_Operations_At_Power_Off
+    ...  OBMC_PowerOff_state
+
+    Select Server Power Operations Sub Menu
+    Verify Display Content  ${string_server_power_operations}
+
+Verify Sub Title Text Should Be Current Status At Power Off
+    [Documentation]  Verify display of title text "Current Status".
+    [Tags]  Verify_Sub_Title_Text_Should_Be_Current_Status_At_Power_Off
+    ...  OBMC_PowerOff_state
+
+    Select Server Power Operations Sub Menu
+    Verify Display Content  ${string_current_status}
+
+Verify Sub Title Text Should Be Select Power Operation At Power Off
+    [Documentation]  Verify display of title text "Select a power operation".
+    [Tags]  Verify_Sub_Title_Text_Should_Be_Select_Power_Operation_At_Power_Off
+    ...  OBMC_PowerOff_state
+
+    Select Server Power Operations Sub Menu
+    Verify Display Content  ${string_Select_power_operation}
+
+Verify Power On Button Should Present At Power Off
+    [Documentation]  Verify presence of "Warm reboot" button.
+    [Tags]  Verify_Power_On_Button_Should_Present_At_Power_Off
+    ...  OBMC_PowerOff_State
+
+    Select Server Power Operations Sub Menu
+    Verify Presence of Power Button And Text Info
+    ...  ${xpath_select_button_power_on}  ${string_power_on}
+
+Verify Power On At Power Off
+    [Documentation]  Verify presence of "Warm reboot" button.
+    [Tags]  Verify_Power_On_At_Power_Off
+    ...  OBMC_PowerOff_State
+
+    Power On OpenBMC
+
+
+# OpenBMC @ Power Running state test cases.
+
+Verify Warm Reboot Button Should Present At Power Running
+    [Documentation]  Verify presence of "Warm reboot" button.
+    [Tags]  Verify_Warm_Reboot_Button_Should_Present_At_Power_Running
+    ...  OBMC_PowerRunning_State
+    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
+
+    Select Server Power Operations Sub Menu
+    Verify Presence of Power Button And Text Info
+    ...  ${xpath_select_button_warm_reboot}  ${string_warm_reboot}
+
+Verify Cold Reboot Button Should Present At Power Running
+    [Documentation]  Verify presence of "cold reboot" button.
+    [Tags]  Verify_Cold_Reboot_Button_Should_Present_At_Power_Running
+    ...  OBMC_PowerRunning_State
+    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
+
+    Select Server Power Operations Sub Menu
+    Verify Presence of Power Button And Text Info
+    ...  ${xpath_select_button_cold_reboot}  ${string_cold_reboot}
+
+Verify Orderly Shutdown Button Should Present At Power Running
+    [Documentation]  Verify presence of "Orderly shutdow " button.
+    [Tags]  Verify_Orderly_Shutdown_Button_Should_Present_At_Power_Running
+    ...  OBMC_PowerRunning_State
+    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
+
+    Select Server Power Operations Sub Menu
+    Verify Presence of Power Button And Text Info
+    ...  ${xpath_select_button_orderly_shutdown}  ${string_orderly_shutdown}
+
+Verify Immediate Shutdown Button Should Present At Power Running
+    [Documentation]  Verify presence of "Immediate shutdown" button.
+    [Tags]  Verify_Immediate_Shutdown_Button_Should_Present_At_Power_Running
+    ...  OBMC_PowerRunning_State
+    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
+
+    Select Server Power Operations Sub Menu
+    Verify Presence of Power Button And Text Info
+    ...  ${xpath_select_button_immediate_shutdown}  ${string_immediate_shutdown}
+
+Verify Warm Reboot Should Not Happen By Clicking No Button
+    [Documentation]  Verify functionality of warm reboot "No" button clicking.
+    [Tags]  Verify_Warm_Reboot_Should_Not_Happen_By_Clicking_No_Button
+    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
+
+    Select Server Power Operations Sub Menu
+    Click Element  ${xpath_select_button_warm_reboot}
+    Verify Warning Message Display Text  ${xpath_warm_reboot_warning_message}
+    ...  ${text_warm_reboot_warning_message}
+    Verify No Button Functionality
+    ...  ${xpath_select_button_warm_reboot_no}
+
+Verify Cold Reboot Should Not Happen By Clicking No Button
+    [Documentation]  Verify functionality of cold reboot "No" button clicking.
+    [Tags]  Verify_Cold_Reboot_Should_Not_Happen_By_Clicking_No_Button
+    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
+
+    Select Server Power Operations Sub Menu
+    Click Element  ${xpath_select_button_cold_reboot}
+    Verify Warning Message Display Text  ${xpath_cold_reboot_warning_message}
+    ...  ${text_cold_reboot_warning_message}
+    Verify No Button Functionality
+    ...  ${xpath_select_button_cold_reboot_no}
+
+Verify Orderly Shutdown Should Not Happen By Clicking No Button
+    [Documentation]  Verify functionality of orderly shutdown "No" button clicking.
+    [Tags]  Verify_Orderly_Shutdown_Should_Not_Happen_By_Clicking_No_Button
+    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
+
+    Select Server Power Operations Sub Menu
+    Click Element  ${xpath_select_button_orderly_shutdown}
+    Verify Warning Message Display Text  ${xpath_orderly_shutdown_warning_message}
+    ...  ${text_orderly_shutdown_warning_message}
+    Verify No Button Functionality
+    ...  ${xpath_select_button_orderly_shutdown_button_no}
+
+Verify Immediate Shutdown Should Not Happen By Clicking No Button
+    [Documentation]  Verify functionality of immediate shutdown "No" button clicking.
+    [Tags]  Verify_Immediate_Shutdown_Should_Not_Happen_By_Clicking_No_Button
+    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
+
+    Select Server Power Operations Sub Menu
+    Click Element  ${xpath_select_button_immediate_shutdown}
+    Verify Warning Message Display Text  ${xpath_immediate_shutdown_warning_message}
+    ...  ${text_immediate_shutdown_warning_message}
+    Verify No Button Functionality
+    ...  ${xpath_select_button_immediate_shutdown_no}
+
+Verify Warm Reboot Should Happen By Clicking Yes Button
+    [Documentation]  Verify functionality of warm reboot "Yes" button clicking.
+    [Tags]  Verify_Warm_Reboot_Should_Happen_By_Clicking_Yes_Button
+    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
+
+    Select Server Power Operations Sub Menu
+    Warm Reboot openBMC
+
+Verify Cold Reboot Should Happen By Clicking Yes Button
+    [Documentation]  Verify functionality of cold reboot "Yes" button clicking.
+    [Tags]  Verify_Cold_Reboot_Should_Happen_By_Clicking_Yes_Button
+    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
+
+    Select Server Power Operations Sub Menu
+    Cold Reboot openBMC
+
+Verify Orderly Shutdown Should Happen By Clicking Yes Button
+    [Documentation]  Verify functionality of orderly shutdown "Yes" button clicking.
+    [Tags]  Verify_Orderly_Shutdown_Should_Happen_By_Clicking_Yes_Button
+    ...  OBMC_PowerRunning_State
+    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
+
+    Select Server Power Operations Sub Menu
+    Orderly Shutdown OpenBMC
+
+Verify Immediate Shutdown Should Happen By Clicking Yes Button
+    [Documentation]  Verify functionality of immediate shutdown "Yes" button clicking.
+    [Tags]  Verify_Immediate_Shutdown_Should_Happen_By_Clicking_Yes_Button
+    ...  OBMC_PowerRunning_State
+    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
+
+    Select Server Power Operations Sub Menu
+    Immediate Shutdown openBMC
+
+*** Keywords ***
+Select Server Power Operations Sub Menu
+    [Documentation]  Selecting of OpenBMC "Server Power Operations" Submenu.
+
+    Click Button  ${xpath_select_server_control}
+    Click Button  ${xpath_select_server_power_operations}
+
+Verify Presence of Power Button And Text Info
+    [Documentation]  Verify the presens fo power button and text message info.
+    [Arguments]      ${power_button}  ${power_button_text}
+
+    # power_button         Xpath of power button.
+    # power_button_text    Text message info.
+
+    Page Should Contain Button  ${power_button}
+    Verify Display Content  ${power_button_text}
+
+Verify No Button Functionality
+    [Documentation]  Verify the functionality of "No" button click.
+    [Arguments]      ${xpath_no_button}
+
+    # xpath_no_button      Xpath of "No" button.
+
+    Click No Button  ${xpath_no_button}
+    ${obmc_current_state}=  Get Text  ${xpath_display_server_power_status}
+    Should Contain  ${obmc_current_state}  ${obmc_running_state}
diff --git a/gui/test/server_health/test_obmc_gui_hardware_status.robot b/gui/test/server_health/test_obmc_gui_hardware_status.robot
new file mode 100644
index 0000000..f50693d
--- /dev/null
+++ b/gui/test/server_health/test_obmc_gui_hardware_status.robot
@@ -0,0 +1,98 @@
+*** Settings ***
+
+Documentation  Test OpenBMC GUI "Hardware status" sub-menu  of "Server health".
+
+Resource        ../../lib/resource.robot
+
+Suite Setup     Launch Browser And Login OpenBMC GUI
+Suite Teardown  Close Browser
+Test Setup      Test Setup Execution
+
+*** Variables ***
+
+${xpath_select_server_health}  //*[@id="nav__top-level"]/li[2]/button
+${xpath_select_hardware_status}  //a[@href='#/server-health/inventory-overview']
+${xpath_inventory_export}  //a[contains(text(), "Export")]
+${xpath_inventory_search}  //*[@id="content__search-input"]
+${xpath_inventory_search_button}  //*[@id="content__search-submit"]
+${xpath_inventory_search_text_clear}  //button[@class='clear-input']
+${xpath_bmc_expand}  //*[@id="inventory-categories"]/div[5]/button
+${xpath_system_expand}  //*[@id="inventory-categories"]/div[2]/button
+${xpath_motherboard_expand}  //*[@id="inventory-categories"]/div[4]/button
+${xpath_chassis_expand}  //*[@id="inventory-categories"]/div[3]/button
+
+*** Test Cases ***
+
+Verify Select Health Status From Server Health
+    [Documentation]  Verify ability to select "Hardware status" sub-menu option
+    ...  of "Server health".
+    [Tags]  Verify_Select_Health_Status_From_Server_Health
+
+    Wait Until Page Contains  Hardware status
+    Page should contain  All hardware in the system
+
+
+Verify Inventory Export From Server Health Clickable
+    [Documentation]  Verify ability to export inventory from "Hardware status"
+    ...  sub-menu.
+    [Tags]  Verify_Inventory_Export_From_Server_Health_Clickable
+
+    Page Should Contain Element  ${xpath_inventory_export}
+    Click Element  ${xpath_inventory_export}
+
+
+Verify Search Text Enterable
+    [Documentation]  Verify search text input allowed from "Hardware status"
+    ...  sub-menu.
+    [Tags]  Verify_Search_Text_Enterable
+
+    Page Should Contain Element  ${xpath_inventory_search}
+    Input Text  ${xpath_inventory_search}  fan
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Page Should Contain Element  ${xpath_inventory_search_button}
+    Click Element  ${xpath_inventory_search_button}
+
+
+Verify Search Text Clearable
+    [Documentation]  Verify search text allowed to clear from "Hardware status"
+    ...  sub-menu.
+    [Tags]  Verify_Search_Text_Clearable
+
+    Page Should Contain Element  ${xpath_inventory_search}
+    Input Text  ${xpath_inventory_search}  fan
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Page Should Contain Element  ${xpath_inventory_search_text_clear}
+    Click Element  ${xpath_inventory_search_text_clear}
+
+
+Verify System Inventory Expand
+    [Documentation]  Verify system inventory icon expandable from
+    ...  "Hardware status" sub-menu.
+    [Tags]  Verify_System_Inventory_Expand
+    [Template]  Verify Hardware Inventory Expand
+
+    # xpath_hardware_item
+    ${xpath_system_expand}
+    ${xpath_chassis_expand}
+    ${xpath_bmc_expand}
+    ${xpath_motherboard_expand}
+
+*** Keywords ***
+
+Test Setup Execution
+   [Documentation]  Do test case setup tasks.
+
+    Click Element  ${xpath_select_server_health}
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Click Element  ${xpath_select_hardware_status}
+
+
+Verify Hardware Inventory Expand
+   [Documentation]  Verify expand individual hardware inventory item.
+   [Arguments]  ${xpath_hardware_item}
+
+   # Description of argument(s):
+   # xpath_hardware_item    Hardware inventory item to be expand. e.g. fan.
+
+   Page Should Contain Element  ${xpath_hardware_item}
+   Click Element  ${xpath_hardware_item}
diff --git a/gui/test/server_health/test_obmc_gui_sensors.robot b/gui/test/server_health/test_obmc_gui_sensors.robot
new file mode 100644
index 0000000..34e90b6
--- /dev/null
+++ b/gui/test/server_health/test_obmc_gui_sensors.robot
@@ -0,0 +1,57 @@
+*** Settings ***
+
+Documentation  Test OpenBMC GUI "Sensors" sub-menu of "Server health".
+
+Resource        ../../lib/resource.robot
+
+Suite Setup     Launch Browser And Login OpenBMC GUI
+Suite Teardown  Close Browser
+Test Setup      Test Setup Execution
+
+*** Variables ***
+${xpath_select_server_health}   //*[@id="nav__top-level"]/li[2]/button
+${xpath_select_sensors}         //a[@href='#/server-health/sensors-overview']
+${xpath_sensors_export}         //a[contains(text(), "Export")]
+${xpath_sensors_search}         //*[@id="content__search-input"]
+${xpath_sensors_search_button}  //*[@id="content__search-submit"]
+
+*** Test Cases ***
+Verify Select Sensors From Server Health
+    [Documentation]  Verify ability to select "Sensors" sub-menu option of
+    ...  "Server health".
+    [Tags]  Verify_Select_Sensors_From_Server_Health
+
+    Wait Until Page Contains  Sensors
+    Page should contain  All sensors present in the system
+
+
+Verify Sensors Export From Server Health Clickable
+    [Documentation]  Verify ability to export sensors from "Sensors"
+    ...  sub-menu of "Server health".
+    [Tags]  Verify_Sensors_Export_From_Server_Health_Clickable
+
+    Page Should Contain Element  ${xpath_sensors_export}
+    Click Element  ${xpath_sensors_export}
+
+
+Verify Search Text Enterable
+    [Documentation]  Verify search text input allowed from "Sensors"
+    ...  sub-menu of "Server health".
+    [Tags]  Verify_Search_Text_Enterable
+
+    Page Should Contain Element  ${xpath_sensors_search}
+    Input Text  ${xpath_sensors_search}  Temperature
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Page Should Contain Element  ${xpath_sensors_search_button}
+    Focus  ${xpath_sensors_search_button}
+    Click Element  ${xpath_sensors_search_button}
+
+*** Keywords ***
+
+Test Setup Execution
+   [Documentation]  Do test case setup tasks.
+
+    Click Element  ${xpath_select_server_health}
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Click Element  ${xpath_select_sensors}
+
diff --git a/gui/test/server_overview/test_obmc_gui_server_overview.robot b/gui/test/server_overview/test_obmc_gui_server_overview.robot
new file mode 100644
index 0000000..c967120
--- /dev/null
+++ b/gui/test/server_overview/test_obmc_gui_server_overview.robot
@@ -0,0 +1,120 @@
+*** Settings ***
+Documentation  This test suite will validate the "OpenBMC ASMI Menu ->
+...            Server Overview" module.
+
+Resource         ../../lib/resource.robot
+Test Setup       Test Setup Execution  ${OBMC_PowerOff_state}
+Test Teardown    Test Teardown Execution
+
+*** Variables ***
+${xpath_select_overview_1}         //*[@id="nav__top-level"]/li[1]/a/span
+${string_content}                  witherspoon
+${string_server_info}              Server information
+${string_high_priority_events}     High priority events
+${string_BMC_info}                 BMC information
+${string_power_info}               Power information
+${xpath_high_priority_events}      //a[@href='#/server-health/event-log']
+${string_event_log}                Event log
+${xpath_launch_serial_over_lan}    //a[@class='no-icon quick-links__item']
+${string_launch_serial_over_lan}   Serial over LAN console
+
+*** Test Case ***
+# OpenBMC @ Power Off state test cases.
+
+Verify Title Text Content At OBMC Power Off State
+    [Documentation]  Verify display of title text from "Server Overview"
+    ...  module of OpenBMC GUI.
+    [Tags]  Verify_Title_Text_Content_At_OBMC_Power_Off_State
+    ...  OBMC_PowerOff_state
+
+    Select Server Overview Menu
+    Verify Display Content  ${string_content}
+
+Verify Display Text Server Information At OBMC Power Off State
+    [Documentation]  Verify existence of text "Server information".
+    [Tags]  Verify_Display_Text_Server_Information_At_OBMC_Power_Off_State
+    ...  OBMC_PowerOff_state
+
+    Select Server Overview Menu
+    Verify Display Content  ${string_server_info}
+
+Verify BMC Information Should Display At OBMC Power Off State
+    [Documentation]  Verify existence of text "BMC information".
+    [Tags]  Verify_BMC_Information_Should_Display_At_OBMC_Power_Off_State
+    ...  OBMC_PowerOff_State
+
+    Select Server Overview Menu
+    Verify Display Content  ${string_BMC_info}
+
+Verify POWER Information Should Display At OBMC Power Off State
+    [Documentation]  Verify existence of text "Power information".
+    [Tags]  Verify_Power_Information_Should_Display_At_OBMC_Power_Off_State
+    ...  OBMC_PowerOff_State
+
+    Select Server Overview Menu
+    Verify Display Content  ${string_power_info}
+
+Verify High Priority Events Should Display At OBMC Power Off State
+    [Documentation]  Verify the text display.
+    [Tags]  Verify_High_Priority_Events_Should_Display_At_OBMC_Power_Off_State
+    ...  OBMC_PowerOff_State
+
+    Select Server Overview Menu
+    Verify Display Content  ${string_high_priority_events}
+
+Verify High Priority Events Can Be Operated At OBMC Power Off State
+    [Documentation]  Will open the "High Priority Events".
+    ...  menu to view and operate.
+    [Tags]  Verify_High_Priority_Events_Can_Be_Operated_At_OBMC_Power_Off_State
+    ...   OBMC_PowerOff_state
+
+    Select Server Overview Menu
+    Click Link  ${xpath_high_priority_events}
+    Verify Display Content  ${string_event_log}
+
+Verify Launching Of Serial Over LAN Console At OBMC Power Off State
+    [Documentation]  Will open the serial over the lan command prompt window.
+    [Tags]  Verify_Launching_Of_Serial_Over_LAN_Console_At_OBMC_Power_Off_State
+    ...  OBMC_PowerOff_State
+
+    Select Server Overview Menu
+    Click Element  ${xpath_launch_serial_over_lan}
+    Verify Display Content  ${string_launch_serial_over_lan}
+
+
+# OpenBMC @ Power Running state test cases.
+
+Verify High Priority Events Can Be Operated At OBMC Power Running State
+    [Documentation]  Will open the "High Priority Events"
+    ...  menu to view and operate.
+    [Tags]  Verify_High_Priority_Events_Can_Be_Operated_At_OBMC_Power_Running_State
+    ...  OBMC_PowerRunning_state
+    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
+
+    Select Server Overview Menu
+    Click Link  ${xpath_high_priority_events}
+    Verify Display Content  ${string_event_log}
+
+Verify Launching Of Serial Over LAN Console At OBMC Power Running State
+    [Documentation]  Will open the serial over the lan command prompt window.
+    [Tags]  Verify_Launching_Of_Serial_Over_LAN_Console_At_OBMC_Power_Running_State
+    ...  OBMC_PowerRunning_State
+    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
+
+    Select Server Overview Menu
+    Click Element  ${xpath_launch_serial_over_lan}
+    Verify Display Content  ${string_launch_serial_over_lan}
+
+*** Keywords ***
+Select Server Overview Menu
+    [Documentation]  Selecting of OpenBMC "Server overview" menu.
+
+    Click Button  ${xpath_select_overview_1}
+
+Verify Display Content
+    [Documentation]  Verify text content display.
+    [Arguments]  ${display_text}
+    # Description of argument(s):
+    # display_text   The display text on web page.
+
+    Page Should Contain  ${display_text}
diff --git a/gui/test/users/test_obmc_gui_manage_user.robot b/gui/test/users/test_obmc_gui_manage_user.robot
new file mode 100644
index 0000000..82e089c
--- /dev/null
+++ b/gui/test/users/test_obmc_gui_manage_user.robot
@@ -0,0 +1,55 @@
+*** Settings ***
+
+Documentation  Test OpenBMC GUI "Manage user account" sub-menu  of
+...  "Users".
+
+Resource        ../../lib/resource.robot
+
+Suite Setup     Launch Browser And Login OpenBMC GUI
+Suite Teardown  Close Browser
+Test Setup      Test Setup Execution
+
+*** Variables ***
+${xpath_select_users}  //*[@id="nav__top-level"]/li[5]/button/span[1]
+${xpath_select_manage_users}  //a[@href='#/users/manage-accounts']
+${xpath_current_password}  //*[@id="user-manage__current-password"]
+${xpath_new_password}  //*[@id="user-manage__new-password"]
+${xpath_retype_new_password}  //*[@id="user-manage__verify-password"]
+${xpath_save_button}  //*[@id="user-accounts"]/section/form/div/button
+
+*** Test Cases ***
+Verify Select Manage Users Account From Users
+    [Documentation]  Verify ability to select "Manage Users Account" sub-menu
+    ...  option of "Users".
+    [Tags]  Verify_Select_Manage_Users_Account_From_Users
+
+    Wait Until Page Contains  Manage user account
+    Page should contain  Change password
+
+
+Verify Existence Of All Password Input Boxes
+    [Documentation]  Verify all password input boxes exists.
+    [Tags]  Verify_Existence_Of_All_Password_Input_Boxes
+
+    Page Should Contain Element  ${xpath_current_password}
+    Page Should Contain Element  ${xpath_new_password}
+    Page Should Contain Element  ${xpath_retype_new_password}
+
+
+Verify Existence Of Save Button
+    [Documentation]  Verify save button exists.
+    [Tags]  Verify_Existence_Of_Save_Button
+
+    Page Should Contain Element  ${xpath_save_button}
+
+*** Keywords ***
+
+Test Setup Execution
+   [Documentation]  Do test case setup tasks.
+
+    Page Should Contain Element  ${xpath_select_users}
+    Focus  ${xpath_select_users}
+    Click Element  ${xpath_select_users}
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Click Element  ${xpath_select_manage_users}
+