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' 17 18import wifiMg from '@ohos.wifiManager' 19import osaccount from '@ohos.account.osAccount' 20import bundle from '@ohos.bundle' 21import abilityAccessCtrl from '@ohos.abilityAccessCtrl' 22 23async function applyPermission() { 24 let osAccountManager = osaccount.getAccountManager(); 25 console.info("=== getAccountManager finish"); 26 let localId = await osAccountManager.getOsAccountLocalIdFromProcess(); 27 console.info("LocalId is :" + localId); 28 let appInfo = await bundle.getApplicationInfo('ohos.acts.communication.wifi.wifidevice', 0, localId); 29 let atManager = abilityAccessCtrl.createAtManager(); 30 if (atManager != null) { 31 let tokenID = appInfo.accessTokenId; 32 console.info('[permission] case accessTokenID is ' + tokenID); 33 let permissionName1 = 'ohos.permission.LOCATION'; 34 await atManager.grantUserGrantedPermission(tokenID, permissionName1, 1).then((result) => { 35 console.info('[permission] case grantUserGrantedPermission success :' + JSON.stringify(result)); 36 }).catch((err) => { 37 console.info('[permission] case grantUserGrantedPermission failed :' + JSON.stringify(err)); 38 }); 39 } else { 40 console.info('[permission] case apply permission failed, createAtManager failed'); 41 } 42} 43 44function sleep(delay) { 45 return new Promise(resovle => setTimeout(resovle, delay)) 46} 47 48function checkWifiPowerOn(){ 49 console.info("[wifi_test]wifi status:" + wifiMg.isWifiActive()); 50} 51 52function resolveIP(ip) { 53 return (ip>>24 & 0xFF) + "." + (ip>>16 & 0xFF) + "." + (ip>>8 & 0xFF) + "." + (ip & 0xFF); 54} 55 56export default function actsWifiManagerCandidateNetWorkTest() { 57 describe('actsWifiManagerCandidateNetWorkTest', function () { 58 beforeAll(async function (done) { 59 console.info('beforeAll case'); 60 await applyPermission(); 61 done(); 62 }) 63 64 beforeEach(function () { 65 checkWifiPowerOn(); 66 }) 67 afterEach(function () { 68 }) 69 70 /** 71 * @tc.number SUB_Communication_WiFi_XTS_CandidateNetWork_0001 72 * @tc.name testaddCandidateConfig 73 * @tc.desc Test add OPEN and WEP CandidateConfig Promise API functionality. 74 * @tc.type Function 75 * @tc.level Level 2 76 */ 77 it('SUB_Communication_WiFi_XTS_CandidateNetWork_0001', 0, async function (done) { 78 let wifiDeviceConfig = { 79 "ssid": "TEST_OPEN", 80 "bssid": "22:9b:e6:48:1f:5c", 81 "preSharedKey": "", 82 "isHiddenSsid": false, 83 "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_OPEN, 84 }; 85 await wifiMg.addCandidateConfig(wifiDeviceConfig) 86 .then(netWorkId => { 87 console.info("[wifi_test]add OPEN CandidateConfig promise : " + JSON.stringify(netWorkId)); 88 expect(true).assertEqual(netWorkId = -1); 89 }).catch((error) => { 90 console.error('[wifi_test]add OPEN CandidateConfig promise failed -> ' + JSON.stringify(error)); 91 expect(true).assertEqual( (JSON.stringify(error)) !=null); 92 }); 93 let getconfig = wifiMg.getCandidateConfigs(); 94 console.info("[wifi_test]wifi get OPEN CandidateConfigs result : " + JSON.stringify(getconfig)); 95 let wifiDeviceConfig1 = { 96 "ssid": "TEST_WEP", 97 "bssid": "22:9b:e6:48:1f:5c", 98 "preSharedKey": "ABCDEF1234", 99 "isHiddenSsid": false, 100 "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_WEP, 101 }; 102 await wifiMg.addCandidateConfig(wifiDeviceConfig1) 103 .then(netWorkId => { 104 console.info("[wifi_test]add WEP CandidateConfig promise : " + JSON.stringify(netWorkId)); 105 expect(true).assertEqual(netWorkId = -1); 106 }).catch((error) => { 107 console.error('[wifi_test]add WEP CandidateConfig promise failed -> ' + JSON.stringify(error)); 108 expect(true).assertEqual( (JSON.stringify(error)) !=null); 109 }); 110 console.info("[wifi_test]wifi get WEP CandidateConfigs result : " + JSON.stringify(getconfig)); 111 112 let WIFI_SEC_TYPE_INVALID = wifiMg.WifiSecurityType.WIFI_SEC_TYPE_INVALID; 113 console.info("[wifi_test]WIFI_SEC_TYPE_INVALID : " + JSON.stringify(WIFI_SEC_TYPE_INVALID)); 114 expect(true).assertEqual( WIFI_SEC_TYPE_INVALID == 0); 115 let WIFI_SEC_TYPE_EAP = wifiMg.WifiSecurityType.WIFI_SEC_TYPE_EAP; 116 console.info("[wifi_test]WIFI_SEC_TYPE_EAP : " + JSON.stringify(WIFI_SEC_TYPE_EAP)); 117 expect(true).assertEqual( WIFI_SEC_TYPE_EAP == 5); 118 let WIFI_SEC_TYPE_EAP_SUITE_B = wifiMg.WifiSecurityType.WIFI_SEC_TYPE_EAP_SUITE_B; 119 console.info("[wifi_test]WIFI_SEC_TYPE_EAP_SUITE_B : " + JSON.stringify(WIFI_SEC_TYPE_EAP_SUITE_B)); 120 expect(true).assertEqual( WIFI_SEC_TYPE_EAP_SUITE_B == 6); 121 let WIFI_SEC_TYPE_OWE = wifiMg.WifiSecurityType.WIFI_SEC_TYPE_OWE; 122 console.info("[wifi_test]WIFI_SEC_TYPE_OWE : " + JSON.stringify(WIFI_SEC_TYPE_OWE)); 123 expect(true).assertEqual( WIFI_SEC_TYPE_OWE == 7); 124 let WIFI_SEC_TYPE_WAPI_CERT = wifiMg.WifiSecurityType.WIFI_SEC_TYPE_WAPI_CERT; 125 console.info("[wifi_test]WIFI_SEC_TYPE_WAPI_CERT : " + JSON.stringify(WIFI_SEC_TYPE_WAPI_CERT)); 126 expect(true).assertEqual( WIFI_SEC_TYPE_WAPI_CERT == 8); 127 let WIFI_SEC_TYPE_WAPI_PSK = wifiMg.WifiSecurityType.WIFI_SEC_TYPE_WAPI_PSK; 128 console.info("[wifi_test]WIFI_SEC_TYPE_WAPI_CERT : " + JSON.stringify(WIFI_SEC_TYPE_WAPI_PSK)); 129 expect(true).assertEqual( WIFI_SEC_TYPE_WAPI_PSK == 9); 130 done(); 131 }) 132 133 /** 134 * @tc.number SUB_Communication_WiFi_XTS_CandidateNetWork_0002 135 * @tc.name testaddCandidateConfig 136 * @tc.desc Test add PSK CandidateConfig and removeCandidateConfig Promise API functionality. 137 * @tc.type Function 138 * @tc.level Level 2 139 */ 140 it('SUB_Communication_WiFi_XTS_CandidateNetWork_0002', 0, async function (done) { 141 let EapMethod = { 142 "EAP_NONE": 0, 143 "EAP_PEAP": 1, 144 "EAP_TLS": 2, 145 "EAP_TTLS": 3, 146 "EAP_PWD": 4, 147 "EAP_SIM": 5, 148 "EAP_AKA": 6, 149 "EAP_AKA_PRIME": 7, 150 "EAP_UNAUTH_TLS": 8, 151 }; 152 let Phase2Method = { 153 "PHASE2_NONE": 0, 154 "PHASE2_PAP": 1, 155 "PHASE2_MSCHAP": 2, 156 "PHASE2_MSCHAPV2": 3, 157 "PHASE2_GTC": 4, 158 "PHASE2_SIM": 5, 159 "PHASE2_AKA": 6, 160 "PHASE2_AKA_PRIME": 7, 161 }; 162 let WifiEapConfig = { 163 "eapMethod": wifiMg.EapMethod.EAP_NONE, 164 "phase2Method": wifiMg.Phase2Method.PHASE2_NONE, 165 "identity": "aaa", 166 "anonymousIdentity": "bbb", 167 "password": "12345678", 168 "caCertAlias": "ddd", 169 "caPath": "eee", 170 "clientCertAlias": "fff", 171 "certEntry": new Uint8Array(), 172 "certPassword": "12345678", 173 "altSubjectMatch": "ggg", 174 "domainSuffixMatch": "hhh", 175 "realm": "iii", 176 "plmn": "jjj", 177 "eapSubId": "kkk", 178 }; 179 let wifiDeviceConfig = { 180 "ssid": "TEST_PSK", 181 "bssid": "22:9b:e6:48:1f:5c", 182 "bssidType" : 1, 183 "preSharedKey": "12345678", 184 "isHiddenSsid": false, 185 "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_PSK, 186 "netId": -1, 187 "ipType": 1, 188 "creatorUid": 7, 189 "disableReason": 0, 190 "randomMacType": 0, 191 "randomMacAddr": "11:22:33:44:55:66", 192 "staticIp": {"ipAddress": 1284752956,"gateway": 1284752936}, 193 "eapConfig": wifiMg.WifiEapConfig, 194 }; 195 await wifiMg.addCandidateConfig(wifiDeviceConfig) 196 .then(netWorkId => { 197 console.info("[wifi_test]add PSK CandidateConfig promise : " + JSON.stringify(netWorkId)); 198 expect(true).assertEqual(netWorkId != -1); 199 }).catch((error) => { 200 console.error('[wifi_test]add PSK CandidateConfig promise failed -> ' + JSON.stringify(error)); 201 expect().assertFail(); 202 }); 203 let getCandidateResult = wifiMg.getCandidateConfigs(); 204 console.info("[wifi_test]wifi get PSK CandidateConfigs result : " + JSON.stringify(getCandidateResult)); 205 var networkId = getCandidateResult[0].netId; 206 console.info("[wifi_test]wifi get networkId result : " + JSON.stringify(networkId)); 207 await wifiMg.removeCandidateConfig(networkId) 208 .then(ret => { 209 let getCandidate = wifiMg.getCandidateConfigs(); 210 console.info("[wifi_test]wifi get CandidateConfigs result : " + JSON.stringify(getCandidate)); 211 console.info("[wifi_test]wifi getconfig.length result : " + JSON.stringify(getCandidate.length)); 212 expect(true).assertEqual(getCandidate.length == 0); 213 }).catch((error) => { 214 console.error('[wifi_test]remove CandidateConfig promise failed : ' + JSON.stringify(error)); 215 expect().assertFail(); 216 }); 217 done(); 218 }) 219 220 /** 221 * @tc.number SUB_Communication_WiFi_XTS_CandidateNetWork_0003 222 * @tc.name testaddCandidateConfig 223 * @tc.desc Test add SAE CandidateConfig Promise API functionality. 224 * @tc.type Function 225 * @tc.level Level 2 226 */ 227 it('SUB_Communication_WiFi_XTS_CandidateNetWork_0003', 0, async function (done) { 228 let wifiDeviceConfig = { 229 "ssid": "TEST_SAE", 230 "bssid": "22:9b:e6:48:1f:5c", 231 "preSharedKey": "12345678", 232 "isHiddenSsid": false, 233 "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_SAE, 234 }; 235 await wifiMg.addCandidateConfig(wifiDeviceConfig) 236 .then(netWorkId => { 237 console.info("[wifi_test]add SAE CandidateConfig promise : " + JSON.stringify(netWorkId)); 238 expect(true).assertEqual(netWorkId != -1); 239 }).catch((error) => { 240 console.error('[wifi_js]add SAE CandidateConfig promise failed -> ' + JSON.stringify(error)); 241 }); 242 let getCandidateResult = wifiMg.getCandidateConfigs(); 243 console.info("[wifi_test]wifi get SAE CandidateConfigs result : " + JSON.stringify(getCandidateResult)); 244 var networkId = getCandidateResult[0].netId; 245 console.info("[wifi_test]wifi get networkId result : " + JSON.stringify(networkId)); 246 await wifiMg.removeCandidateConfig(networkId) 247 .then(ret => { 248 let getconfig1 = wifiMg.getCandidateConfigs(); 249 console.info("[wifi_test]wifi get CandidateConfigs result : " + JSON.stringify(getconfig1)); 250 console.info("[wifi_test]wifi getconfig.length result : " + JSON.stringify(getconfig1.length)); 251 expect(true).assertEqual(getconfig1.length == 0); 252 }).catch((error) => { 253 console.error('[wifi_test]remove CandidateConfig promise failed -> ' + JSON.stringify(error)); 254 expect().assertFail(); 255 }); 256 done(); 257 }) 258 259 /** 260 * @tc.number SUB_Communication_WiFi_XTS_CandidateNetWork_0004 261 * @tc.name testaddCandidateConfig 262 * @tc.desc Test add MAX CandidateConfig and removeall CandidateConfig. 263 * @tc.type Function 264 * @tc.level Level 2 265 */ 266 it('SUB_Communication_WiFi_XTS_CandidateNetWork_0004', 0, async function (done) { 267 let SSID = "TYPE_PSK" 268 for (let i = 0; i < 16; i++) { 269 SSID = "TYPE_PSK" + i 270 console.info("[wifi_test] get canshu result : "); 271 let wifiDeviceConfig = { 272 "ssid": SSID, 273 "bssid": "22:9b:e6:48:1f:5c", 274 "preSharedKey": "12345678", 275 "isHiddenSsid": false, 276 "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_PSK, 277 }; 278 console.info("[wifi_test]get wifiDeviceConfig ssid result : " + JSON.stringify(wifiDeviceConfig.ssid)); 279 await wifiMg.addCandidateConfig(wifiDeviceConfig) 280 .then(netWorkId => { 281 console.info("[wifi_test]add 16th CandidateConfig promise : " + JSON.stringify(netWorkId)); 282 expect(true).assertEqual(netWorkId != -1); 283 }).catch((error) => { 284 console.error('[wifi_test]add 16th CandidateConfig promise failed :' + JSON.stringify(error)); 285 expect().assertFail(); 286 }); 287 } 288 let wifiDeviceConfig1 = { 289 "ssid": "TYPE_17", 290 "bssid": "22:9b:e6:48:1f:5c", 291 "preSharedKey": "12345678", 292 "isHiddenSsid": false, 293 "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_PSK, 294 }; 295 await wifiMg.addCandidateConfig(wifiDeviceConfig1) 296 .then(netWorkId => { 297 console.info("[wifi_test]add 17th CandidateConfig promise : " + JSON.stringify(netWorkId)); 298 expect(true).assertEqual(netWorkId != -1); 299 }).catch((error) => { 300 console.error(`[wifi_test]add 17th failed, code is ${error.code}, message is ${error.message}`); 301 expect(true).assertEqual( (JSON.stringify(error.message)) !=null); 302 }); 303 let getCandidateResult = wifiMg.getCandidateConfigs(); 304 console.info("[wifi_test]wifi get 16 CandidateConfigs result : " + JSON.stringify(getCandidateResult)); 305 for (let i = 0; i < 16; i++) { 306 var networkId = getCandidateResult[i].netId; 307 console.info("[wifi_test]wifi get networkId result : " + JSON.stringify(networkId)); 308 await wifiMg.removeCandidateConfig(networkId) 309 .then(ret => { 310 let getconfig1 = wifiMg.getCandidateConfigs(); 311 console.info("[wifi_test] wifi get CandidateConfigs result : " + JSON.stringify(getconfig1)); 312 console.info("[wifi_test] wifi getconfiglength result : " + JSON.stringify(getconfig1.length)); 313 }).catch((error) => { 314 console.error('[wifi_test]remove CandidateConfig promise failed -> ' + JSON.stringify(error)); 315 }); 316 } 317 done(); 318 }) 319 320 /** 321 * @tc.number SUB_Communication_WiFi_XTS_CandidateNetWork_0005 322 * @tc.name testaddCandidateConfig 323 * @tc.desc Test add CandidateConfig and removeCandidateConfig callback API functionality. 324 * @tc.type Function 325 * @tc.level Level 2 326 */ 327 it('SUB_Communication_WiFi_XTS_CandidateNetWork_0005', 0, async function (done) { 328 let wifiDeviceConfig = { 329 "ssid": "TEST_connect", 330 "bssid": "22:9b:e6:48:1f:5c", 331 "preSharedKey": "12345678", 332 "isHiddenSsid": false, 333 "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_PSK, 334 } 335 function addCandidate() { 336 return new Promise((resolve, reject) => { 337 wifiMg.addCandidateConfig(wifiDeviceConfig, 338 (err, netWorkId) => { 339 if (err) { 340 console.info("[wifi_test]add CandidateConfig callback failed : " + JSON.stringify(err)); 341 } 342 console.info("[wifi_test]addCandidateConfig callback result: " + JSON.stringify(netWorkId)); 343 expect(true).assertEqual(netWorkId != -1); 344 resolve(); 345 }); 346 }); 347 } 348 await addCandidate(); 349 let getCandidateResult = wifiMg.getCandidateConfigs(); 350 console.info("[wifi_test] wifi getCandidateConfigs result : " + JSON.stringify(getCandidateResult)); 351 var networkId = getCandidateResult[0].netId; 352 function removeCandidate() { 353 return new Promise((resolve, reject) => { 354 wifiMg.removeCandidateConfig(networkId, 355 (err, ret) => { 356 if (err) { 357 console.info("[wifi_test]removeCandidate callback failed : " + JSON.stringify(err)); 358 } 359 let configs1 = wifiMg.getCandidateConfigs(); 360 console.info("[wifi_test] wifi get CandidateConfigs result : " + JSON.stringify(configs1)); 361 console.info("[wifi_test] getconfig.length result : " + JSON.stringify(configs1.length)); 362 expect(true).assertEqual(configs1.length != null); 363 resolve(); 364 }); 365 }); 366 } 367 await removeCandidate(); 368 done(); 369 }) 370 371 /** 372 * @tc.number SUB_Communication_WiFi_XTS_CandidateNetWork_0006 373 * @tc.name testaddCandidateConfig 374 * @tc.desc Test connect To CandidateConfig API functionality. 375 * @tc.type Function 376 * @tc.level Level 2 377 */ 378 it('SUB_Communication_WiFi_XTS_CandidateNetWork_0006', 0, async function (done) { 379 let wifiDeviceConfig = { 380 "ssid": "HONOR 3000", 381 "bssid": "22:9b:e6:48:1f:5c", 382 "preSharedKey": "12345678", 383 "isHiddenSsid": false, 384 "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_PSK, 385 }; 386 await wifiMg.addCandidateConfig(wifiDeviceConfig) 387 .then(netWorkId => { 388 console.info("[wifi_test]add CandidateConfig promise : " + JSON.stringify(netWorkId)); 389 expect(true).assertEqual(netWorkId != -1); 390 }).catch((error) => { 391 console.error('[wifi_test]add CandidateConfig promise failed -> ' + JSON.stringify(error)); 392 expect().assertFail(); 393 }); 394 let getCandidateResult = wifiMg.getCandidateConfigs(); 395 console.info("[wifi_test]wifi get CandidateConfigs result : " + JSON.stringify(getCandidateResult)); 396 let connectToCandidateResult = wifiMg.connectToCandidateConfig(getCandidateResult[0].netId); 397 await sleep(3000); 398 await wifiMg.getLinkedInfo() 399 .then((result) => { 400 console.info("[wifi_test]get wifi link [promise] -> " + JSON.stringify(result)); 401 done(); 402 }).catch((error) => { 403 console.info("[wifi_test]promise then error." + JSON.stringify(error)); 404 expect().assertFail(); 405 }); 406 let getCandidateResult1 = wifiMg.getCandidateConfigs(); 407 console.info("[wifi_test]wifi get CandidateConfigs result1 : " + JSON.stringify(getCandidateResult1)); 408 var networkId = getCandidateResult1[0].netId; 409 console.info("[wifi_test]wifi get networkId result : " + JSON.stringify(networkId)); 410 await wifiMg.removeCandidateConfig(networkId) 411 .then(ret => { 412 let getconfig1 = wifiMg.getCandidateConfigs(); 413 console.info("[wifi_test]wifi get CandidateConfigs result : " + JSON.stringify(getconfig1)); 414 console.info("[wifi_test]wifi getconfig.length result : " + JSON.stringify(getconfig1.length)); 415 expect(true).assertEqual(getconfig1.length != null); 416 }).catch((error) => { 417 console.error('[wifi_test]remove CandidateConfig promise failed -> ' + JSON.stringify(error)); 418 expect().assertFail(); 419 }); 420 done(); 421 }) 422 }) 423} 424