• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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