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 wifi from '@ohos.wifi' 20import wifiext from '@ohos.wifiext' 21 22function sleep(delay) { 23 return new Promise(resovle => setTimeout(resovle, delay)) 24} 25 26function checkWifiPowerOn(){ 27 console.info("[wifi_test]wifi status:" + wifi.isWifiActive()); 28} 29function resolveIP(ip) { 30 return (ip>>24 & 0xFF) + "." + (ip>>16 & 0xFF) + "." + (ip>>8 & 0xFF) + "." + (ip & 0xFF); 31} 32 33async function clickRequestPermission() { 34 try { 35 console.info('[wifi_js] clickRequestPermission start'); 36 let driver = Driver.create(); 37 await driver.delayMs(3000); 38 let button = await driver.findComponent(ON.text("本次使用", MatchPattern.CONTAINS)); 39 await button.click(); 40 await driver.delayMs(3000); 41 console.info('[wifi_js] clickRequestPermission end'); 42 } catch (err) { 43 console.info('[wifi_js] clickRequestPermission failed'); 44 } 45} 46 47 48export default function actsWifiEventTest() { 49 describe('actsWifiEventTest', function() { 50 beforeAll(async function (done) { 51 console.info('beforeAll case'); 52 await clickRequestPermission(); 53 done(); 54 }) 55 56 beforeEach(function () { 57 checkWifiPowerOn(); 58 }) 59 afterEach(function () { 60 }) 61 62 /** 63 * @tc.number Communication_WiFi_Event_Test_0001 64 * @tc.name testWifiStateChange 65 * @tc.desc Test wifiStateChange callback 66 * @tc.type Function 67 * @tc.level Level 3 68 */ 69 it('Communication_WiFi_Event_Test_0001', 0, async function (done) { 70 let wifiState = "wifiStateChange"; 71 let wifiStateChangeCallback = result => { 72 console.info("[wifi_test]wifiStateChange callback, result: " + JSON.stringify(result)); 73 } 74 wifi.on(wifiState, wifiStateChangeCallback); 75 await sleep(3000); 76 wifi.off(wifiState, wifiStateChangeCallback); 77 done(); 78 }) 79 80 /** 81 * @tc.number Communication_WiFi_Event_Test_0002 82 * @tc.name testWifiConnectionChange 83 * @tc.desc Test wifiConnectionChange callback 84 * @tc.type Function 85 * @tc.level Level 3 86 */ 87 it('Communication_WiFi_Event_Test_0002', 0, async function (done) { 88 let wifiConnectionState = "wifiConnectionChange"; 89 let wifiConnectionChangeCallback = result => { 90 console.info("[wifi_test]wifiConnectionChange callback, result: " + JSON.stringify(result)); 91 } 92 wifi.on(wifiConnectionState, wifiConnectionChangeCallback); 93 await sleep(3000); 94 wifi.off(wifiConnectionState, wifiConnectionChangeCallback); 95 done(); 96 }) 97 98 /** 99 * @tc.number Communication_WiFi_Event_Test_0003 100 * @tc.name testWifiScanStateChange 101 * @tc.desc Test wifiScanStateChange callback 102 * @tc.type Function 103 * @tc.level Level 3 104 */ 105 it('Communication_WiFi_Event_Test_0003', 0, async function (done) { 106 let wifiScanState = "wifiScanStateChange"; 107 let wifiScanStateChangeCallback = result => { 108 console.info("[wifi_test]wifiScanStateChange callback, result: " + JSON.stringify(result)); 109 } 110 wifi.on(wifiScanState, wifiScanStateChangeCallback); 111 try { 112 let scanResult = wifi.scan(); 113 } catch (error) { 114 console.error(`scan failed, code is ${error.code}, message is ${error.message}`); 115 expect(true).assertEqual(error !=null); 116 } 117 await sleep(3000); 118 wifi.off(wifiScanState, wifiScanStateChangeCallback); 119 done(); 120 }) 121 122 /** 123 * @tc.number Communication_WiFi_Event_Test_0004 124 * @tc.name testWifiRssiChange 125 * @tc.desc Test wifiRssiChange callback 126 * @tc.type Function 127 * @tc.level Level 3 128 */ 129 it('Communication_WiFi_Event_Test_0004', 0, async function (done) { 130 let wifiRssiState = "wifiRssiChange"; 131 let wifiRssiChangeCallback = result => { 132 console.info("[wifi_test]wifiRssiChange callback, result: " + JSON.stringify(result)); 133 } 134 wifi.on(wifiRssiState, wifiRssiChangeCallback); 135 await sleep(3000); 136 wifi.off(wifiRssiState, wifiRssiChangeCallback); 137 done(); 138 }) 139 140 /** 141 * @tc.number Communication_WiFi_Event_Test_0005 142 * @tc.name testHotspotStateChange 143 * @tc.desc Test hotspotStateChange api. 144 * @tc.type Function 145 * @tc.level Level 3 146 */ 147 it('Communication_WiFi_Event_Test_0005', 0, async function (done) { 148 let hotspotState = "hotspotStateChange"; 149 let hotspotStateChangeCallback = result => { 150 console.info("[wifi_test]hotspotStateChange callback, result: " + JSON.stringify(result)); 151 } 152 wifi.on(hotspotState, hotspotStateChangeCallback); 153 await sleep(3000); 154 wifi.off(hotspotState, hotspotStateChangeCallback); 155 done(); 156 }) 157 158 /** 159 * @tc.number SUB_Communication_WiFi_SysCaps_Test_0001 160 * @tc.name testenableHotspot 161 * @tc.desc Test enableHotspot api. 162 * @tc.type Function 163 */ 164 it('SUB_Communication_WiFi_SysCaps_Test_0001', 0, async function (done) { 165 console.info('SUB_Communication_WiFi_SysCaps_Test_0001 start'); 166 let ret = false; 167 try { 168 var isAccessToken = canIUse("SystemCapability.Communication.WiFi.AP.Extension"); 169 console.info("SUB_Communication_WiFi_SysCaps_Test_0001 test.syscap.param.001 : " + isAccessToken); 170 if (isAccessToken) { 171 console.info("[wifi_test] enableHotspot: " + wifiext.enableHotspot()) 172 done(); 173 } 174 expect(isAccessToken).assertFalse(); 175 } catch (e) { 176 console.info("SUB_Communication_WiFi_SysCaps_Test_0001 canIUse isAccessToken error: " + e); 177 } 178 console.info('SUB_Communication_WiFi_SysCaps_Test_0001 end'); 179 done(); 180 }) 181 182 /** 183 * @tc.number SUB_Communication_WiFi_SysCaps_Test_0002 184 * @tc.name testdisableHotspot 185 * @tc.desc Test disableHotspot api. 186 * @tc.type Function 187 */ 188 it('SUB_Communication_WiFi_SysCaps_Test_0002', 0, async function (done) { 189 console.info('SUB_Communication_WiFi_SysCaps_Test_0002 start'); 190 let ret = false; 191 try { 192 var isAccessToken = canIUse("SystemCapability.Communication.WiFi.AP.Extension"); 193 console.info("SUB_Communication_WiFi_SysCaps_Test_0002 test.syscap.param.001 : " + isAccessToken); 194 if (isAccessToken) { 195 console.info("[wifi_test] disableHotspot: " + wifiext.disableHotspot()) 196 done(); 197 } 198 expect(isAccessToken).assertFalse(); 199 } catch (e) { 200 console.info("SUB_Communication_WiFi_SysCaps_Test_0002 canIUse isAccessToken error: " + e); 201 } 202 console.info('SUB_Communication_WiFi_SysCaps_Test_0002 end'); 203 done(); 204 }) 205 206 /** 207 * @tc.number SUB_Communication_WiFi_SysCaps_Test_0003 208 * @tc.name testgetSupportedPowerModel 209 * @tc.desc Test getSupportedPowerModel api. 210 * @tc.type Function 211 */ 212 it('SUB_Communication_WiFi_SysCaps_Test_0003', 0, async function (done) { 213 console.info('SUB_Communication_WiFi_SysCaps_Test_0003 start'); 214 let ret = false; 215 try { 216 var isAccessToken = canIUse("SystemCapability.Communication.WiFi.AP.Extension"); 217 console.info("SUB_Communication_WiFi_SysCaps_Test_0003 test.syscap.param.001 : " + isAccessToken); 218 if (isAccessToken) { 219 await wifiext.getSupportedPowerModel() 220 .then(data => { 221 console.info("[wifi_test]getSupportedPowerModel promise result -> " + JSON.stringify(data)); 222 }); 223 done(); 224 } 225 expect(isAccessToken).assertFalse(); 226 } catch (e) { 227 console.info("SUB_Communication_WiFi_SysCaps_Test_0003 canIUse isAccessToken error: " + e); 228 } 229 console.info('SUB_Communication_WiFi_SysCaps_Test_0003 end'); 230 done(); 231 }) 232 233 /** 234 * @tc.number SUB_Communication_WiFi_SysCaps_Test_0004 235 * @tc.name testgetSupportedPowerModel 236 * @tc.desc Test getSupportedPowerModel api. 237 * @tc.type Function 238 */ 239 it('SUB_Communication_WiFi_SysCaps_Test_0004', 0, async function (done) { 240 console.info('SUB_Communication_WiFi_SysCaps_Test_0004 start'); 241 let ret = false; 242 try { 243 var isAccessToken = canIUse("SystemCapability.Communication.WiFi.AP.Extension"); 244 console.info("SUB_Communication_WiFi_SysCaps_Test_0004 test.syscap.param.001 : " + isAccessToken); 245 if (isAccessToken) { 246 function getSupportedPowerModelResult(){ 247 return new Promise((resolve, reject) => { 248 wifiext.getSupportedPowerModel( 249 (err, result) => { 250 if(err) { 251 console.info("[wifi_test]failed to getSupportedPowerModel:" + JSON.stringify(err)); 252 expect(true).assertTrue(); 253 } 254 console.info("[wifi_test]getSupportedPowerModel callback:" + JSON.stringify(result)); 255 resolve(); 256 }); 257 }); 258 } 259 await getSupportedPowerModelResult(); 260 done(); 261 } 262 expect(isAccessToken).assertFalse(); 263 } catch (e) { 264 console.info("SUB_Communication_WiFi_SysCaps_Test_0004 canIUse isAccessToken error: " + e); 265 } 266 console.info('SUB_Communication_WiFi_SysCaps_Test_0004 end'); 267 done(); 268 }) 269 270 /** 271 * @tc.number SUB_Communication_WiFi_SysCaps_Test_0005 272 * @tc.name testgetPowerModel 273 * @tc.desc Test getPowerModel api. 274 * @tc.type Function 275 */ 276 it('SUB_Communication_WiFi_SysCaps_Test_0005', 0, async function (done) { 277 console.info('SUB_Communication_WiFi_SysCaps_Test_0005 start'); 278 let ret = false; 279 try { 280 var isAccessToken = canIUse("SystemCapability.Communication.WiFi.AP.Extension"); 281 console.info("SUB_Communication_WiFi_SysCaps_Test_0005 test.syscap.param.001 : " + isAccessToken); 282 if (isAccessToken) { 283 await wifiext.getPowerModel() 284 .then(data => { 285 console.info("[wifi_test]getPowerModel promise result -> " + JSON.stringify(data)); 286 }); 287 done(); 288 } 289 expect(isAccessToken).assertFalse(); 290 } catch (e) { 291 console.info("SUB_Communication_WiFi_SysCaps_Test_0005 canIUse isAccessToken error: " + e); 292 } 293 console.info('SUB_Communication_WiFi_SysCaps_Test_0005 end'); 294 done(); 295 }) 296 297 /** 298 * @tc.number SUB_Communication_WiFi_SysCaps_Test_0006 299 * @tc.name testgetPowerModel 300 * @tc.desc Test getPowerModel api. 301 * @tc.type Function 302 */ 303 it('SUB_Communication_WiFi_SysCaps_Test_0006', 0, async function (done) { 304 console.info('SUB_Communication_WiFi_SysCaps_Test_0006 start'); 305 let ret = false; 306 try { 307 var isAccessToken = canIUse("SystemCapability.Communication.WiFi.AP.Extension"); 308 console.info("SUB_Communication_WiFi_SysCaps_Test_0006 test.syscap.param.001 : " + isAccessToken); 309 if (isAccessToken) { 310 function getPowerModelResult(){ 311 return new Promise((resolve, reject) => { 312 wifiext.getPowerModel( 313 (err, result) => { 314 if(err) { 315 console.info("[wifi_test]failed to getPowerModel:" + JSON.stringify(err)); 316 expect(true).assertTrue(); 317 } 318 console.info("[wifi_test]getPowerModel callback:" + JSON.stringify(result)); 319 resolve(); 320 }); 321 }); 322 } 323 await getPowerModelResult(); 324 done(); 325 } 326 expect(isAccessToken).assertFalse(); 327 } catch (e) { 328 console.info("SUB_Communication_WiFi_SysCaps_Test_0006 canIUse isAccessToken error: " + e); 329 } 330 console.info('SUB_Communication_WiFi_SysCaps_Test_0006 end'); 331 done(); 332 }) 333 334 /** 335 * @tc.number SUB_Communication_WiFi_SysCaps_Test_0007 336 * @tc.name testsetPowerModel 337 * @tc.desc Test setPowerModel api. 338 * @tc.type Function 339 */ 340 it('SUB_Communication_WiFi_SysCaps_Test_0007', 0, async function (done) { 341 console.info('SUB_Communication_WiFi_SysCaps_Test_0007 start'); 342 let ret = false; 343 try { 344 var isAccessToken = canIUse("SystemCapability.Communication.WiFi.AP.Extension"); 345 console.info("SUB_Communication_WiFi_SysCaps_Test_0007 test.syscap.param.001 : " + isAccessToken); 346 if (isAccessToken) { 347 console.info("[wifi_test] setPowerModel: " + wifiext.setPowerModel(PowerModel)) 348 done(); 349 } 350 expect(isAccessToken).assertFalse(); 351 } catch (e) { 352 console.info("SUB_Communication_WiFi_SysCaps_Test_0007 canIUse isAccessToken error: " + e); 353 } 354 console.info('SUB_Communication_WiFi_SysCaps_Test_0007 end'); 355 let SLEEPING = wifiext.PowerModel.SLEEPING; 356 console.info("[wifi_test]SLEEPING : " + JSON.stringify(SLEEPING)); 357 expect(true).assertEqual( SLEEPING == 0); 358 let GENERAL = wifiext.PowerModel.GENERAL; 359 console.info("[wifi_test]GENERAL : " + JSON.stringify(GENERAL)); 360 expect(true).assertEqual( GENERAL == 1); 361 let THROUGH = wifiext.PowerModel.THROUGH_WALL; 362 console.info("[wifi_test]THROUGH : " + JSON.stringify(THROUGH)); 363 expect(true).assertEqual( THROUGH == 2); 364 done(); 365 }) 366 console.log("*************[wifi_test] start wifi js unit test end*************"); 367 }) 368} 369 370