141747da7SRahul Maheshwari*** Settings ***
241747da7SRahul MaheshwariDocumentation  This is a resource file containing user-defined keywords for new Vue based OpenBMC GUI.
341747da7SRahul Maheshwari
441747da7SRahul MaheshwariLibrary        XvfbRobot
541747da7SRahul MaheshwariLibrary        SeleniumLibrary
641747da7SRahul MaheshwariLibrary        SSHLibrary  30 Seconds
741747da7SRahul MaheshwariResource       ../../lib/state_manager.robot
841747da7SRahul MaheshwariVariables      ../data/gui_variables.py
941747da7SRahul Maheshwari
1041747da7SRahul Maheshwari
1141747da7SRahul Maheshwari*** Variables ***
1241747da7SRahul Maheshwari${obmc_gui_url}              https://${OPENBMC_HOST}
1341747da7SRahul Maheshwari
144d4ef99fSGeorge Keishing# Default GUI browser and mode is set to "Firefox" and "headless"
1541747da7SRahul Maheshwari# respectively here.
1641747da7SRahul Maheshwari${GUI_BROWSER}               ff
1741747da7SRahul Maheshwari${GUI_MODE}                  headless
1841747da7SRahul Maheshwari
1941747da7SRahul Maheshwari
2041747da7SRahul Maheshwari*** Keywords ***
2141747da7SRahul Maheshwari
2241747da7SRahul MaheshwariOpen Browser With URL
2341747da7SRahul Maheshwari    [Documentation]  Open browser with specified URL and returns browser id.
2441747da7SRahul Maheshwari    [Arguments]  ${URL}  ${browser}=ff  ${mode}=${GUI_MODE}
2541747da7SRahul Maheshwari
2641747da7SRahul Maheshwari    # Description of argument(s):
2741747da7SRahul Maheshwari    # URL      Openbmc GUI URL to be open
2841747da7SRahul Maheshwari    #          (e.g. https://openbmc-test.mybluemix.net/#/login).
2941747da7SRahul Maheshwari    # browser  Browser used to open above URL
3041747da7SRahul Maheshwari    #          (e.g. gc for google chrome, ff for firefox).
3141747da7SRahul Maheshwari    # mode     Browser opening mode(e.g. headless, header).
3241747da7SRahul Maheshwari
3341747da7SRahul Maheshwari    ${browser_ID}=  Run Keyword If  '${mode}' == 'headless'
3441747da7SRahul Maheshwari    ...  Launch Headless Browser  ${URL}  ${browser}
3541747da7SRahul Maheshwari    ...  ELSE  Open Browser  ${URL}  ${browser}
3641747da7SRahul Maheshwari
3741747da7SRahul Maheshwari    [Return]  ${browser_ID}
3841747da7SRahul Maheshwari
3941747da7SRahul Maheshwari
4041747da7SRahul MaheshwariLaunch Header Browser
4141747da7SRahul Maheshwari    [Documentation]  Open the browser with the URL and
4241747da7SRahul Maheshwari    ...              login on windows platform.
4341747da7SRahul Maheshwari    [Arguments]  ${browser_type}=${GUI_BROWSER}
4441747da7SRahul Maheshwari
4541747da7SRahul Maheshwari    # Description of argument(s):
4641747da7SRahul Maheshwari    # browser_type  Type of browser (e.g. "firefox", "chrome", etc.).
4741747da7SRahul Maheshwari
4841747da7SRahul Maheshwari    ${BROWSER_ID}=  Open Browser  ${obmc_gui_url}  ${browser_type}
4941747da7SRahul Maheshwari    Maximize Browser Window
5041747da7SRahul Maheshwari    Set Global Variable  ${BROWSER_ID}
5141747da7SRahul Maheshwari
5241747da7SRahul Maheshwari
5341747da7SRahul MaheshwariLaunch Headless Browser
5441747da7SRahul Maheshwari    [Documentation]  Launch headless browser.
5541747da7SRahul Maheshwari    [Arguments]  ${URL}=${obmc_gui_url}  ${browser}=${GUI_BROWSER}
5641747da7SRahul Maheshwari
5741747da7SRahul Maheshwari    # Description of argument(s):
5841747da7SRahul Maheshwari    # URL      Openbmc GUI URL to be open
5941747da7SRahul Maheshwari    #          (e.g. https://openbmc-test.mybluemix.net/#/login).
6041747da7SRahul Maheshwari    # browser  Browser to open given URL in headless way
6141747da7SRahul Maheshwari    #          (e.g. gc for google chrome, ff for firefox).
6241747da7SRahul Maheshwari
6341747da7SRahul Maheshwari    Start Virtual Display
6441747da7SRahul Maheshwari    ${browser_ID}=  Open Browser  ${URL}
6541747da7SRahul Maheshwari    Set Window Size  1920  1080
6641747da7SRahul Maheshwari
6741747da7SRahul Maheshwari    [Return]  ${browser_ID}
6841747da7SRahul Maheshwari
6941747da7SRahul Maheshwari
7041747da7SRahul MaheshwariLaunch Browser And Login GUI
7141747da7SRahul Maheshwari    [Documentation]  Launch browser and login to OpenBMC GUI.
7241747da7SRahul Maheshwari
7341747da7SRahul Maheshwari    Open Browser With URL  ${obmc_gui_url}
7441747da7SRahul Maheshwari    Login GUI  ${OPENBMC_USERNAME}  ${OPENBMC_PASSWORD}
7541747da7SRahul Maheshwari
7641747da7SRahul Maheshwari
7741747da7SRahul MaheshwariLogin GUI
7841747da7SRahul Maheshwari    [Documentation]  Login to OpenBMC GUI.
7941747da7SRahul Maheshwari    [Arguments]  ${username}=${OPENBMC_USERNAME}  ${password}=${OPENBMC_PASSWORD}
8041747da7SRahul Maheshwari
8141747da7SRahul Maheshwari    # Description of argument(s):
8241747da7SRahul Maheshwari    # username  The username to be used for login.
8341747da7SRahul Maheshwari    # password  The password to be used for login.
8441747da7SRahul Maheshwari
8541747da7SRahul Maheshwari    Go To  ${obmc_gui_url}
8641747da7SRahul Maheshwari    Wait Until Element Is Enabled  ${xpath_textbox_username}
8741747da7SRahul Maheshwari    Input Text  ${xpath_textbox_username}  ${username}
8841747da7SRahul Maheshwari    Input Password  ${xpath_textbox_password}  ${password}
8941747da7SRahul Maheshwari    Click Element  ${xpath_login_button}
907ae30a48SRahul Maheshwari    Wait Until Page Contains  Overview  timeout=60s
9141747da7SRahul Maheshwari
9241747da7SRahul Maheshwari
9341747da7SRahul MaheshwariLogout GUI
9441747da7SRahul Maheshwari    [Documentation]  Logout of OpenBMC GUI.
9541747da7SRahul Maheshwari
96a9d9341cSshrsuman123    Click Element  ${xpath_root_button_menu}
9741747da7SRahul Maheshwari    Click Element  ${xpath_logout_button}
9841747da7SRahul Maheshwari    Wait Until Page Contains Element  ${xpath_login_button}
9941747da7SRahul Maheshwari
10041747da7SRahul Maheshwari
10141747da7SRahul MaheshwariGenerate Test Error Log
10241747da7SRahul Maheshwari    [Documentation]  Generate test error log.
10341747da7SRahul Maheshwari
104*ae6a3c23Srramyasr-in    BMC Execute Command  ${CMD_UNRECOVERABLE_ERROR}
10554edcbcfSAnusha Dathatri
10654edcbcfSAnusha Dathatri
10754edcbcfSAnusha DathatriSet Timezone In Profile Settings Page
10854edcbcfSAnusha Dathatri    [Documentation]  Set the given timezone in profile settings page.
10954edcbcfSAnusha Dathatri    [Arguments]  ${timezone}=Default
11054edcbcfSAnusha Dathatri
11154edcbcfSAnusha Dathatri    # Description of argument(s):
11254edcbcfSAnusha Dathatri    # timezone  Timezone to select (eg. Default or Browser_offset).
11354edcbcfSAnusha Dathatri
11454edcbcfSAnusha Dathatri    Wait Until Page Contains Element  ${xpath_root_button_menu}
11554edcbcfSAnusha Dathatri    Click Element  ${xpath_root_button_menu}
11654edcbcfSAnusha Dathatri    Click Element  ${xpath_profile_settings}
11754edcbcfSAnusha Dathatri    Click Element At Coordinates  ${xpath_default_UTC}  0  0
11854edcbcfSAnusha Dathatri    Click Element  ${xpath_profile_save_button}
11990c6a81cSAshwini Chandrappa
12090c6a81cSAshwini Chandrappa
12190c6a81cSAshwini ChandrappaRefresh GUI
12290c6a81cSAshwini Chandrappa    [Documentation]  Refresh GUI via refresh button in header.
12390c6a81cSAshwini Chandrappa
12490c6a81cSAshwini Chandrappa    Click Element  ${xpath_refresh_button}
12590c6a81cSAshwini Chandrappa    # Added delay for page to load fully after refresh.
12690c6a81cSAshwini Chandrappa    Sleep  5s
127f942dae4Smeghagn12345
128f942dae4Smeghagn12345
129f942dae4Smeghagn12345Refresh GUI And Verify Element Value
130f942dae4Smeghagn12345    [Documentation]  Refresh GUI using refresh button and verify that given element contains expected value.
131f942dae4Smeghagn12345    [Arguments]  ${element}  ${expected_value}
132f942dae4Smeghagn12345
133f942dae4Smeghagn12345    # Description of argument(s):
134f942dae4Smeghagn12345    # element         Element whose value need to be checked.
135f942dae4Smeghagn12345    # expected_value  Expected value of for the given element.
136f942dae4Smeghagn12345
137f942dae4Smeghagn12345    # Refresh GUI.
138f942dae4Smeghagn12345
139f942dae4Smeghagn12345    Click Element  ${xpath_refresh_button}
140f942dae4Smeghagn12345
141f942dae4Smeghagn12345    # Check element value and verify that it contains expected value.
142f942dae4Smeghagn12345    ${element_value}=  Get Text  ${element}
143f942dae4Smeghagn12345    Log  ${element_value}
144f942dae4Smeghagn12345    Should Contain  ${element_value}  ${expected_value}
145f942dae4Smeghagn12345
1462052fdddSmeghagn
1472052fdddSmeghagnReboot BMC via GUI
1482052fdddSmeghagn    [Documentation]  Reboot BMC via GUI.
1492052fdddSmeghagn
1502052fdddSmeghagn    Click Element  ${xpath_operations_menu}
1512052fdddSmeghagn    Click Element  ${xpath_reboot_bmc_sub_menu}
1522052fdddSmeghagn    Click Button  ${xpath_reboot_bmc_button}
1532052fdddSmeghagn    Click Button  ${xpath_confirm_bmc_reboot}
1542052fdddSmeghagn    Wait Until Keyword Succeeds  2 min  10 sec  Is BMC Unpingable
1552052fdddSmeghagn    Wait For Host To Ping  ${OPENBMC_HOST}  1 min
156