1*** Settings *** 2 3Documentation Test OpenBMC GUI "Network" sub-menu of "Settings". 4 5Resource ../../lib/gui_resource.robot 6Resource ../../../lib/bmc_network_utils.robot 7 8Suite Setup Suite Setup Execution 9Suite Teardown Close Browser 10 11 12*** Variables *** 13 14${xpath_network_heading} //h1[text()="Network"] 15${xpath_interface_settings} //h2[text()="Interface settings"] 16${xpath_network_settings} //h2[text()="Network settings"] 17${xpath_static_ipv4} //h2[text()="IPv4"] 18${xpath_static_dns} //h2[text()="Static DNS"] 19${xpath_domain_name_toggle} //*[@data-test-id="networkSettings-switch-useDomainName"] 20${xpath_dns_servers_toggle} //*[@data-test-id="networkSettings-switch-useDns"] 21${xpath_ntp_servers_toggle} //*[@data-test-id="networkSettings-switch-useNtp"] 22${xpath_add_static_ipv4_address_button} //button[contains(text(),"Add static IPv4 address")] 23${xpath_add_dns_ip_address_button} //button[contains(text(),"Add IP address")] 24${xpath_hostname} //*[@title="Edit hostname"] 25${xpath_hostname_input} //*[@id="hostname"] 26${xpath_input_ip_address} //*[@id="ipAddress"] 27${xpath_input_gateway} //*[@id="gateway"] 28${xpath_input_subnetmask} //*[@id="subnetMask"] 29${xpath_input_static_dns} //*[@id="staticDns"] 30${xpath_cancel_button} //button[contains(text(),'Cancel')] 31${xpath_delete_dns_server} //*[@title="Delete DNS address"] 32 33${dns_server} 10.10.10.10 34${test_ipv4_addr} 10.7.7.7 35${test_ipv4_addr_1} 10.7.7.8 36${out_of_range_ip} 10.7.7.256 37${string_ip} aa.bb.cc.dd 38${negative_ip} 10.-7.-7.-7 39${less_octet_ip} 10.3.36 40${hex_ip} 0xa.0xb.0xc.0xd 41${spl_char_ip} @@@.%%.44.11 42${test_subnet_mask} 255.255.0.0 43${alpha_netmask} ff.ff.ff.ff 44${out_of_range_netmask} 255.256.255.0 45${more_byte_netmask} 255.255.255.0.0 46${lowest_netmask} 128.0.0.0 47${test_hostname} openbmc 48 49*** Test Cases *** 50 51Verify Navigation To Network Page 52 [Documentation] Login to GUI and navigate to the settings sub-menu network page. 53 [Tags] Verify_Navigation_To_Network_Page 54 55 Page Should Contain Element ${xpath_network_heading} 56 57 58Verify Existence Of All Sections In Network Page 59 [Documentation] Login to GUI and navigate to the settings sub-menu network page 60 ... and confirm the page contains sections that should be accessible. 61 [Tags] Verify_Existence_Of_All_Sections_In_Network_Page 62 63 Wait Until Page Contains Element ${xpath_network_settings} timeout=1min 64 Page Should Contain Element ${xpath_interface_settings} 65 Page Should Contain Element ${xpath_static_ipv4} 66 Page Should Contain Element ${xpath_static_dns} 67 68 69Verify Existence Of All Buttons In Network Page 70 [Documentation] Login to GUI and navigate to the settings sub-menu network page 71 ... and confirm the page contains basic features button that should be accessible. 72 [Tags] Verify_Existence_Of_All_Buttons_In_Network_Page 73 74 Page Should Contain Button ${xpath_add_static_ipv4_address_button} 75 Page Should Contain Button ${xpath_add_dns_ip_address_button} 76 Page Should Contain Button ${xpath_domain_name_toggle} 77 Page Should Contain Button ${xpath_dns_servers_toggle} 78 Page Should Contain Button ${xpath_ntp_servers_toggle} 79 80 81Verify Existence Of All Fields In Hostname 82 [Documentation] Login to GUI and navigate to the settings sub-menu network page 83 ... and confirm hostname contains all the fields. 84 [Tags] Verify_Existence_Of_All_Fields_In_Hostname 85 [Teardown] Run Keywords Click Button ${xpath_cancel_button} AND 86 ... Wait Until Keyword Succeeds 10 sec 5 sec 87 ... Refresh GUI And Verify Element Value ${xpath_network_heading} Network 88 89 Click Element ${xpath_hostname} 90 Wait Until Page Contains Edit hostname timeout=1min 91 Page Should Contain Textfield ${xpath_hostname_input} 92 Page Should Contain Button ${xpath_cancel_button} 93 Page Should Contain Button ${xpath_add_button} 94 95 96Verify Existence Of All Fields In Static IP Address 97 [Documentation] Login to GUI and navigate to the settings sub-menu network page 98 ... and confirm section static IPv4 contains all the fields. 99 [Tags] Verify_Existence_Of_All_Fields_In_Static_IP_Address 100 [Teardown] Run Keywords Click Button ${xpath_cancel_button} AND 101 ... Wait Until Keyword Succeeds 10 sec 5 sec 102 ... Refresh GUI And Verify Element Value ${xpath_network_heading} Network 103 104 Wait Until Keyword Succeeds 30 sec 10 sec Click Element ${xpath_add_static_ipv4_address_button} 105 Wait Until Page Contains Add static IPv4 address timeout=15s 106 Page Should Contain Textfield ${xpath_input_ip_address} 107 Page Should Contain Textfield ${xpath_input_gateway} 108 Page Should Contain Textfield ${xpath_input_subnetmask} 109 Page Should Contain Button ${xpath_cancel_button} 110 Page Should Contain Button ${xpath_add_button} 111 112 113Verify Existence Of All Fields In Static DNS 114 [Documentation] Login to GUI and navigate to the settings sub-menu network page 115 ... and confirm section static DNS contains all the fields. 116 [Tags] Verify_Existence_Of_All_Fields_In_Static_DNS 117 [Teardown] Run Keywords Click Button ${xpath_cancel_button} AND 118 ... Wait Until Keyword Succeeds 10 sec 5 sec 119 ... Refresh GUI And Verify Element Value ${xpath_network_heading} Network 120 121 Wait Until Keyword Succeeds 30 sec 10 sec Click Element ${xpath_add_dns_ip_address_button} 122 Wait Until Page Contains Add IP address timeout=11s 123 Page Should Contain Textfield ${xpath_input_static_dns} 124 Page Should Contain Button ${xpath_cancel_button} 125 Page Should Contain Button ${xpath_add_button} 126 127 128Configure And Verify DNS Server Via GUI 129 [Documentation] Login to GUI Network page, add DNS server IP 130 ... and verify that the page reflects server IP. 131 [Tags] Configure_And_Verify_DNS_Server_Via_GUI 132 [Teardown] Delete DNS Servers And Verify 133 134 Add DNS Servers And Verify ${dns_server} 135 136 137Configure Static IPv4 Netmask Via GUI And Verify 138 [Documentation] Login to GUI Network page, configure static IPv4 netmask and verify. 139 [Tags] Configure_Static_IPv4_Netmask_Via_GUI_And_Verify 140 [Template] Add Static IP Address And Verify 141 142 # ip_addresses subnet_masks gateway expected_status 143 ${test_ipv4_addr} ${lowest_netmask} ${default_gateway} Success 144 ${test_ipv4_addr} ${more_byte_netmask} ${default_gateway} Invalid format 145 ${test_ipv4_addr} ${alpha_netmask} ${default_gateway} Invalid format 146 ${test_ipv4_addr} ${out_of_range_netmask} ${default_gateway} Invalid format 147 ${test_ipv4_addr} ${test_subnet_mask} ${default_gateway} Success 148 149 150Configure Hostname Via GUI And Verify 151 [Documentation] Login to GUI Network page, configure hostname and verify. 152 [Tags] Configure_Hostname_Via_GUI_And_Verify 153 [Teardown] Configure And Verify Network Settings Via GUI 154 ... ${xpath_hostname} ${xpath_hostname_input} ${hostname} 155 156 ${hostname}= Get BMC Hostname 157 Configure And Verify Network Settings Via GUI ${xpath_hostname} 158 ... ${xpath_hostname_input} ${test_hostname} 159 160 ${bmc_hostname}= Get BMC Hostname 161 Should Be Equal As Strings ${bmc_hostname} ${test_hostname} 162 163 164Configure And Verify Static IP Address 165 [Documentation] Login to GUI Network page, configure static ip address and verify. 166 [Tags] Configure_And_Verify_Static_IP_Address 167 168 Add Static IP Address And Verify ${test_ipv4_addr} ${test_subnet_mask} ${default_gateway} Success 169 170 171Configure And Verify Multiple Static IP Address 172 [Documentation] Login to GUI Network page, configure multiple static IP address and verify. 173 [Tags] Configure_And_Verify_Multiple_Static_IP_Address 174 175 Add Static IP Address And Verify ${test_ipv4_addr} ${test_subnet_mask} ${default_gateway} Success 176 Add Static IP Address And Verify ${test_ipv4_addr_1} ${test_subnet_mask} ${default_gateway} Success 177 178 179Configure And Verify Invalid Static IP Address 180 [Documentation] Login to GUI Network page, configure invalid static IP address and verify. 181 [Tags] Configure_And_Verify_Invalid_Static_IP_Address 182 [Template] Add Static IP Address And Verify 183 184 # ip subnet_mask gateway status 185 ${out_of_range_ip} ${test_subnet_mask} ${default_gateway} Invalid format 186 ${less_octet_ip} ${test_subnet_mask} ${default_gateway} Invalid format 187 ${string_ip} ${test_subnet_mask} ${default_gateway} Invalid format 188 ${negative_ip} ${test_subnet_mask} ${default_gateway} Invalid format 189 ${hex_ip} ${test_subnet_mask} ${default_gateway} Invalid format 190 ${spl_char_ip} ${test_subnet_mask} ${default_gateway} Invalid format 191 192*** Keywords *** 193 194Suite Setup Execution 195 [Documentation] Do suite setup tasks. 196 197 Launch Browser And Login GUI 198 Wait Until Keyword Succeeds 1 min 15 sec 199 ... Click Element ${xpath_settings_menu} 200 Click Element ${xpath_network_sub_menu} 201 Wait Until Keyword Succeeds 30 sec 10 sec Location Should Contain network 202 Wait Until Element Is Not Visible ${xpath_page_loading_progress_bar} timeout=30 203 ${default_gateway}= Get BMC Default Gateway 204 Set Suite Variable ${default_gateway} 205 206 207Add DNS Servers And Verify 208 [Documentation] Login to GUI Network page,add DNS server on BMC 209 ... and verify it via BMC CLI. 210 [Arguments] ${dns_server} ${expected_status}=Valid format 211 212 # Description of the argument(s): 213 # dns_server A list of static name server IPs to be 214 # configured on the BMC. 215 # expected_status Expected status while adding DNS server address 216 # ... (e.g. Invalid format / Field required). 217 218 Wait Until Page Contains Element ${xpath_add_dns_ip_address_button} timeout=15sec 219 220 Click Button ${xpath_add_dns_ip_address_button} 221 Input Text ${xpath_input_static_dns} ${dns_server} 222 Click Button ${xpath_add_button} 223 Run keyword if '${expected_status}' != 'Valid format' 224 ... Run keywords Page Should Contain ${expected_status} AND Return From Keyword 225 226 Wait Until Page Contains Element ${xpath_add_dns_ip_address_button} timeout=10sec 227 Wait Until Page Contains ${dns_server} timeout=40sec 228 229 # Check if newly added DNS server is configured on BMC. 230 ${cli_name_servers}= CLI Get Nameservers 231 ${cmd_status}= Run Keyword And Return Status 232 ... List Should Contain Sub List ${cli_name_servers} ${dns_server} 233 234 235Delete DNS Servers And Verify 236 [Documentation] Login to GUI Network page,delete static name servers 237 ... and verify that page does not reflect static name servers. 238 239 Page Should Contain Element ${xpath_delete_dns_server} 240 Wait Until Element Is Enabled ${xpath_delete_dns_server} 241 Click Button ${xpath_delete_dns_server} 242 Wait Until Page Contains Element ${xpath_add_dns_ip_address_button} timeout=15 243 # Check if all name servers deleted on BMC. 244 ${nameservers}= CLI Get Nameservers 245 Should Be Empty ${nameservers} 246 247 248Add Static IP Address And Verify 249 [Documentation] Add static IP address, subnet mask and 250 ... gateway via GUI and verify. 251 [Arguments] ${ip_address} ${subnet_mask} ${gateway_address} ${expected_status}=error 252 253 # Description of argument(s): 254 # ip_address IP address to be added (e.g. 10.7.7.7). 255 # subnet_mask Subnet mask for the IP to be added (e.g. 255.255.0.0). 256 # gateway_address Gateway address for the IP to be added (e.g. 10.7.7.1). 257 # expected_status Expected status while adding static ipv4 address 258 # .... (e.g. Invalid format / Field required). 259 260 Wait Until Keyword Succeeds 30 sec 10 sec Click Element ${xpath_add_static_ipv4_address_button} 261 262 Input Text ${xpath_input_ip_address} ${ip_address} 263 Input Text ${xpath_input_subnetmask} ${subnet_mask} 264 Input Text ${xpath_input_gateway} ${gateway_address} 265 266 Click Element ${xpath_add_button} 267 Run Keyword If '${expected_status}' == 'Success' 268 ... Run Keywords Wait Until Page Contains ${ip_address} timeout=40sec 269 ... AND Validate Network Config On BMC 270 271 ... ELSE IF '${expected_status}' == 'Invalid format' 272 ... Run Keywords Page Should Contain Invalid format AND 273 ... Click Button ${xpath_cancel_button} 274 275 276Configure And Verify Network Settings Via GUI 277 [Documentation] Configure and verify network settings via GUI. 278 [Arguments] ${xpath_nw_settings} ${xpath_nw_settings_input_field} ${input_value} 279 280 # Description of argument(s): 281 # xpath_nw_settings xpath of the network settings. 282 # xpath_nw_settings_input_field xpath of the network setting's input field. 283 # input_value Input value for configuration. E.g. hostname, IP etc. 284 285 Wait Until Keyword Succeeds 30 sec 10 sec Click Element ${xpath_nw_settings} 286 Input Text ${xpath_nw_settings_input_field} ${input_value} 287 Click Button ${xpath_add_button} 288 Wait Until Page Contains ${input_value} timeout=30sec 289