Align with new webui development code
Resolves openbmc/openbmc-test-automation#1179
Change-Id: Icf0ce2326dc1fba0bda78f1106d3a1e5fe034473
Signed-off-by: Sivas SRR <sivas.srr@in.ibm.com>
diff --git a/gui/obmc_asmi/data/resource_variables.py b/gui/obmc_asmi/data/resource_variables.py
index 21f5b3f..0887e67 100644
--- a/gui/obmc_asmi/data/resource_variables.py
+++ b/gui/obmc_asmi/data/resource_variables.py
@@ -5,9 +5,27 @@
menus.
"""
+
class resource_variables():
xpath_textbox_username = "//*[@id='username']"
xpath_textbox_password = "//*[@id='password']"
xpath_button_login = "//*[@id='login__submit']"
xpath_button_logout = "//*[@id='header']/a"
+ xpath_openbmc_url = "http://localhost:8080/#/login"
+ xpath_openbmc_ip = "//*[@id='login__form']/input[1]"
+ openbmc_username = "root"
+ openbmc_password = "0penBmc"
+
+ # Power operation elements needed for power on.
+ header_wrapper = "3"
+ header_wrapper_elt = "3"
+
+ # Power operation elements needed for power operations confirmation.
+ power_operations = "3"
+ warm_boot = "3"
+ cold_boot = "4"
+ shut_down = "5"
+ power_off = "6"
+ confirm_msg = "2"
+ yes = "1"
diff --git a/gui/obmc_asmi/lib/resource.robot b/gui/obmc_asmi/lib/resource.robot
index bfba9ab..7a66c34 100644
--- a/gui/obmc_asmi/lib/resource.robot
+++ b/gui/obmc_asmi/lib/resource.robot
@@ -17,12 +17,12 @@
Library ../../../lib/gen_valid.py
Library ../../../lib/gen_robot_ssh.py
Library ../../../lib/bmc_ssh_utils.py
-Resource ../../../lib/resource.txt
Variables ../data/resource_variables.py
+Resource ../../../lib/resource.txt
*** Variables ***
# TO Do: Change the variable once the code finally switches to the OpenBMC.
-${obmc_gui_url} https://openbmc-test.mybluemix.net/#/login
+${openbmc_gui_url} http://localhost:8080/#/login
# Default Browser.
${default_browser} chrome
@@ -49,14 +49,14 @@
Launch Browser in Windows Platform
[Documentation] Open the browse with the URL and login on windows platform.
- ${BROWSER_ID}= Open Browser ${obmc_gui_url} ${default_browser}
+ ${BROWSER_ID}= Open Browser ${openbmc_gui_url} ${default_browser}
Maximize Browser Window
Set Global Variable ${BROWSER_ID}
Launch Headless Browser
[Documentation] Launch headless browser.
Start Virtual Display 1920 1080
- ${BROWSER_ID}= Open Browser ${obmc_gui_url}
+ ${BROWSER_ID}= Open Browser ${openbmc_gui_url}
Set Global Variable ${BROWSER_ID}
Set Window Size 1920 1080
@@ -73,11 +73,18 @@
# Description of argument(s):
# username The username.
# password The password.
- Go To ${obmc_gui_url}
+
+ Register Keyword To Run On Failure Reload Page
+ Log ${openbmc_gui_url}
+ Open Browser With URL ${openbmc_gui_url} gc
+ Page Should Contain Button login__submit
+ # Wait Until Page Contains Element ${obmc_uname}
+ Input Text ${xpath_openbmc_ip} ${OPENBMC_HOST}
Input Text ${xpath_textbox_username} ${username}
Input Password ${xpath_textbox_password} ${password}
- Click Button ${xpath_button_login}
+ Click Element login__submit
Wait Until Element Is Enabled ${xpath_button_logout}
+ Page Should Contain Server information
LogOut OpenBMC GUI
[Documentation] Log out of OpenBMC GUI.
@@ -91,3 +98,61 @@
Print Dashes 0 100 1 =
LogOut OpenBMC GUI
+Open Browser With URL
+ [Documentation] Open browser with specified URL and returns browser id.
+ [Arguments] ${URL} ${browser}=gc
+ # Description of argument(s):
+ # URL Openbmc GUI URL to be open
+ # (e.g. https://openbmc-test.mybluemix.net/#/login )
+ # browser browser used to open above URL
+ # (e.g. gc for google chrome, ff for firefox)
+ ${browser_ID}= Open Browser ${URL} ${browser}
+ [Return] ${browser_ID}
+
+Model Server Power Click Button
+ [Documentation] Click main server power in the header section.
+ [Arguments] ${div_element} ${anchor_element}
+ # Description of argument(s):
+ # div_element Server power header divisional element
+ # (e.g. header_wrapper.)
+ # anchor_element Server power header anchor element
+ # (e.g. header_wrapper_elt.)
+ Wait Until Element Is Visible
+ ... //*[@id='header__wrapper']/div/div[${div_element}]/a[${anchor_element}]/span
+ Click Element
+ ... //*[@id='header__wrapper']/div/div[${div_element}]/a[${anchor_element}]/span
+
+Controller Server Power Click Button
+ [Documentation] Click main server power in the header section.
+ [Arguments] ${controller_element}
+ # Description of argument(s):
+ # controller_element Server power controller element
+ # (e.g. power__power-on.)
+
+ Wait Until Element Is Visible ${controller_element}
+ Click Element ${controller_element}
+
+Controller Power Operations Confirmation Click Button
+ [Documentation] Click Common Power Operations Confirmation.
+ [Arguments] ${main_element} ${sub_element} ${confirm_msg_elt} ${confirmation}
+ # Description of argument(s):
+ # main_element Server power operations element
+ # (e.g. power_operations.)
+ # sub_element Server power operations sub element
+ # (e.g. warm_boot, shut_down.)
+ # confirm_msg_elt Server power operations confirm message element
+ # (e.g. confirm_msg.)
+ # confirmation Server power operations confirmation
+ # (e.g. yes.)
+
+ Click Element
+ ... //*[@id='power-operations']/div[${main_element}]/div[${sub_element}]/confirm/div/div[${confirm_msg_elt}]/button[${confirmation}]
+
+GUI Power On
+ [Documentation] Power on the Host using GUI.
+
+ Model Server Power Click Button ${header_wrapper} ${header_wrapper_elt}
+ Page Should Contain Attempts to power on the server
+ Controller Server Power Click Button power__power-on
+ Page Should Contain Running
+
diff --git a/gui/obmc_asmi/test/gui_header/test_obmc_gui_power_operations.robot b/gui/obmc_asmi/test/gui_header/test_obmc_gui_power_operations.robot
new file mode 100644
index 0000000..5d7d3ab
--- /dev/null
+++ b/gui/obmc_asmi/test/gui_header/test_obmc_gui_power_operations.robot
@@ -0,0 +1,64 @@
+*** Settings ***
+
+Documentation Test Open BMC GUI Power Operations under GUI Header.
+
+Resource ../../lib/resource.robot
+
+Suite Setup Login OpenBMC GUI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD}
+Suite Teardown Close Browser
+
+*** Test Cases ***
+
+Power On The Host
+ [Documentation] Power on the Host.
+ [Tags] Power_On_the_Host
+
+ GUI Power On
+
+Immediate Power Off The Host
+ [Documentation] Immediate power off the Host.
+ [Tags] Immediate_Power_Off_The_Host
+
+ Controller Server Power Click Button power__hard-shutdown
+ Controller Power Operations Confirmation Click Button ${power_operations}
+ ... ${power_off} ${confirm_msg} ${yes}
+
+Cold Boot The Host
+ [Documentation] Cold boot the Host.
+ [Tags] Cold_Boot_the_Host
+
+ GUI Power On
+ Controller Server Power Click Button power__cold-boot
+ Controller Power Operations Confirmation Click Button ${power_operations}
+ ... ${cold_boot} ${confirm_msg} ${yes}
+ Page Should Contain Running
+
+Warm Boot The Host
+ [Documentation] Warm boot the Host.
+ [Tags] Warm_Boot_The_Host
+
+ Controller Server Power Click Button power__warm-boot
+ Controller Power Operations Confirmation Click Button ${power_operations}
+ ... ${warm_boot} ${confirm_msg} ${yes}
+ Page Should Contain Running
+
+Orderly Shutdown The Host
+ [Documentation] Orderly shutdown the Host.
+ [Tags] Orderly_Shutdown_The_Host
+
+ 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
+
+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
+
+
+
+