1/* 2 * Copyright (C) 2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from '@ohos/hypium' 17import { UiComponent, UiDriver, BY, Component, Driver, UiWindow, ON, MatchPattern, DisplayRotation, ResizeDirection, UiDirection, MouseButton, WindowMode, PointerMatrix, UIElementInfo, UIEventObserver } from '@ohos.UiTest' 18 19import wifiMg from '@ohos.wifiManager' 20 21function sleep(delay) { 22 return new Promise(resovle => setTimeout(resovle, delay)) 23} 24 25function checkWifiPowerOn(){ 26 console.info("[wifi_test]wifi status:" + wifiMg.isWifiActive()); 27} 28 29function resolveIP(ip) { 30 return (ip>>24 & 0xFF) + "." + (ip>>16 & 0xFF) + "." + (ip>>8 & 0xFF) + "." + (ip & 0xFF); 31} 32async function checkSavedNet() 33{ 34 let getCandidate = wifiMg.getCandidateConfigs(); 35 if(getCandidate.length>0) 36 { 37 for(let i=0;getCandidate.length;i++) 38 { 39 await wifiMg.removeCandidateConfig(getCandidate[i].netId) 40 .then(ret => { 41 console.info("[wifi_test]wifi remove CandidateConfigs result : " + JSON.stringify(ret)); 42 }).catch((error) => { 43 console.error('[wifi_test]remove CandidateConfig promise failed -> ' + JSON.stringify(error)); 44 expect().assertFail(); 45 }); 46 } 47 } 48} 49 50async function clickTest() { 51 let driver = Driver.create(); 52 await driver.delayMs(1500); 53 try { 54 let button = await driver.findComponent(ON.text("取消")); 55 await button.click(); 56 await driver.delayMs(1500); 57 } catch (err) { 58 console.info('err info: ' + err); 59 } 60} 61 62async function clickRequestPermission() { 63 try { 64 console.info('[wifi_js] clickRequestPermission start'); 65 let driver = Driver.create(); 66 await driver.delayMs(3000); 67 let button = await driver.findComponent(ON.text("本次使用", MatchPattern.CONTAINS)); 68 await button.click(); 69 await driver.delayMs(3000); 70 console.info('[wifi_js] clickRequestPermission end'); 71 } catch (err) { 72 console.info('[wifi_js] clickRequestPermission failed'); 73 } 74} 75 76export default function actsWifiManagerCandidateNetWorkTest() { 77 describe('actsWifiManagerCandidateNetWorkTest', function () { 78 beforeAll(async function (done) { 79 console.info('beforeAll case'); 80 await clickRequestPermission(); 81 done(); 82 }) 83 84 beforeEach(function () { 85 checkWifiPowerOn(); 86 }) 87 afterEach(async function (done) { 88 await clickTest(); 89 done(); 90 }) 91 92 /** 93 * @tc.number SUB_Communication_WiFi_XTS_CandidateNetWork_0001 94 * @tc.name testAddCandidateConfig 95 * @tc.desc Test add OPEN and WEP CandidateConfig Promise API functionality. 96 * @tc.type Function 97 * @tc.size MediumTest 98 * @tc.level Level 2 99 */ 100 it('SUB_Communication_WiFi_XTS_CandidateNetWork_0001', 0, async function (done) { 101 let wifiDeviceConfig = { 102 "ssid": "TEST_OPEN", 103 "bssid": "22:9b:e6:48:1f:5c", 104 "preSharedKey": "", 105 "isHiddenSsid": false, 106 "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_OPEN, 107 }; 108 await wifiMg.addCandidateConfig(wifiDeviceConfig) 109 .then(netWorkId => { 110 console.info("[wifi_test]add OPEN CandidateConfig promise : " + JSON.stringify(netWorkId)); 111 expect(true).assertEqual(netWorkId != -1); 112 }).catch((error) => { 113 console.error('[wifi_test]add OPEN CandidateConfig promise failed -> ' + JSON.stringify(error)); 114 expect().assertFail(); 115 }); 116 let getCandidateResult = wifiMg.getCandidateConfigs(); 117 console.info("[wifi_test]wifi get OPEN CandidateConfigs result : " + JSON.stringify(getCandidateResult)); 118 var networkId = getCandidateResult[0].netId; 119 console.info("[wifi_test]wifi get networkId result : " + JSON.stringify(networkId)); 120 await wifiMg.removeCandidateConfig(networkId) 121 .then(ret => { 122 let getCandidate = wifiMg.getCandidateConfigs(); 123 console.info("[wifi_test]wifi get CandidateConfigs result : " + JSON.stringify(getCandidate)); 124 console.info("[wifi_test]wifi getconfig.length result : " + JSON.stringify(getCandidate.length)); 125 expect(true).assertEqual(getCandidate.length == 0); 126 }).catch((error) => { 127 console.error('[wifi_test]remove CandidateConfig promise failed ?' + JSON.stringify(error)); 128 expect().assertFail(); 129 }); 130 let wifiDeviceConfig1 = { 131 "ssid": "TEST_WEP", 132 "bssid": "22:9b:e6:48:1f:5c", 133 "preSharedKey": "ABCDEF1234", 134 "isHiddenSsid": false, 135 "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_WEP, 136 }; 137 await wifiMg.addCandidateConfig(wifiDeviceConfig1) 138 .then(netWorkId => { 139 console.info("[wifi_test]add WEP CandidateConfig promise : " + JSON.stringify(netWorkId)); 140 expect(true).assertEqual(netWorkId = -1); 141 }).catch((error) => { 142 console.error('[wifi_test]add WEP CandidateConfig promise failed -> ' + JSON.stringify(error)); 143 expect(true).assertEqual( (JSON.stringify(error)) !=null); 144 }); 145 let getCandidateResults = wifiMg.getCandidateConfigs(); 146 console.info("[wifi_test]wifi get WEP CandidateConfigs result : " + JSON.stringify(getCandidateResults)); 147 148 let WIFI_SEC_TYPE_INVALID = wifiMg.WifiSecurityType.WIFI_SEC_TYPE_INVALID; 149 console.info("[wifi_test]WIFI_SEC_TYPE_INVALID : " + JSON.stringify(WIFI_SEC_TYPE_INVALID)); 150 expect(true).assertEqual( WIFI_SEC_TYPE_INVALID == 0); 151 let WIFI_SEC_TYPE_EAP = wifiMg.WifiSecurityType.WIFI_SEC_TYPE_EAP; 152 console.info("[wifi_test]WIFI_SEC_TYPE_EAP : " + JSON.stringify(WIFI_SEC_TYPE_EAP)); 153 expect(true).assertEqual( WIFI_SEC_TYPE_EAP == 5); 154 let WIFI_SEC_TYPE_EAP_SUITE_B = wifiMg.WifiSecurityType.WIFI_SEC_TYPE_EAP_SUITE_B; 155 console.info("[wifi_test]WIFI_SEC_TYPE_EAP_SUITE_B : " + JSON.stringify(WIFI_SEC_TYPE_EAP_SUITE_B)); 156 expect(true).assertEqual( WIFI_SEC_TYPE_EAP_SUITE_B == 6); 157 let WIFI_SEC_TYPE_OWE = wifiMg.WifiSecurityType.WIFI_SEC_TYPE_OWE; 158 console.info("[wifi_test]WIFI_SEC_TYPE_OWE : " + JSON.stringify(WIFI_SEC_TYPE_OWE)); 159 expect(true).assertEqual( WIFI_SEC_TYPE_OWE == 7); 160 let WIFI_SEC_TYPE_WAPI_CERT = wifiMg.WifiSecurityType.WIFI_SEC_TYPE_WAPI_CERT; 161 console.info("[wifi_test]WIFI_SEC_TYPE_WAPI_CERT : " + JSON.stringify(WIFI_SEC_TYPE_WAPI_CERT)); 162 expect(true).assertEqual( WIFI_SEC_TYPE_WAPI_CERT == 8); 163 let WIFI_SEC_TYPE_WAPI_PSK = wifiMg.WifiSecurityType.WIFI_SEC_TYPE_WAPI_PSK; 164 console.info("[wifi_test]WIFI_SEC_TYPE_WAPI_CERT : " + JSON.stringify(WIFI_SEC_TYPE_WAPI_PSK)); 165 expect(true).assertEqual( WIFI_SEC_TYPE_WAPI_PSK == 9); 166 done(); 167 }) 168 169 /** 170 * @tc.number SUB_Communication_WiFi_XTS_CandidateNetWork_0002 171 * @tc.name testAddCandidateConfig 172 * @tc.desc Test add PSK CandidateConfig and removeCandidateConfig Promise API functionality. 173 * @tc.type Function 174 * @tc.size MediumTest 175 * @tc.level Level 2 176 */ 177 it('SUB_Communication_WiFi_XTS_CandidateNetWork_0002', 0, async function (done) { 178 let EapMethod = { 179 "EAP_NONE": 0, 180 "EAP_PEAP": 1, 181 "EAP_TLS": 2, 182 "EAP_TTLS": 3, 183 "EAP_PWD": 4, 184 "EAP_SIM": 5, 185 "EAP_AKA": 6, 186 "EAP_AKA_PRIME": 7, 187 "EAP_UNAUTH_TLS": 8, 188 }; 189 let Phase2Method = { 190 "PHASE2_NONE": 0, 191 "PHASE2_PAP": 1, 192 "PHASE2_MSCHAP": 2, 193 "PHASE2_MSCHAPV2": 3, 194 "PHASE2_GTC": 4, 195 "PHASE2_SIM": 5, 196 "PHASE2_AKA": 6, 197 "PHASE2_AKA_PRIME": 7, 198 }; 199 let WifiEapConfig = { 200 "eapMethod": wifiMg.EapMethod.EAP_NONE, 201 "phase2Method": wifiMg.Phase2Method.PHASE2_NONE, 202 "identity": "aaa", 203 "anonymousIdentity": "bbb", 204 "password": "12345678", 205 "caCertAlias": "ddd", 206 "caPath": "eee", 207 "clientCertAlias": "fff", 208 "certEntry": new Uint8Array(), 209 "certPassword": "12345678", 210 "altSubjectMatch": "ggg", 211 "domainSuffixMatch": "hhh", 212 "realm": "iii", 213 "plmn": "jjj", 214 "eapSubId": "kkk", 215 }; 216 let wifiDeviceConfig = { 217 "ssid": "TEST_PSK", 218 "bssid": "22:9b:e6:48:1f:5c", 219 "bssidType" : 1, 220 "preSharedKey": "12345678", 221 "isHiddenSsid": false, 222 "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_PSK, 223 "netId": -1, 224 "ipType": 1, 225 "creatorUid": 7, 226 "disableReason": 0, 227 "randomMacType": 0, 228 "randomMacAddr": "11:22:33:44:55:66", 229 "staticIp": {"ipAddress": 1284752956,"gateway": 1284752936}, 230 "eapConfig": wifiMg.WifiEapConfig, 231 }; 232 await wifiMg.addCandidateConfig(wifiDeviceConfig) 233 .then(netWorkId => { 234 console.info("[wifi_test]add PSK CandidateConfig promise : " + JSON.stringify(netWorkId)); 235 expect(true).assertEqual(netWorkId != -1); 236 }).catch((error) => { 237 console.error('[wifi_test]add PSK CandidateConfig promise failed -> ' + JSON.stringify(error)); 238 expect().assertFail(); 239 }); 240 let getCandidateResult = wifiMg.getCandidateConfigs(); 241 console.info("[wifi_test]wifi get PSK CandidateConfigs result : " + JSON.stringify(getCandidateResult)); 242 var networkId = getCandidateResult[0].netId; 243 console.info("[wifi_test]wifi get networkId result : " + JSON.stringify(networkId)); 244 await wifiMg.removeCandidateConfig(networkId) 245 .then(ret => { 246 let getCandidate = wifiMg.getCandidateConfigs(); 247 console.info("[wifi_test]wifi get CandidateConfigs result : " + JSON.stringify(getCandidate)); 248 console.info("[wifi_test]wifi getconfig.length result : " + JSON.stringify(getCandidate.length)); 249 expect(true).assertEqual(getCandidate.length == 0); 250 }).catch((error) => { 251 console.error('[wifi_test]remove CandidateConfig promise failed ?' + JSON.stringify(error)); 252 expect().assertFail(); 253 }); 254 done(); 255 }) 256 257 /** 258 * @tc.number SUB_Communication_WiFi_XTS_CandidateNetWork_0003 259 * @tc.name testAddCandidateConfig 260 * @tc.desc Test add SAE CandidateConfig Promise API functionality. 261 * @tc.type Function 262 * @tc.size MediumTest 263 * @tc.level Level 2 264 */ 265 it('SUB_Communication_WiFi_XTS_CandidateNetWork_0003', 0, async function (done) { 266 let wifiDeviceConfig = { 267 "ssid": "TEST_SAE", 268 "bssid": "22:9b:e6:48:1f:5c", 269 "preSharedKey": "12345678", 270 "isHiddenSsid": false, 271 "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_SAE, 272 }; 273 await wifiMg.addCandidateConfig(wifiDeviceConfig) 274 .then(netWorkId => { 275 console.info("[wifi_test]add SAE CandidateConfig promise : " + JSON.stringify(netWorkId)); 276 expect(true).assertEqual(netWorkId != -1); 277 }).catch((error) => { 278 console.error('[wifi_js]add SAE CandidateConfig promise failed -> ' + JSON.stringify(error)); 279 }); 280 let getCandidateResult = wifiMg.getCandidateConfigs(); 281 console.info("[wifi_test]wifi get SAE CandidateConfigs result : " + JSON.stringify(getCandidateResult)); 282 expect(true).assertEqual(getCandidateResult.length>0); 283 var networkId = getCandidateResult[0].netId; 284 console.info("[wifi_test]wifi get networkId result : " + JSON.stringify(networkId)); 285 await wifiMg.removeCandidateConfig(networkId) 286 .then(ret => { 287 let getconfig1 = wifiMg.getCandidateConfigs(); 288 console.info("[wifi_test]wifi get CandidateConfigs result : " + JSON.stringify(getconfig1)); 289 console.info("[wifi_test]wifi getconfig.length result : " + JSON.stringify(getconfig1.length)); 290 expect(true).assertEqual(getconfig1.length == 0); 291 }).catch((error) => { 292 console.error('[wifi_test]remove CandidateConfig promise failed -> ' + JSON.stringify(error)); 293 expect().assertFail(); 294 }); 295 done(); 296 }) 297 298 /** 299 * @tc.number SUB_Communication_WiFi_XTS_CandidateNetWork_0004 300 * @tc.name testAddCandidateConfig 301 * @tc.desc Test add MAX CandidateConfig and removeall CandidateConfig. 302 * @tc.type Function 303 * @tc.size MediumTest 304 * @tc.level Level 2 305 */ 306 it('SUB_Communication_WiFi_XTS_CandidateNetWork_0004', 0, async function (done) { 307 let SSID = "TYPE_PSK" 308 for (let i = 0; i < 16; i++) { 309 SSID = "TYPE_PSK" + i 310 console.info("[wifi_test] get canshu result : "); 311 let wifiDeviceConfig = { 312 "ssid": SSID, 313 "bssid": "22:9b:e6:48:1f:5c", 314 "preSharedKey": "12345678", 315 "isHiddenSsid": false, 316 "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_PSK, 317 }; 318 console.info("[wifi_test]get wifiDeviceConfig ssid result : " + JSON.stringify(wifiDeviceConfig.ssid)); 319 await wifiMg.addCandidateConfig(wifiDeviceConfig) 320 .then(netWorkId => { 321 console.info("[wifi_test]add 16th CandidateConfig promise : " + JSON.stringify(netWorkId)); 322 expect(true).assertEqual(netWorkId != -1); 323 }).catch((error) => { 324 console.error("[wifi_test]add 16th CandidateConfig promise failed "+ JSON.stringify(error)); 325 expect().assertFail(); 326 }); 327 } 328 let wifiDeviceConfig1 = { 329 "ssid": "TYPE_17", 330 "bssid": "22:9b:e6:48:1f:5c", 331 "preSharedKey": "12345678", 332 "isHiddenSsid": false, 333 "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_PSK, 334 }; 335 await wifiMg.addCandidateConfig(wifiDeviceConfig1) 336 .then(netWorkId => { 337 console.info("[wifi_test]add 17th CandidateConfig promise : " + JSON.stringify(netWorkId)); 338 expect(true).assertEqual(netWorkId != -1); 339 }).catch((error) => { 340 console.error(`[wifi_test]add 17th failed, code is ${error.code}, message is ${error.message}`); 341 expect(true).assertEqual( (JSON.stringify(error.message)) !=null); 342 }); 343 let getCandidateResult = wifiMg.getCandidateConfigs(); 344 console.info("[wifi_test]wifi get 16 CandidateConfigs result : " + JSON.stringify(getCandidateResult.length)); 345 for (let i = 0; i < 16; i++) { 346 var networkId = getCandidateResult[i].netId; 347 console.info("[wifi_test]wifi get networkId result : " + JSON.stringify(networkId)); 348 await wifiMg.removeCandidateConfig(networkId) 349 .then(ret => { 350 let getconfig1 = wifiMg.getCandidateConfigs(); 351 console.info("[wifi_test] wifi get CandidateConfigs result : " + JSON.stringify(getconfig1)); 352 console.info("[wifi_test] wifi getconfiglength result : " + JSON.stringify(getconfig1.length)); 353 }).catch((error) => { 354 console.error('[wifi_test]remove CandidateConfig promise failed -> ' + JSON.stringify(error)); 355 }); 356 } 357 getCandidateResult = wifiMg.getCandidateConfigs(); 358 expect(true).assertEqual(getCandidateResult.length==0); 359 done(); 360 }) 361 362 /** 363 * @tc.number SUB_Communication_WiFi_XTS_CandidateNetWork_0005 364 * @tc.name testAddCandidateConfig 365 * @tc.desc Test add CandidateConfig and removeCandidateConfig callback API functionality. 366 * @tc.type Function 367 * @tc.size MediumTest 368 * @tc.level Level 2 369 */ 370 it('SUB_Communication_WiFi_XTS_CandidateNetWork_0005', 0, async function (done) { 371 let wapiPskType={ 372 "WAPI_PSK_ASCII":0, 373 "WAPI_PSK_HEX":1, 374 } 375 let WifiWapiConfig ={ 376 wapiPskType:wapiPskType.WAPI_PSK_ASCII, 377 wapiAsCert:"abc", 378 wapiUserCert:"1", 379 } 380 let wifiDeviceConfig = { 381 "ssid": "TEST_connect", 382 "bssid": "22:9b:e6:48:1f:5c", 383 "preSharedKey": "12345678", 384 "isHiddenSsid": false, 385 "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_PSK, 386 "wapiConfig":wifiMg.WifiWapiConfig, 387 } 388 function addCandidate() { 389 return new Promise((resolve, reject) => { 390 wifiMg.addCandidateConfig(wifiDeviceConfig, 391 (err, netWorkId) => { 392 if (err) { 393 console.info("[wifi_test]add CandidateConfig callback failed : " + JSON.stringify(err)); 394 } 395 console.info("[wifi_test]addCandidateConfig callback result: " + JSON.stringify(netWorkId)); 396 expect(true).assertEqual(netWorkId != -1); 397 resolve(); 398 }); 399 }); 400 } 401 await addCandidate(); 402 let getCandidateResult = wifiMg.getCandidateConfigs(); 403 console.info("[wifi_test] wifi getCandidateConfigs result : " + JSON.stringify(getCandidateResult)); 404 var networkId = getCandidateResult[0].netId; 405 function removeCandidate() { 406 return new Promise((resolve, reject) => { 407 wifiMg.removeCandidateConfig(networkId, 408 (err, ret) => { 409 if (err) { 410 console.info("[wifi_test]removeCandidate callback failed : " + JSON.stringify(err)); 411 } 412 let configs1 = wifiMg.getCandidateConfigs(); 413 console.info("[wifi_test] wifi get CandidateConfigs result : " + JSON.stringify(configs1)); 414 console.info("[wifi_test] getconfig.length result : " + JSON.stringify(configs1.length)); 415 expect(true).assertEqual(configs1.length != null); 416 resolve(); 417 }); 418 }); 419 } 420 await removeCandidate(); 421 done(); 422 }) 423 424 /** 425 * @tc.number SUB_Communication_WiFi_XTS_CandidateNetWork_0006 426 * @tc.name testAddCandidateConfig 427 * @tc.desc Test connect To CandidateConfig API functionality. 428 * @tc.type Function 429 * @tc.size MediumTest 430 * @tc.level Level 2 431 */ 432 it('SUB_Communication_WiFi_XTS_CandidateNetWork_0006', 0, async function (done) { 433 await checkSavedNet(); 434 let wifiDeviceConfig = { 435 "ssid": "HONOR 3000", 436 "bssid": "22:9b:e6:48:1f:5c", 437 "preSharedKey": "12345678", 438 "isHiddenSsid": false, 439 "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_PSK, 440 }; 441 await wifiMg.addCandidateConfig(wifiDeviceConfig) 442 .then(netWorkId => { 443 console.info("[wifi_test]add CandidateConfig promise : " + JSON.stringify(netWorkId)); 444 expect(true).assertEqual(netWorkId != -1); 445 }).catch((error) => { 446 console.error('[wifi_test]add CandidateConfig promise failed -> ' + JSON.stringify(error)); 447 expect().assertFail(); 448 }); 449 let getCandidateResult = wifiMg.getCandidateConfigs(); 450 console.info("[wifi_test]wifi get CandidateConfigs result : " + JSON.stringify(getCandidateResult)); 451 let connectToCandidateResult = wifiMg.connectToCandidateConfig(getCandidateResult[0].netId); 452 await sleep(3000); 453 await wifiMg.getLinkedInfo() 454 .then((result) => { 455 console.info("[wifi_test]get wifi link [promise] -> " + JSON.stringify(result)); 456 done(); 457 }).catch((error) => { 458 console.info("[wifi_test]promise then error." + JSON.stringify(error)); 459 expect().assertFail(); 460 }); 461 let getCandidateResult1 = wifiMg.getCandidateConfigs(); 462 console.info("[wifi_test]wifi get CandidateConfigs result1 : " + JSON.stringify(getCandidateResult1)); 463 var networkId = getCandidateResult1[0].netId; 464 console.info("[wifi_test]wifi get networkId result : " + JSON.stringify(networkId)); 465 await wifiMg.removeCandidateConfig(networkId) 466 .then(ret => { 467 let getconfig1 = wifiMg.getCandidateConfigs(); 468 console.info("[wifi_test]wifi get CandidateConfigs result : " + JSON.stringify(getconfig1)); 469 console.info("[wifi_test]wifi getconfig.length result : " + JSON.stringify(getconfig1.length)); 470 expect(true).assertEqual(getconfig1.length != null); 471 }).catch((error) => { 472 console.error('[wifi_test]remove CandidateConfig promise failed -> ' + JSON.stringify(error)); 473 expect().assertFail(); 474 }); 475 done(); 476 }) 477 478 }) 479} 480