1*** Settings ***
2Documentation  This test suite will validate the "OpenBMC" GUI ->
3...            "Server control" main menu -> "Server power
4...            operations" submenu module.
5
6Resource         ../../lib/resource.robot
7Test Setup       Test Setup Execution  ${OBMC_PowerOff_state}
8Test Teardown    Test Teardown Execution
9
10*** Variables ***
11${xpath_select_server_control}           //*[@id="nav__top-level"]/li[3]/button/span
12${xpath_select_server_power_operations}  //a[@href='#/server-control/power-operations']
13${string_server_power_operations}        Server power operations
14${string_current_status}                 Current status
15${string_select_power_operation}         Select a power operation
16${string_warm_reboot}                    Attempts to perform an orderly shutdown before restarting the server
17${string_cold_reboot}                    Shuts down the server immediately, then restarts it
18${string_orderly_shutdown}               Attempts to stop all software on the server before removing power
19${string_immediate_shutdown}             Removes power from the server without waiting for software to stop
20${string_power_on}                       Attempts to power on the server
21
22*** Test Case ***
23# OpenBMC @ Power Off state test cases.
24
25Verify Title Text Should Be Server Power Operations At Power Off
26    [Documentation]  Verify display of title text "Server Power Operations".
27    [Tags]  Verify_Title_Text_Should_Be_Server_Power_Operations_At_Power_Off
28    ...  OBMC_PowerOff_state
29
30    Select Server Power Operations Sub Menu
31    Verify Display Content  ${string_server_power_operations}
32
33Verify Sub Title Text Should Be Current Status At Power Off
34    [Documentation]  Verify display of title text "Current Status".
35    [Tags]  Verify_Sub_Title_Text_Should_Be_Current_Status_At_Power_Off
36    ...  OBMC_PowerOff_state
37
38    Select Server Power Operations Sub Menu
39    Verify Display Content  ${string_current_status}
40
41Verify Sub Title Text Should Be Select Power Operation At Power Off
42    [Documentation]  Verify display of title text "Select a power operation".
43    [Tags]  Verify_Sub_Title_Text_Should_Be_Select_Power_Operation_At_Power_Off
44    ...  OBMC_PowerOff_state
45
46    Select Server Power Operations Sub Menu
47    Verify Display Content  ${string_Select_power_operation}
48
49Verify Power On Button Should Present At Power Off
50    [Documentation]  Verify presence of "Warm reboot" button.
51    [Tags]  Verify_Power_On_Button_Should_Present_At_Power_Off
52    ...  OBMC_PowerOff_State
53
54    Select Server Power Operations Sub Menu
55    Verify Presence of Power Button And Text Info
56    ...  ${xpath_select_button_power_on}  ${string_power_on}
57
58Verify Power On At Power Off
59    [Documentation]  Verify presence of "Warm reboot" button.
60    [Tags]  Verify_Power_On_At_Power_Off
61    ...  OBMC_PowerOff_State
62
63    Power On OpenBMC
64
65
66# OpenBMC @ Power Running state test cases.
67
68Verify Warm Reboot Button Should Present At Power Running
69    [Documentation]  Verify presence of "Warm reboot" button.
70    [Tags]  Verify_Warm_Reboot_Button_Should_Present_At_Power_Running
71    ...  OBMC_PowerRunning_State
72    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
73
74    Select Server Power Operations Sub Menu
75    Verify Presence of Power Button And Text Info
76    ...  ${xpath_select_button_warm_reboot}  ${string_warm_reboot}
77
78Verify Cold Reboot Button Should Present At Power Running
79    [Documentation]  Verify presence of "cold reboot" button.
80    [Tags]  Verify_Cold_Reboot_Button_Should_Present_At_Power_Running
81    ...  OBMC_PowerRunning_State
82    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
83
84    Select Server Power Operations Sub Menu
85    Verify Presence of Power Button And Text Info
86    ...  ${xpath_select_button_cold_reboot}  ${string_cold_reboot}
87
88Verify Orderly Shutdown Button Should Present At Power Running
89    [Documentation]  Verify presence of "Orderly shutdow " button.
90    [Tags]  Verify_Orderly_Shutdown_Button_Should_Present_At_Power_Running
91    ...  OBMC_PowerRunning_State
92    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
93
94    Select Server Power Operations Sub Menu
95    Verify Presence of Power Button And Text Info
96    ...  ${xpath_select_button_orderly_shutdown}  ${string_orderly_shutdown}
97
98Verify Immediate Shutdown Button Should Present At Power Running
99    [Documentation]  Verify presence of "Immediate shutdown" button.
100    [Tags]  Verify_Immediate_Shutdown_Button_Should_Present_At_Power_Running
101    ...  OBMC_PowerRunning_State
102    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
103
104    Select Server Power Operations Sub Menu
105    Verify Presence of Power Button And Text Info
106    ...  ${xpath_select_button_immediate_shutdown}  ${string_immediate_shutdown}
107
108Verify Warm Reboot Should Not Happen By Clicking No Button
109    [Documentation]  Verify functionality of warm reboot "No" button clicking.
110    [Tags]  Verify_Warm_Reboot_Should_Not_Happen_By_Clicking_No_Button
111    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
112
113    Select Server Power Operations Sub Menu
114    Click Element  ${xpath_select_button_warm_reboot}
115    Verify Warning Message Display Text  ${xpath_warm_reboot_warning_message}
116    ...  ${text_warm_reboot_warning_message}
117    Verify No Button Functionality
118    ...  ${xpath_select_button_warm_reboot_no}
119
120Verify Cold Reboot Should Not Happen By Clicking No Button
121    [Documentation]  Verify functionality of cold reboot "No" button clicking.
122    [Tags]  Verify_Cold_Reboot_Should_Not_Happen_By_Clicking_No_Button
123    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
124
125    Select Server Power Operations Sub Menu
126    Click Element  ${xpath_select_button_cold_reboot}
127    Verify Warning Message Display Text  ${xpath_cold_reboot_warning_message}
128    ...  ${text_cold_reboot_warning_message}
129    Verify No Button Functionality
130    ...  ${xpath_select_button_cold_reboot_no}
131
132Verify Orderly Shutdown Should Not Happen By Clicking No Button
133    [Documentation]  Verify functionality of orderly shutdown "No" button clicking.
134    [Tags]  Verify_Orderly_Shutdown_Should_Not_Happen_By_Clicking_No_Button
135    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
136
137    Select Server Power Operations Sub Menu
138    Click Element  ${xpath_select_button_orderly_shutdown}
139    Verify Warning Message Display Text  ${xpath_orderly_shutdown_warning_message}
140    ...  ${text_orderly_shutdown_warning_message}
141    Verify No Button Functionality
142    ...  ${xpath_select_button_orderly_shutdown_button_no}
143
144Verify Immediate Shutdown Should Not Happen By Clicking No Button
145    [Documentation]  Verify functionality of immediate shutdown "No" button clicking.
146    [Tags]  Verify_Immediate_Shutdown_Should_Not_Happen_By_Clicking_No_Button
147    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
148
149    Select Server Power Operations Sub Menu
150    Click Element  ${xpath_select_button_immediate_shutdown}
151    Verify Warning Message Display Text  ${xpath_immediate_shutdown_warning_message}
152    ...  ${text_immediate_shutdown_warning_message}
153    Verify No Button Functionality
154    ...  ${xpath_select_button_immediate_shutdown_no}
155
156Verify Warm Reboot Should Happen By Clicking Yes Button
157    [Documentation]  Verify functionality of warm reboot "Yes" button clicking.
158    [Tags]  Verify_Warm_Reboot_Should_Happen_By_Clicking_Yes_Button
159    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
160
161    Select Server Power Operations Sub Menu
162    Warm Reboot openBMC
163
164Verify Cold Reboot Should Happen By Clicking Yes Button
165    [Documentation]  Verify functionality of cold reboot "Yes" button clicking.
166    [Tags]  Verify_Cold_Reboot_Should_Happen_By_Clicking_Yes_Button
167    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
168
169    Select Server Power Operations Sub Menu
170    Cold Reboot openBMC
171
172Verify Orderly Shutdown Should Happen By Clicking Yes Button
173    [Documentation]  Verify functionality of orderly shutdown "Yes" button clicking.
174    [Tags]  Verify_Orderly_Shutdown_Should_Happen_By_Clicking_Yes_Button
175    ...  OBMC_PowerRunning_State
176    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
177
178    Select Server Power Operations Sub Menu
179    Orderly Shutdown OpenBMC
180
181Verify Immediate Shutdown Should Happen By Clicking Yes Button
182    [Documentation]  Verify functionality of immediate shutdown "Yes" button clicking.
183    [Tags]  Verify_Immediate_Shutdown_Should_Happen_By_Clicking_Yes_Button
184    ...  OBMC_PowerRunning_State
185    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
186
187    Select Server Power Operations Sub Menu
188    Immediate Shutdown openBMC
189
190*** Keywords ***
191Select Server Power Operations Sub Menu
192    [Documentation]  Selecting of OpenBMC "Server Power Operations" Submenu.
193
194    Click Button  ${xpath_select_server_control}
195    Click Button  ${xpath_select_server_power_operations}
196
197Verify Presence of Power Button And Text Info
198    [Documentation]  Verify the presens fo power button and text message info.
199    [Arguments]      ${power_button}  ${power_button_text}
200
201    # power_button         Xpath of power button.
202    # power_button_text    Text message info.
203
204    Page Should Contain Button  ${power_button}
205    Verify Display Content  ${power_button_text}
206
207Verify No Button Functionality
208    [Documentation]  Verify the functionality of "No" button click.
209    [Arguments]      ${xpath_no_button}
210
211    # xpath_no_button      Xpath of "No" button.
212
213    Click No Button  ${xpath_no_button}
214    ${obmc_current_state}=  Get Text  ${xpath_display_server_power_status}
215    Should Contain  ${obmc_current_state}  ${obmc_running_state}
216