WifiManagerStationEvent.test.js 15.7 KB
Newer Older
Q
quanli 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
/*
 * Copyright (C) 2022 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'

import wifiMg from '@ohos.wifiManager'
import wifiManagerExt from '@ohos.wifiManagerExt'
Q
quanli 已提交
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
import osaccount from '@ohos.account.osAccount'
import bundle from '@ohos.bundle'
import abilityAccessCtrl from '@ohos.abilityAccessCtrl'

async function applyPermission() {
    let osAccountManager = osaccount.getAccountManager();
    console.info("=== getAccountManager finish");
    let localId = await osAccountManager.getOsAccountLocalIdFromProcess();
    console.info("LocalId is :" + localId);
    let appInfo = await bundle.getApplicationInfo('ohos.acts.communication.wifi.wifidevice', 0, localId);
    let atManager = abilityAccessCtrl.createAtManager();
    if (atManager != null) {
        let tokenID = appInfo.accessTokenId;
        console.info('[permission] case accessTokenID is ' + tokenID);
        let permissionName1 = 'ohos.permission.LOCATION';
        await atManager.grantUserGrantedPermission(tokenID, permissionName1, 1).then((result) => {
            console.info('[permission] case grantUserGrantedPermission success :' + JSON.stringify(result));
        }).catch((err) => {
            console.info('[permission] case grantUserGrantedPermission failed :' + JSON.stringify(err));
        });
    } else {
        console.info('[permission] case apply permission failed, createAtManager failed');
    }
}
Q
quanli 已提交
44 45 46 47 48 49 50 51 52 53 54 55 56 57

function sleep(delay) {
    return new Promise(resovle => setTimeout(resovle, delay))
}

function checkWifiPowerOn(){
    console.info("[wifi_test]wifi status:" + wifiMg.isWifiActive());
}
function resolveIP(ip) {
    return (ip>>24 & 0xFF) + "." + (ip>>16 & 0xFF) + "." + (ip>>8 & 0xFF) + "." + (ip & 0xFF);
}

export default function actsWifiManagerEventTest() {
    describe('actsWifiManagerEventTest', function() {
Q
quanli 已提交
58 59 60 61 62 63
        beforeAll(async function (done) {
            console.info('beforeAll case');
            await applyPermission();
            done();
        })

Q
quanli 已提交
64 65 66 67 68 69 70
        beforeEach(function () {
            checkWifiPowerOn();
        })
        afterEach(function () {
        })

        /**
Q
quanli 已提交
71 72 73 74 75 76
         * @tc.number SUB_Communication_WiFi_Event_Test_0001
         * @tc.name testWifiStateChange
         * @tc.desc Test wifiStateChange callback
         * @tc.type Function
         * @tc.level Level 3
         */
Q
quanli 已提交
77 78 79 80 81 82 83 84 85 86 87 88
        it('SUB_Communication_WiFi_Event_Test_0001', 0, async function (done) {
            let wifiState = "wifiStateChange";
            let wifiStateChangeCallback = result => {
                console.info("[wifi_test]wifiStateChange callback, result: " + JSON.stringify(result));
            }
            wifiMg.on(wifiState, wifiStateChangeCallback);
            await sleep(3000);
            wifiMg.off(wifiState, wifiStateChangeCallback);
            done();
        })

        /**
Q
quanli 已提交
89 90 91 92 93 94
         * @tc.number SUB_Communication_WiFi_Event_Test_0002
         * @tc.name testWifiConnectionChange
         * @tc.desc Test wifiConnectionChange callback
         * @tc.type Function
         * @tc.level Level 3
         */
Q
quanli 已提交
95 96 97 98 99 100 101 102 103 104 105 106
        it('SUB_Communication_WiFi_Event_Test_0002', 0, async function (done) {
            let wifiConnectionState = "wifiConnectionChange";
            let wifiConnectionChangeCallback = result => {
                console.info("[wifi_test]wifiConnectionChange callback, result: " + JSON.stringify(result));
            }
            wifiMg.on(wifiConnectionState, wifiConnectionChangeCallback);
            await sleep(3000);
            wifiMg.off(wifiConnectionState, wifiConnectionChangeCallback);
            done();
        })

        /**
Q
quanli 已提交
107 108 109 110 111 112
         * @tc.number SUB_Communication_WiFi_Event_Test_0003
         * @tc.name testWifiScanStateChange
         * @tc.desc Test wifiScanStateChange  callback
         * @tc.type Function
         * @tc.level Level 3
         */
Q
quanli 已提交
113 114 115 116 117 118 119 120 121 122 123 124 125
        it('SUB_Communication_WiFi_Event_Test_0003', 0, async function (done) {
            let wifiScanState = "wifiScanStateChange";
            let wifiScanStateChangeCallback = result => {
                console.info("[wifi_test]wifiScanStateChange callback, result: " + JSON.stringify(result));
            }
            wifiMg.on(wifiScanState, wifiScanStateChangeCallback);
            let scanResult = wifiMg.scan();
            await sleep(3000);
            wifiMg.off(wifiScanState, wifiScanStateChangeCallback);
            done();
        })

        /**
Q
quanli 已提交
126 127 128 129 130 131
         * @tc.number SUB_Communication_WiFi_Event_Test_0004
         * @tc.name testWifiRssiChange
         * @tc.desc Test wifiRssiChange callback
         * @tc.type Function
         * @tc.level Level 3
         */
Q
quanli 已提交
132 133 134 135 136 137 138 139 140 141 142 143
        it('SUB_Communication_WiFi_Event_Test_0004', 0, async function (done) {
            let wifiRssiState = "wifiRssiChange";
            let wifiRssiChangeCallback = result => {
                console.info("[wifi_test]wifiRssiChange callback, result: " + JSON.stringify(result));
            }
            wifiMg.on(wifiRssiState, wifiRssiChangeCallback);
            await sleep(3000);
            wifiMg.off(wifiRssiState, wifiRssiChangeCallback);
            done();
        })

        /**
Q
quanli 已提交
144 145 146 147 148 149
         * @tc.number SUB_Communication_WiFi_Event_Test_0005
         * @tc.name testHotspotStateChange
         * @tc.desc Test hotspotStateChange api.
         * @tc.type Function
         * @tc.level Level 3
         */
Q
quanli 已提交
150 151 152 153 154 155 156 157 158 159 160 161
        it('SUB_Communication_WiFi_Event_Test_0005', 0, async function (done) {
            let hotspotState = "hotspotStateChange";
            let hotspotStateChangeCallback = result => {
                console.info("[wifi_test]hotspotStateChange callback, result: " + JSON.stringify(result));
            }
            wifiMg.on(hotspotState, hotspotStateChangeCallback);
            await sleep(3000);
            wifiMg.off(hotspotState, hotspotStateChangeCallback);
            done();
        })

        /**
Q
quanli 已提交
162 163 164 165 166
         * @tc.number SUB_Communication_WiFi_SysCaps_Test_0008
         * @tc.name testenableHotspot
         * @tc.desc Test enableHotspot api.
         * @tc.type Function
         */
Q
quanli 已提交
167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185
        it('SUB_Communication_WiFi_SysCaps_Test_0008', 0, async function (done) {
            console.info('SUB_Communication_WiFi_SysCaps_Test_0008 start');
            let ret = false;
            try {
                var isAccessToken = canIUse("SystemCapability.Communication.wifiMg.AP.Extension");
                console.info("SUB_Communication_WiFi_SysCaps_Test_0008 test.syscap.param.001 : " + isAccessToken);
                if (isAccessToken) {
                    console.info("[wifi_test] enableHotspot: " + wifiManagerExt.enableHotspot())
                    done();
                }
                expect(isAccessToken).assertFalse();
            } catch (e) {
                console.info("SUB_Communication_WiFi_SysCaps_Test_0008 canIUse isAccessToken error: " + e);
            }
            console.info('SUB_Communication_WiFi_SysCaps_Test_0008 end');
            done();
        })

        /**
Q
quanli 已提交
186 187 188 189 190
         * @tc.number SUB_Communication_WiFi_SysCaps_Test_0009
         * @tc.name testdisableHotspot
         * @tc.desc Test disableHotspot api.
         * @tc.type Function
         */
Q
quanli 已提交
191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209
        it('SUB_Communication_WiFi_SysCaps_Test_0009', 0, async function (done) {
            console.info('SUB_Communication_WiFi_SysCaps_Test_0009 start');
            let ret = false;
            try {
                var isAccessToken = canIUse("SystemCapability.Communication.wifiMg.AP.Extension");
                console.info("SUB_Communication_WiFi_SysCaps_Test_0009 test.syscap.param.001 : " + isAccessToken);
                if (isAccessToken) {
                    console.info("[wifi_test] disableHotspot: " + wifiManagerExt.disableHotspot())
                    done();
                }
                expect(isAccessToken).assertFalse();
            } catch (e) {
                console.info("SUB_Communication_WiFi_SysCaps_Test_0009 canIUse isAccessToken error: " + e);
            }
            console.info('SUB_Communication_WiFi_SysCaps_Test_0009 end');
            done();
        })

        /**
Q
quanli 已提交
210 211 212 213 214
         * @tc.number SUB_Communication_WiFi_SysCaps_Test_0010
         * @tc.name testgetSupportedPowerMode
         * @tc.desc Test getSupportedPowerMode api.
         * @tc.type Function
         */
Q
quanli 已提交
215 216 217 218 219 220 221
        it('SUB_Communication_WiFi_SysCaps_Test_0010', 0, async function (done) {
            console.info('SUB_Communication_WiFi_SysCaps_Test_0010 start');
            let ret = false;
            try {
                var isAccessToken = canIUse("SystemCapability.Communication.wifiMg.AP.Extension");
                console.info("SUB_Communication_WiFi_SysCaps_Test_0010 test.syscap.param.001 : " + isAccessToken);
                if (isAccessToken) {
Q
quanli 已提交
222
                    await wifiManagerExt.getSupportedPowerMode()
Q
quanli 已提交
223
                        .then(data => {
Q
quanli 已提交
224
                            console.info("[wifi_test]getSupportedPowerMode promise result -> " + JSON.stringify(data));
Q
quanli 已提交
225 226 227 228 229 230 231 232 233 234 235 236
                        });
                    done();
                }
                expect(isAccessToken).assertFalse();
            } catch (e) {
                console.info("SUB_Communication_WiFi_SysCaps_Test_0010 canIUse isAccessToken error: " + e);
            }
            console.info('SUB_Communication_WiFi_SysCaps_Test_0010 end');
            done();
        })

        /**
Q
quanli 已提交
237 238 239 240 241
         * @tc.number SUB_Communication_WiFi_SysCaps_Test_0011
         * @tc.name testgetSupportedPowerMode
         * @tc.desc Test getSupportedPowerMode api.
         * @tc.type Function
         */
Q
quanli 已提交
242 243 244 245 246 247 248
        it('SUB_Communication_WiFi_SysCaps_Test_0011', 0, async function (done) {
            console.info('SUB_Communication_WiFi_SysCaps_Test_0011 start');
            let ret = false;
            try {
                var isAccessToken = canIUse("SystemCapability.Communication.wifiMg.AP.Extension");
                console.info("SUB_Communication_WiFi_SysCaps_Test_0011 test.syscap.param.001 : " + isAccessToken);
                if (isAccessToken) {
Q
quanli 已提交
249
                    function getSupportedPowerModeResult(){
Q
quanli 已提交
250
                        return new Promise((resolve, reject) => {
Q
quanli 已提交
251
                            wifiManagerExt.getSupportedPowerMode(
Q
quanli 已提交
252 253
                                (err, result) => {
                                    if(err) {
Q
quanli 已提交
254
                                        console.info("[wifi_test]failed to  getSupportedPowerMode:" + JSON.stringify(err));
Q
quanli 已提交
255 256
                                        expect(true).assertTrue();
                                    }
Q
quanli 已提交
257
                                    console.info("[wifi_test]getSupportedPowerMode callback:" + JSON.stringify(result));
Q
quanli 已提交
258 259 260 261
                                    resolve();
                                });
                        });
                    }
Q
quanli 已提交
262
                    await getSupportedPowerModeResult();
Q
quanli 已提交
263 264 265 266 267 268 269 270 271 272 273
                    done();
                }
                expect(isAccessToken).assertFalse();
            } catch (e) {
                console.info("SUB_Communication_WiFi_SysCaps_Test_0011 canIUse isAccessToken error: " + e);
            }
            console.info('SUB_Communication_WiFi_SysCaps_Test_0011 end');
            done();
        })

        /**
Q
quanli 已提交
274 275 276 277 278
         * @tc.number SUB_Communication_WiFi_SysCaps_Test_0012
         * @tc.name testgetPowerMode
         * @tc.desc Test getPowerMode api.
         * @tc.type Function
         */
Q
quanli 已提交
279 280 281 282 283 284 285
        it('SUB_Communication_WiFi_SysCaps_Test_0012', 0, async function (done) {
            console.info('SUB_Communication_WiFi_SysCaps_Test_0012 start');
            let ret = false;
            try {
                var isAccessToken = canIUse("SystemCapability.Communication.wifiMg.AP.Extension");
                console.info("SUB_Communication_WiFi_SysCaps_Test_0012 test.syscap.param.001 : " + isAccessToken);
                if (isAccessToken) {
Q
quanli 已提交
286
                    await wifiManagerExt.getPowerMode()
Q
quanli 已提交
287
                        .then(data => {
Q
quanli 已提交
288
                            console.info("[wifi_test]getPowerMode promise result -> " + JSON.stringify(data));
Q
quanli 已提交
289 290 291 292 293 294 295 296 297 298 299 300
                        });
                    done();
                }
                expect(isAccessToken).assertFalse();
            } catch (e) {
                console.info("SUB_Communication_WiFi_SysCaps_Test_0012 canIUse isAccessToken error: " + e);
            }
            console.info('SUB_Communication_WiFi_SysCaps_Test_0012 end');
            done();
        })

        /**
Q
quanli 已提交
301 302 303 304 305
         * @tc.number SUB_Communication_WiFi_SysCaps_Test_0013
         * @tc.name testgetPowerMode
         * @tc.desc Test getPowerMode api.
         * @tc.type Function
         */
Q
quanli 已提交
306 307 308 309 310 311 312
        it('SUB_Communication_WiFi_SysCaps_Test_0013', 0, async function (done) {
            console.info('SUB_Communication_WiFi_SysCaps_Test_0013 start');
            let ret = false;
            try {
                var isAccessToken = canIUse("SystemCapability.Communication.wifiMg.AP.Extension");
                console.info("SUB_Communication_WiFi_SysCaps_Test_0013 test.syscap.param.001 : " + isAccessToken);
                if (isAccessToken) {
Q
quanli 已提交
313
                    function getPowerModeResult(){
Q
quanli 已提交
314
                        return new Promise((resolve, reject) => {
Q
quanli 已提交
315
                            wifiManagerExt.getPowerMode(
Q
quanli 已提交
316 317
                                (err, result) => {
                                    if(err) {
Q
quanli 已提交
318
                                        console.info("[wifi_test]failed to  getPowerMode:" + JSON.stringify(err));
Q
quanli 已提交
319 320
                                        expect(true).assertTrue();
                                    }
Q
quanli 已提交
321
                                    console.info("[wifi_test]getPowerMode callback:" + JSON.stringify(result));
Q
quanli 已提交
322 323 324 325
                                    resolve();
                                });
                        });
                    }
Q
quanli 已提交
326
                    await getPowerModeResult();
Q
quanli 已提交
327 328 329 330 331 332 333 334 335 336 337
                    done();
                }
                expect(isAccessToken).assertFalse();
            } catch (e) {
                console.info("SUB_Communication_WiFi_SysCaps_Test_0013 canIUse isAccessToken error: " + e);
            }
            console.info('SUB_Communication_WiFi_SysCaps_Test_0013 end');
            done();
        })

        /**
Q
quanli 已提交
338 339 340 341 342
         * @tc.number SUB_Communication_WiFi_SysCaps_Test_0014
         * @tc.name testsetPowerMode
         * @tc.desc Test setPowerMode api.
         * @tc.type Function
         */
Q
quanli 已提交
343 344 345 346 347 348 349
        it('SUB_Communication_WiFi_SysCaps_Test_0014', 0, async function (done) {
            console.info('SUB_Communication_WiFi_SysCaps_Test_0014 start');
            let ret = false;
            try {
                var isAccessToken = canIUse("SystemCapability.Communication.wifiMg.AP.Extension");
                console.info("SUB_Communication_WiFi_SysCaps_Test_0014 test.syscap.param.001 : " + isAccessToken);
                if (isAccessToken) {
Q
quanli 已提交
350
                    console.info("[wifi_test] setPowerMode: " + wifiManagerExt.setPowerMode(PowerModel))
Q
quanli 已提交
351 352 353 354 355 356 357 358 359 360 361 362 363
                    done();
                }
                expect(isAccessToken).assertFalse();
            } catch (e) {
                console.info("SUB_Communication_WiFi_SysCaps_Test_0014 canIUse isAccessToken error: " + e);
            }
            console.info('SUB_Communication_WiFi_SysCaps_Test_0014 end');
            done();
        })
        console.log("*************[wifi_test] start wifi js unit test end*************");
    })
}