1*** Settings ***
2
3Documentation   Test OpenBMC GUI "SNMP Alerts" sub-menu of "Settings".
4
5Resource        ../../lib/gui_resource.robot
6Resource        ../../../lib/snmp/resource.robot
7Resource        ../../../lib/snmp/redfish_snmp_utils.robot
8
9Suite Setup     Suite Setup Execution
10Suite Teardown  Close Browser
11
12
13*** Variables ***
14
15${xpath_snmp_alerts_sub_menu}                     //*[@data-test-id='nav-item-snmp-alerts']
16${xpath_snmp_alerts_heading}                      //h1[text()="SNMP Alerts"]
17${xpath_select_all_snmp}                          //*[@data-test-id='snmpAlerts-checkbox-selectAll']
18${xpath_add_destination}                          //button[contains(text(),'Add destination')]
19${xpath_snmp_alert_destination_heading}           //h5[contains(text(),'Add SNMP alert destination')]
20${xpath_ip_address_input_button}                  //*[@data-test-id='snmpAlerts-input-ipAddress']
21${xpath_port_optional_input_button}               //*[@data-test-id='snmpAlerts-input-port']
22${xpath_snmp_add_destination_button}              //*[@data-test-id='snmpAlerts-button-ok']
23${xpath_cancel_button}                            //button[contains(text(),'Cancel')]
24${xpath_delete_button}                            //*[@data-test-id='snmpAlerts-button-deleteRow-undefined']
25${xpath_delete_destination}                       //button[contains(text(),'Delete destination')]
26
27
28*** Test Cases ***
29
30Verify Navigation To SNMP Alerts Page
31    [Documentation]  Verify navigation to SNMP alerts page.
32    [Tags]  Verify_Navigation_To_SNMP_Alerts_Page
33
34    Page Should Contain Element  ${xpath_snmp_alerts_heading}
35
36
37Verify Existence Of All Input Boxes In SNMP Alerts Page
38    [Documentation]  Verify existence of all sections in SNMP alerts page.
39    [Tags]  Verify_Existence_Of_All_Input_Boxes_In_SNMP_Alerts_Page
40
41    Page Should Contain Checkbox  ${xpath_select_all_snmp}
42
43
44Verify Existence Of All Buttons In SNMP Alerts Page
45    [Documentation]  Verify existence of all buttons in SNMP alerts page.
46    [Tags]  Verify_Existence_Of_All_Buttons_In_SNMP_Alerts_Page
47
48    Page should Contain Button  ${xpath_add_destination}
49
50
51Verify Existence Of All Fields In Add Destination
52    [Documentation]  Verify existence of all buttons and fields in add destination page.
53    [Tags]  Verify_Existence_Of_All_Fields_In_Add_Destination
54    [Teardown]  Run Keywords  Click Button  ${xpath_cancel_button}  AND
55    ...  Wait Until Keyword Succeeds  10 sec  5 sec
56    ...  Refresh GUI And Verify Element Value  ${xpath_snmp_alerts_heading}  SNMP Alerts
57
58    Click Element  ${xpath_add_destination}
59    Wait Until Page Contains Element  ${xpath_snmp_alert_destination_heading}
60    Page Should Contain Element  ${xpath_ip_address_input_button}
61    Page Should Contain Element  ${xpath_port_optional_input_button}
62    Page Should Contain Element  ${xpath_cancel_button}
63    Page Should Contain Element  ${xpath_snmp_add_destination_button}
64
65
66Configure SNMP Settings On BMC With Non Default Port Via GUI And Verify
67    [Documentation]  Configure SNMP settings on BMC with non default port via GUI and verify.
68    [Tags]  Configure_SNMP_Settings_On_BMC_With_Non_Default_Port_Via_GUI_And_Verify
69    [Teardown]  Delete SNMP Manager Via GUI
70
71    Configure SNMP Manager Via GUI  ${SNMP_MGR1_IP}  ${NON_DEFAULT_PORT1}
72
73    Wait Until Page Contains  ${SNMP_MGR1_IP}  timeout=45s
74
75    Verify SNMP Manager Configured On BMC  ${SNMP_MGR1_IP}  ${NON_DEFAULT_PORT1}
76
77
78Configure SNMP Settings On BMC Via GUI And Verify
79    [Documentation]  Configure SNMP settings on BMC via GUI and verify.
80    [Tags]  Configure_SNMP_Settings_On_BMC_Via_GUI_And_Verify
81    [Teardown]  Delete SNMP Manager Via GUI
82
83    Configure SNMP Manager Via GUI  ${SNMP_MGR1_IP}  ${SNMP_DEFAULT_PORT}
84
85    Wait Until Page Contains  ${SNMP_MGR1_IP}  timeout=45s
86
87    Verify SNMP Manager Configured On BMC  ${SNMP_MGR1_IP}  ${SNMP_DEFAULT_PORT}
88
89
90Configure SNMP Settings On BMC With Empty Port Via GUI And Verify
91    [Documentation]  Configure SNMP settings on BMC with empty port via GUI and verify.
92    [Tags]  Configure_SNMP_Settings_On_BMC_With_Empty_Port_Via_GUI_And_Verify
93    [Teardown]  Delete SNMP Manager Via GUI
94
95    Configure SNMP Manager Via GUI  ${SNMP_MGR1_IP}  ${empty_port}
96
97    Wait Until Page Contains  ${SNMP_MGR1_IP}  timeout=45s
98
99    # SNMP Manager IP is set with default port number when no port number is provided.
100    Verify SNMP Manager Configured On BMC  ${SNMP_MGR1_IP}  ${SNMP_DEFAULT_PORT}
101
102
103Configure Invalid SNMP Settings On BMC Via GUI And Verify
104
105    [Documentation]  Configure invalid SNMP settings on BMC via GUI and verify.
106    [Tags]  Configure_Invalid_SNMP_Settings_On_BMC_Via_GUI_And_Verify
107    [Template]  Configure SNMP Manager On BMC With Invalid Setting Via GUI And Verify
108
109    # snmp_manager_ip   snmp_manager_port        Expected status
110    ${SNMP_MGR1_IP}     ${out_of_range_port}     Value must be between 0 – 65535
111    ${SNMP_MGR1_IP}     ${alpha_port}            Value must be between 0 – 65535
112    ${SNMP_MGR1_IP}     ${negative_port}         Value must be between 0 – 65535
113    ${out_of_range_ip}  ${NON_DEFAULT_PORT1}     Invalid format
114    ${alpha_ip}         ${NON_DEFAULT_PORT1}     Invalid format
115
116
117Configure Multiple SNMP Managers On BMC Via GUI And Verify
118    [Documentation]  Configure multiple SNMP managers on BMC via GUI and verify.
119    [Tags]  Configure_Multiple_SNMP_Managers_On_BMC_Via_GUI_And_Verify
120    [Template]  Configure Multiple SNMP Managers On BMC With Valid Port Via GUI And Verify
121
122    # snmp_manager_ip      snmp_port
123    ${SNMP_MGR1_IP}     ${SNMP_DEFAULT_PORT}
124    ${SNMP_MGR2_IP}     ${SNMP_DEFAULT_PORT}
125
126
127Configure Multiple SNMP Managers With Non Default Port Via GUI And Verify
128    [Documentation]  Configure multiple SNMP managers with non-default port via GUI and verify.
129    [Tags]  Configure_Multiple_SNMP_Managers_With_Non_Default_Port_Via_GUI_And_Verify
130    [Template]  Configure Multiple SNMP Managers On BMC With Valid Port Via GUI And Verify
131
132    # snmp_manager_ip      snmp_port
133    ${SNMP_MGR1_IP}     ${NON_DEFAULT_PORT1}
134    ${SNMP_MGR2_IP}     ${NON_DEFAULT_PORT1}
135
136
137Configure Multiple SNMP Managers With Different Ports Via GUI And Verify
138    [Documentation]  Configure multiple SNMP managers with different ports via GUI and verify.
139    [Tags]  Configure_Multiple_SNMP_Managers_With_Different_Ports_Via_GUI_And_Verify
140    [Template]  Configure Multiple SNMP Managers On BMC With Valid Port Via GUI And Verify
141
142    # snmp_manager_ip      snmp_port
143    ${SNMP_MGR1_IP}     ${NON_DEFAULT_PORT1}
144    ${SNMP_MGR2_IP}     ${SNMP_DEFAULT_PORT}
145    ${SNMP_MGR3_IP}     ${NON_DEFAULT_PORT2}
146
147
148*** Keywords ***
149
150Suite Setup Execution
151    [Documentation]  Do test case setup tasks.
152
153    Launch Browser And Login GUI
154
155    Click Element  ${xpath_settings_menu}
156    Click Element  ${xpath_snmp_alerts_sub_menu}
157    Wait Until Keyword Succeeds  30 sec  10 sec  Location Should Contain  snmp-alerts
158
159
160Configure SNMP Manager Via GUI
161    [Documentation]  Configure SNMP manager via GUI.
162    [Arguments]  ${snmp_ip}  ${port}
163
164    # Description of argument(s):
165    # snmp_ip  SNMP manager IP address.
166    # port     SNMP manager port.
167
168    Click Element  ${xpath_add_destination}
169    Wait Until Page Contains Element  ${xpath_snmp_alert_destination_heading}
170    Input Text  ${xpath_ip_address_input_button}  ${snmp_ip}
171    Wait Until Keyword Succeeds  30 sec  5 sec  Get Value  ${xpath_ip_address_input_button}
172    Input Text  ${xpath_port_optional_input_button}  ${port}
173    Click Element  ${xpath_snmp_add_destination_button}
174
175
176Delete SNMP Manager Via GUI
177    [Documentation]  Delete SNMP manager via GUI.
178
179    Click Element At Coordinates  ${xpath_select_all_snmp}  0  0
180    Wait Until Keyword Succeeds  30 sec  5 sec  Click Element  ${xpath_delete_button}
181    Wait Until Page Contains  Delete SNMP alert destination
182    Click Element  ${xpath_delete_destination}
183    Wait Until Page Contains  Successfully deleted SNMP alert destination  timeout=45s
184    Wait Until Keyword Succeeds  30 sec  10 sec  Refresh GUI And Verify Element Value
185    ...  ${xpath_snmp_alerts_heading}  SNMP Alerts
186
187
188Configure SNMP Manager On BMC With Invalid Setting Via GUI And Verify
189
190    [Documentation]  Configure SNMP manager on BMC with invalid setting via GUI and verify.
191    [Arguments]  ${snmp_manager_ip}  ${snmp_manager_port}  ${expected_error}
192    [Teardown]  Click Element  ${xpath_cancel_button}
193
194    # Description of argument(s):
195    # snmp_manager_ip     SNMP manager IP address.
196    # snmp_manager_port   SNMP manager port.
197    # expected_error      Expected error optionally provided in testcase
198    # ....                (e.g. Invalid format / Value must be between 0 – 65535).
199
200    Configure SNMP Manager Via GUI  ${snmp_manager_ip}  ${snmp_manager_port}
201    Wait Until Page Contains   ${expected_error}
202    ${status}=  Run Keyword And Return Status
203    ...  Verify SNMP Manager Configured On BMC  ${snmp_manager_ip}  ${snmp_manager_port}
204    Should Be Equal As Strings  ${status}  False
205    ...  msg=BMC is allowing to configure with invalid SNMP settings.
206
207
208Configure Multiple SNMP Managers On BMC With Valid Port Via GUI And Verify
209    [Documentation]  Configure multiple SNMP managers on BMC with valid port value via GUI and verify.
210    [Arguments]  ${snmp_ip_value}  ${snmp_port_value}
211    [Teardown]  Delete SNMP Manager Via GUI
212
213    # Description of argument(s):
214    # snmp_ip_value     SNMP manager IP address.
215    # snmp_port_value   SNMP manager port.
216
217    Configure SNMP Manager Via GUI  ${snmp_ip_value}  ${snmp_port_value}
218    Verify SNMP Manager Configured On BMC  ${snmp_ip_value}  ${snmp_port_value}
219