1*** Settings ***
2
3Documentation   Test OpenBMC GUI "Profile settings" menu.
4
5Resource        ../../lib/gui_resource.robot
6
7Suite Setup     Launch Browser And Login GUI
8Suite Teardown  Close Browser
9Test Setup      Test Setup Execution
10
11Force Tags      Profile_Settings_Sub_Menu
12
13*** Variables ***
14
15${xpath_new_password}                  //*[@data-test-id='profileSettings-input-newPassword']
16${xpath_confirm_password}              //*[@data-test-id='profileSettings-input-confirmPassword']
17${xpath_logged_usename}                //*[@data-test-id='appHeader-container-user']
18${xpath_default_UTC}                   //*[@data-test-id='profileSettings-radio-defaultUTC']
19${xpath_profile_settings_save_button}  //*[@data-test-id='profileSettings-button-saveSettings']
20
21*** Test Cases ***
22
23Verify Navigation To Profile Settings Page
24    [Documentation]  Verify navigation to profile settings page.
25    [Tags]  Verify_Navigation_To_Profile_Settings_Page
26
27    Page Should Contain  Profile settings
28
29
30Verify Existence Of All Sections In Profile Settings Page
31    [Documentation]  Verify existence of all sections in profile settings page.
32    [Tags]  Verify_Existence_Of_All_Sections_In_Profile_Settings_Page
33
34    Page Should Contain  Profile information
35    Page Should Contain  Change password
36    Page Should Contain  Timezone display preference
37
38
39Verify Existence Of All Buttons And Input Boxes In Profile Settings Page
40    [Documentation]  Verify existence of all buttons and input boxes in profile settings page.
41    [Tags]  Verify_Existence_Of_All_Buttons_And_Input_Boxes_In_Profile_Settings_Page
42
43    # Input Boxes in profile settings page.
44    Page Should Contain Element  ${xpath_new_password}
45    Page Should Contain Element  ${xpath_confirm_password}
46
47    # Buttons in profile settings page.
48    Page Should Contain Element  ${xpath_save_settings_button}
49
50
51Verify Logged In Username
52    [Documentation]  Verify logged in username in profile settings page.
53    [Tags]  Verify_Logged_In_Username
54
55    Wait Until Page Contains Element  ${xpath_logged_usename}
56    ${gui_logged_username}=  Get Text  ${xpath_logged_usename}
57    Should Contain  ${gui_logged_username}  ${OPENBMC_USERNAME}
58
59
60Verify Default UTC Timezone Display
61    [Documentation]  Set default UTC timezone via GUI and verify timezone value in overview page.
62    [Tags]  Verify_Default_UTC_Timezone_Display
63
64    Click Element At Coordinates    ${xpath_default_UTC}    0    0
65    Click Element  ${xpath_profile_settings_save_button}
66
67    # Navigate to the overview page.
68
69    Click Element  ${xpath_overview_menu}
70    Wait Until Page Contains  Overview  timeout=30s
71
72    ${cli_date_time}=  CLI Get BMC DateTime
73
74    # Fetching hour and minute from BMC CLI to handle seconds difference during execution.
75
76    ${cli_hour_and_min}=  Convert Date  ${cli_date_time}  result_format=%H:%M
77    Page Should Contain  ${cli_hour_and_min}
78
79
80*** Keywords ***
81
82Test Setup Execution
83    [Documentation]  Do test case setup tasks.
84
85    # Navigate to https://xx.xx.xx.xx/#/profile-settings  profile-settings page.
86
87    Wait Until Page Contains Element  ${xpath_root_button_menu}
88    Click Element  ${xpath_root_button_menu}
89    Wait Until Page Contains Element  ${xpath_profile_settings}
90    Click Element  ${xpath_profile_settings}
91    Wait Until Keyword Succeeds  30 sec  10 sec  Location Should Contain  profile-settings
92    Wait Until Element Is Not Visible   ${xpath_page_loading_progress_bar}  timeout=30
93