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_gateway} 10.7.7.1 48${test_hostname} openbmc 49 50*** Test Cases *** 51 52Verify Navigation To Network Page 53 [Documentation] Login to GUI and navigate to the settings sub-menu network page. 54 [Tags] Verify_Navigation_To_Network_Page 55 56 Page Should Contain Element ${xpath_network_heading} 57 58 59Verify Existence Of All Sections In Network Page 60 [Documentation] Login to GUI and navigate to the settings sub-menu network page 61 ... and confirm the page contains sections that should be accessible. 62 [Tags] Verify_Existence_Of_All_Sections_In_Network_Page 63 64 Wait Until Page Contains Element ${xpath_network_settings} timeout=1min 65 Page Should Contain Element ${xpath_interface_settings} 66 Page Should Contain Element ${xpath_static_ipv4} 67 Page Should Contain Element ${xpath_static_dns} 68 69 70Verify Existence Of All Buttons In Network Page 71 [Documentation] Login to GUI and navigate to the settings sub-menu network page 72 ... and confirm the page contains basic features button that should be accessible. 73 [Tags] Verify_Existence_Of_All_Buttons_In_Network_Page 74 75 Page Should Contain Button ${xpath_add_static_ipv4_address_button} 76 Page Should Contain Button ${xpath_add_dns_ip_address_button} 77 Page Should Contain Button ${xpath_domain_name_toggle} 78 Page Should Contain Button ${xpath_dns_servers_toggle} 79 Page Should Contain Button ${xpath_ntp_servers_toggle} 80 81 82Verify Existence Of All Fields In Hostname 83 [Documentation] Login to GUI and navigate to the settings sub-menu network page 84 ... and confirm hostname contains all the fields. 85 [Tags] Verify_Existence_Of_All_Fields_In_Hostname 86 [Teardown] Run Keywords Click Button ${xpath_cancel_button} AND 87 ... Wait Until Keyword Succeeds 10 sec 5 sec 88 ... Refresh GUI And Verify Element Value ${xpath_network_heading} Network 89 90 Click Element ${xpath_hostname} 91 Wait Until Page Contains Edit hostname timeout=1min 92 Page Should Contain Textfield ${xpath_hostname_input} 93 Page Should Contain Button ${xpath_cancel_button} 94 Page Should Contain Button ${xpath_add_button} 95 96 97Verify Existence Of All Fields In Static IP Address 98 [Documentation] Login to GUI and navigate to the settings sub-menu network page 99 ... and confirm section static IPv4 contains all the fields. 100 [Tags] Verify_Existence_Of_All_Fields_In_Static_IP_Address 101 [Teardown] Run Keywords Click Button ${xpath_cancel_button} AND 102 ... Wait Until Keyword Succeeds 10 sec 5 sec 103 ... Refresh GUI And Verify Element Value ${xpath_network_heading} Network 104 105 Wait Until Keyword Succeeds 30 sec 10 sec Click Element ${xpath_add_static_ipv4_address_button} 106 Wait Until Page Contains Add static IPv4 address timeout=15s 107 Page Should Contain Textfield ${xpath_input_ip_address} 108 Page Should Contain Textfield ${xpath_input_gateway} 109 Page Should Contain Textfield ${xpath_input_subnetmask} 110 Page Should Contain Button ${xpath_cancel_button} 111 Page Should Contain Button ${xpath_add_button} 112 113 114Verify Existence Of All Fields In Static DNS 115 [Documentation] Login to GUI and navigate to the settings sub-menu network page 116 ... and confirm section static DNS contains all the fields. 117 [Tags] Verify_Existence_Of_All_Fields_In_Static_DNS 118 [Teardown] Run Keywords Click Button ${xpath_cancel_button} AND 119 ... Wait Until Keyword Succeeds 10 sec 5 sec 120 ... Refresh GUI And Verify Element Value ${xpath_network_heading} Network 121 122 Wait Until Keyword Succeeds 30 sec 10 sec Click Element ${xpath_add_dns_ip_address_button} 123 Wait Until Page Contains Add IP address timeout=11s 124 Page Should Contain Textfield ${xpath_input_static_dns} 125 Page Should Contain Button ${xpath_cancel_button} 126 Page Should Contain Button ${xpath_add_button} 127 128 129Configure And Verify DNS Server Via GUI 130 [Documentation] Login to GUI Network page, add DNS server IP 131 ... and verify that the page reflects server IP. 132 [Tags] Configure_And_Verify_DNS_Server_Via_GUI 133 [Teardown] Delete DNS Servers And Verify 134 135 Add DNS Servers And Verify ${dns_server} 136 137 138Configure Static IPv4 Netmask Via GUI And Verify 139 [Documentation] Login to GUI Network page, configure static IPv4 netmask and verify. 140 [Tags] Configure_Static_IPv4_Netmask_Via_GUI_And_Verify 141 [Template] Add Static IP Address And Verify 142 143 # ip_addresses subnet_masks gateway expected_status 144 ${test_ipv4_addr} ${lowest_netmask} ${test_gateway} Success 145 ${test_ipv4_addr} ${more_byte_netmask} ${test_gateway} Invalid format 146 ${test_ipv4_addr} ${alpha_netmask} ${test_gateway} Invalid format 147 ${test_ipv4_addr} ${out_of_range_netmask} ${test_gateway} Invalid format 148 ${test_ipv4_addr} ${test_subnet_mask} ${test_gateway} Success 149 150 151Configure Hostname Via GUI And Verify 152 [Documentation] Login to GUI Network page, configure hostname and verify. 153 [Tags] Configure_Hostname_Via_GUI_And_Verify 154 [Teardown] Configure And Verify Network Settings Via GUI 155 ... ${xpath_hostname} ${xpath_hostname_input} ${hostname} 156 157 ${hostname}= Get BMC Hostname 158 Configure And Verify Network Settings Via GUI ${xpath_hostname} 159 ... ${xpath_hostname_input} ${test_hostname} 160 161 ${bmc_hostname}= Get BMC Hostname 162 Should Be Equal As Strings ${bmc_hostname} ${test_hostname} 163 164 165Configure And Verify Static IP Address 166 [Documentation] Login to GUI Network page, configure static ip address and verify. 167 [Tags] Configure_And_Verify_Static_IP_Address 168 169 Add Static IP Address And Verify ${test_ipv4_addr} ${test_subnet_mask} ${default_gateway} Success 170 171 172Configure And Verify Multiple Static IP Address 173 [Documentation] Login to GUI Network page, configure multiple static IP address and verify. 174 [Tags] Configure_And_Verify_Multiple_Static_IP_Address 175 176 Add Static IP Address And Verify ${test_ipv4_addr} ${test_subnet_mask} ${default_gateway} Success 177 Add Static IP Address And Verify ${test_ipv4_addr_1} ${test_subnet_mask} ${default_gateway} Success 178 179 180Configure And Verify Invalid Static IP Address 181 [Documentation] Login to GUI Network page, configure invalid static IP address and verify. 182 [Tags] Configure_And_Verify_Invalid_Static_IP_Address 183 [Template] Add Static IP Address And Verify 184 185 # ip subnet_mask gateway status 186 ${out_of_range_ip} ${test_subnet_mask} ${default_gateway} Invalid format 187 ${less_octet_ip} ${test_subnet_mask} ${default_gateway} Invalid format 188 ${string_ip} ${test_subnet_mask} ${default_gateway} Invalid format 189 ${negative_ip} ${test_subnet_mask} ${default_gateway} Invalid format 190 ${hex_ip} ${test_subnet_mask} ${default_gateway} Invalid format 191 ${spl_char_ip} ${test_subnet_mask} ${default_gateway} Invalid format 192 193*** Keywords *** 194 195Suite Setup Execution 196 [Documentation] Do suite setup tasks. 197 198 Launch Browser And Login GUI 199 Wait Until Keyword Succeeds 1 min 15 sec 200 .. Click Element ${xpath_settings_menu} 201 Click Element ${xpath_network_sub_menu} 202 Wait Until Keyword Succeeds 30 sec 10 sec Location Should Contain network 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