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 23function sleep(delay) { 24 return new Promise(resovle => setTimeout(resovle, delay)) 25} 26 27function checkWifiPowerOn(){ 28 console.info("[wifi_test]wifi status:" + wifiMg.isWifiActive()); 29} 30 31function resolveIP(ip) { 32 return (ip>>24 & 0xFF) + "." + (ip>>16 & 0xFF) + "." + (ip>>8 & 0xFF) + "." + (ip & 0xFF); 33} 34 35async function applyPermission() { 36 let osAccountManager = osaccount.getAccountManager(); 37 console.info("=== getAccountManager finish"); 38 let localId = await osAccountManager.getOsAccountLocalIdFromProcess(); 39 console.info("LocalId is :" + localId); 40 let appInfo = await bundle.getApplicationInfo('ohos.acts.communication.wifi.wifidevice', 0, localId); 41 let atManager = abilityAccessCtrl.createAtManager(); 42 if (atManager != null) { 43 let tokenID = appInfo.accessTokenId; 44 console.info('[permission] case accessTokenID is ' + tokenID); 45 let permissionName1 = 'ohos.permission.LOCATION'; 46 await atManager.grantUserGrantedPermission(tokenID, permissionName1, 1).then((result) => { 47 console.info('[permission] case grantUserGrantedPermission success :' + JSON.stringify(result)); 48 }).catch((err) => { 49 console.info('[permission] case grantUserGrantedPermission failed :' + JSON.stringify(err)); 50 }); 51 } else { 52 console.info('[permission] case apply permission failed, createAtManager failed'); 53 } 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 103 await wifiMg.addCandidateConfig(wifiDeviceConfig1) 104 .then(netWorkId => { 105 console.info("[wifi_test]add WEP CandidateConfig promise : " + JSON.stringify(netWorkId)); 106 expect(true).assertEqual(netWorkId = -1); 107 }).catch((error) => { 108 console.error('[wifi_test]add WEP CandidateConfig promise failed -> ' + JSON.stringify(error)); 109 expect(true).assertEqual( (JSON.stringify(error)) !=null); 110 }); 111 console.info("[wifi_test]wifi get WEP CandidateConfigs result : " + JSON.stringify(getconfig)); 112 113 let WIFI_SEC_TYPE_INVALID = wifiMg.WifiSecurityType.WIFI_SEC_TYPE_INVALID; 114 console.info("[wifi_test]WIFI_SEC_TYPE_INVALID : " + JSON.stringify(WIFI_SEC_TYPE_INVALID)); 115 expect(true).assertEqual( WIFI_SEC_TYPE_INVALID == 0); 116 let WIFI_SEC_TYPE_EAP = wifiMg.WifiSecurityType.WIFI_SEC_TYPE_EAP; 117 console.info("[wifi_test]WIFI_SEC_TYPE_EAP : " + JSON.stringify(WIFI_SEC_TYPE_EAP)); 118 expect(true).assertEqual( WIFI_SEC_TYPE_EAP == 5); 119 let WIFI_SEC_TYPE_EAP_SUITE_B = wifiMg.WifiSecurityType.WIFI_SEC_TYPE_EAP_SUITE_B; 120 console.info("[wifi_test]WIFI_SEC_TYPE_EAP_SUITE_B : " + JSON.stringify(WIFI_SEC_TYPE_EAP_SUITE_B)); 121 expect(true).assertEqual( WIFI_SEC_TYPE_EAP_SUITE_B == 6); 122 let WIFI_SEC_TYPE_OWE = wifiMg.WifiSecurityType.WIFI_SEC_TYPE_OWE; 123 console.info("[wifi_test]WIFI_SEC_TYPE_OWE : " + JSON.stringify(WIFI_SEC_TYPE_OWE)); 124 expect(true).assertEqual( WIFI_SEC_TYPE_OWE == 7); 125 let WIFI_SEC_TYPE_WAPI_CERT = wifiMg.WifiSecurityType.WIFI_SEC_TYPE_WAPI_CERT; 126 console.info("[wifi_test]WIFI_SEC_TYPE_WAPI_CERT : " + JSON.stringify(WIFI_SEC_TYPE_WAPI_CERT)); 127 expect(true).assertEqual( WIFI_SEC_TYPE_WAPI_CERT == 8); 128 let WIFI_SEC_TYPE_WAPI_PSK = wifiMg.WifiSecurityType.WIFI_SEC_TYPE_WAPI_PSK; 129 console.info("[wifi_test]WIFI_SEC_TYPE_WAPI_CERT : " + JSON.stringify(WIFI_SEC_TYPE_WAPI_PSK)); 130 expect(true).assertEqual( WIFI_SEC_TYPE_WAPI_PSK == 9); 131 done(); 132 }) 133 134 /** 135 * @tc.number SUB_Communication_WiFi_XTS_CandidateNetWork_0002 136 * @tc.name testaddCandidateConfig 137 * @tc.desc Test add PSK CandidateConfig and removeCandidateConfig Promise API functionality. 138 * @tc.type Function 139 * @tc.level Level 2 140 */ 141 it('SUB_Communication_WiFi_XTS_CandidateNetWork_0002', 0, async function (done) { 142 let wifiDeviceConfig = { 143 "ssid": "TEST_PSK", 144 "bssid": "22:9b:e6:48:1f:5c", 145 "preSharedKey": "12345678", 146 "isHiddenSsid": false, 147 "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_PSK, 148 "netId": -1, 149 "ipType": 1, 150 "creatorUid": 7, 151 "disableReason": 0, 152 "randomMacType": 0, 153 "randomMacAddr": "11:22:33:44:55:66", 154 "staticIp": {"ipAddress": 1284752956,"gateway": 1284752936}, 155 }; 156 await wifiMg.addCandidateConfig(wifiDeviceConfig) 157 .then(netWorkId => { 158 console.info("[wifi_test]add PSK CandidateConfig promise : " + JSON.stringify(netWorkId)); 159 expect(true).assertEqual(netWorkId != -1); 160 }).catch((error) => { 161 console.error('[wifi_test]add PSK CandidateConfig promise failed -> ' + JSON.stringify(error)); 162 expect().assertFail(); 163 }); 164 let getCandidateResult = wifiMg.getCandidateConfigs(); 165 console.info("[wifi_test]wifi get PSK CandidateConfigs result : " + JSON.stringify(getCandidateResult)); 166 var networkId = getCandidateResult[0].netId; 167 console.info("[wifi_test]wifi get networkId result : " + JSON.stringify(networkId)); 168 await wifiMg.removeCandidateConfig(networkId) 169 .then(ret => { 170 let getCandidate = wifiMg.getCandidateConfigs(); 171 console.info("[wifi_test]wifi get CandidateConfigs result : " + JSON.stringify(getCandidate)); 172 console.info("[wifi_test]wifi getconfig.length result : " + JSON.stringify(getCandidate.length)); 173 expect(true).assertEqual(getCandidate.length == 0); 174 }).catch((error) => { 175 console.error('[wifi_test]remove CandidateConfig promise failed : ' + JSON.stringify(error)); 176 expect().assertFail(); 177 }); 178 done(); 179 }) 180 181 /** 182 * @tc.number SUB_Communication_WiFi_XTS_CandidateNetWork_0003 183 * @tc.name testaddCandidateConfig 184 * @tc.desc Test add SAE CandidateConfig Promise API functionality. 185 * @tc.type Function 186 * @tc.level Level 2 187 */ 188 it('SUB_Communication_WiFi_XTS_CandidateNetWork_0003', 0, async function (done) { 189 let wifiDeviceConfig = { 190 "ssid": "TEST_SAE", 191 "bssid": "22:9b:e6:48:1f:5c", 192 "preSharedKey": "12345678", 193 "isHiddenSsid": false, 194 "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_SAE, 195 }; 196 await wifiMg.addCandidateConfig(wifiDeviceConfig) 197 .then(netWorkId => { 198 console.info("[wifi_test]add SAE CandidateConfig promise : " + JSON.stringify(netWorkId)); 199 expect(true).assertEqual(netWorkId != -1); 200 }).catch((error) => { 201 console.error('[wifi_js]add SAE CandidateConfig promise failed -> ' + JSON.stringify(error)); 202 }); 203 let getCandidateResult = wifiMg.getCandidateConfigs(); 204 console.info("[wifi_test]wifi get SAE 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 getconfig1 = wifiMg.getCandidateConfigs(); 210 console.info("[wifi_test]wifi get CandidateConfigs result : " + JSON.stringify(getconfig1)); 211 console.info("[wifi_test]wifi getconfig.length result : " + JSON.stringify(getconfig1.length)); 212 expect(true).assertEqual(getconfig1.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_0004 222 * @tc.name testaddCandidateConfig 223 * @tc.desc Test add MAX CandidateConfig and removeall CandidateConfig. 224 * @tc.type Function 225 * @tc.level Level 2 226 */ 227 it('SUB_Communication_WiFi_XTS_CandidateNetWork_0004', 0, async function (done) { 228 let SSID = "TYPE_PSK" 229 for (let i = 0; i < 16; i++) { 230 SSID = "TYPE_PSK" + i 231 console.info("[wifi_test] get canshu result : "); 232 let wifiDeviceConfig = { 233 "ssid": SSID, 234 "bssid": "22:9b:e6:48:1f:5c", 235 "preSharedKey": "12345678", 236 "isHiddenSsid": false, 237 "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_PSK, 238 }; 239 console.info("[wifi_test]get wifiDeviceConfig ssid result : " + JSON.stringify(wifiDeviceConfig.ssid)); 240 await wifiMg.addCandidateConfig(wifiDeviceConfig) 241 .then(netWorkId => { 242 console.info("[wifi_test]add 16th CandidateConfig promise : " + JSON.stringify(netWorkId)); 243 expect(true).assertEqual(netWorkId != -1); 244 }).catch((error) => { 245 console.error('[wifi_test]add 16th CandidateConfig promise failed :' + JSON.stringify(error)); 246 expect().assertFail(); 247 }); 248 } 249 let wifiDeviceConfig1 = { 250 "ssid": "TYPE_17", 251 "bssid": "22:9b:e6:48:1f:5c", 252 "preSharedKey": "12345678", 253 "isHiddenSsid": false, 254 "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_PSK, 255 }; 256 await wifiMg.addCandidateConfig(wifiDeviceConfig1) 257 .then(netWorkId => { 258 console.info("[wifi_test]add 17th CandidateConfig promise : " + JSON.stringify(netWorkId)); 259 expect(true).assertEqual(netWorkId != -1); 260 }).catch((error) => { 261 console.error(`[wifi_test]add 17th failed, code is ${error.code}, message is ${error.message}`); 262 expect(true).assertEqual( (JSON.stringify(error.message)) !=null); 263 }); 264 let getCandidateResult = wifiMg.getCandidateConfigs(); 265 console.info("[wifi_test]wifi get 16 CandidateConfigs result : " + JSON.stringify(getCandidateResult)); 266 for (let i = 0; i < 16; i++) { 267 var networkId = getCandidateResult[i].netId; 268 console.info("[wifi_test]wifi get networkId result : " + JSON.stringify(networkId)); 269 await wifiMg.removeCandidateConfig(networkId) 270 .then(ret => { 271 let getconfig1 = wifiMg.getCandidateConfigs(); 272 console.info("[wifi_test] wifi get CandidateConfigs result : " + JSON.stringify(getconfig1)); 273 console.info("[wifi_test] wifi getconfiglength result : " + JSON.stringify(getconfig1.length)); 274 }).catch((error) => { 275 console.error('[wifi_test]remove CandidateConfig promise failed -> ' + JSON.stringify(error)); 276 }); 277 } 278 done(); 279 }) 280 281 /** 282 * @tc.number SUB_Communication_WiFi_XTS_CandidateNetWork_0005 283 * @tc.name testaddCandidateConfig 284 * @tc.desc Test add CandidateConfig and removeCandidateConfig callback API functionality. 285 * @tc.type Function 286 * @tc.level Level 2 287 */ 288 it('SUB_Communication_WiFi_XTS_CandidateNetWork_0005', 0, async function (done) { 289 let wifiDeviceConfig = { 290 "ssid": "TEST_connect", 291 "bssid": "22:9b:e6:48:1f:5c", 292 "preSharedKey": "12345678", 293 "isHiddenSsid": false, 294 "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_PSK, 295 } 296 function addCandidate() { 297 return new Promise((resolve, reject) => { 298 wifiMg.addCandidateConfig(wifiDeviceConfig, 299 (err, netWorkId) => { 300 if (err) { 301 console.info("[wifi_test]add CandidateConfig callback failed : " + JSON.stringify(err)); 302 } 303 console.info("[wifi_test]addCandidateConfig callback result: " + JSON.stringify(netWorkId)); 304 expect(true).assertEqual(netWorkId != -1); 305 resolve(); 306 }); 307 }); 308 } 309 await addCandidate(); 310 let getCandidateResult = wifiMg.getCandidateConfigs(); 311 console.info("[wifi_test] wifi getCandidateConfigs result : " + JSON.stringify(getCandidateResult)); 312 var networkId = getCandidateResult[0].netId; 313 function removeCandidate() { 314 return new Promise((resolve, reject) => { 315 wifiMg.removeCandidateConfig(networkId, 316 (err, ret) => { 317 if (err) { 318 console.info("[wifi_test]removeCandidate callback failed : " + JSON.stringify(err)); 319 } 320 let configs1 = wifiMg.getCandidateConfigs(); 321 console.info("[wifi_test] wifi get CandidateConfigs result : " + JSON.stringify(configs1)); 322 console.info("[wifi_test] getconfig.length result : " + JSON.stringify(configs1.length)); 323 expect(true).assertEqual(configs1.length != null); 324 resolve(); 325 }); 326 }); 327 } 328 await removeCandidate(); 329 done(); 330 }) 331 332 /** 333 * @tc.number SUB_Communication_WiFi_XTS_CandidateNetWork_0006 334 * @tc.name testaddCandidateConfig 335 * @tc.desc Test connect To CandidateConfig API functionality. 336 * @tc.type Function 337 * @tc.level Level 2 338 */ 339 it('SUB_Communication_WiFi_XTS_CandidateNetWork_0006', 0, async function (done) { 340 let wifiDeviceConfig = { 341 "ssid": "HONOR 3000", 342 "bssid": "22:9b:e6:48:1f:5c", 343 "preSharedKey": "12345678", 344 "isHiddenSsid": false, 345 "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_PSK, 346 }; 347 await wifiMg.addCandidateConfig(wifiDeviceConfig) 348 .then(netWorkId => { 349 console.info("[wifi_test]add CandidateConfig promise : " + JSON.stringify(netWorkId)); 350 expect(true).assertEqual(netWorkId != -1); 351 }).catch((error) => { 352 console.error('[wifi_test]add CandidateConfig promise failed -> ' + JSON.stringify(error)); 353 expect().assertFail(); 354 }); 355 let getCandidateResult = wifiMg.getCandidateConfigs(); 356 console.info("[wifi_test]wifi get CandidateConfigs result : " + JSON.stringify(getCandidateResult)); 357 let connectToCandidateResult = wifiMg.connectToCandidateConfig(getCandidateResult[0].netId); 358 await sleep(3000); 359 await wifiMg.getLinkedInfo() 360 .then((result) => { 361 console.info("[wifi_test]get wifi link [promise] -> " + JSON.stringify(result)); 362 done(); 363 }).catch((error) => { 364 console.info("[wifi_test]promise then error." + JSON.stringify(error)); 365 expect().assertFail(); 366 }); 367 let getCandidateResult1 = wifiMg.getCandidateConfigs(); 368 console.info("[wifi_test]wifi get CandidateConfigs result1 : " + JSON.stringify(getCandidateResult1)); 369 var networkId = getCandidateResult1[0].netId; 370 console.info("[wifi_test]wifi get networkId result : " + JSON.stringify(networkId)); 371 await wifiMg.removeCandidateConfig(networkId) 372 .then(ret => { 373 let getconfig1 = wifiMg.getCandidateConfigs(); 374 console.info("[wifi_test]wifi get CandidateConfigs result : " + JSON.stringify(getconfig1)); 375 console.info("[wifi_test]wifi getconfig.length result : " + JSON.stringify(getconfig1.length)); 376 expect(true).assertEqual(getconfig1.length != null); 377 }).catch((error) => { 378 console.error('[wifi_test]remove CandidateConfig promise failed -> ' + JSON.stringify(error)); 379 expect().assertFail(); 380 }); 381 done(); 382 }) 383 }) 384} 385 386 387