WifiManagerStationEvent.test.js 15.9 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
        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);
Q
quanli 已提交
119 120 121 122 123 124
            try {
                let scanResult = wifiMg.scan();
            } catch (error) {
                console.error(`scan failed, code is ${error.code}, message is ${error.message}`);
                expect(true).assertEqual(error !=null);
            }
Q
quanli 已提交
125 126 127 128 129 130
            await sleep(3000);
            wifiMg.off(wifiScanState, wifiScanStateChangeCallback);
            done();
        })

        /**
Q
quanli 已提交
131 132 133 134 135 136
         * @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 已提交
137 138 139 140 141 142 143 144 145 146 147 148
        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 已提交
149 150 151 152 153 154
         * @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 已提交
155 156 157 158 159 160 161 162 163 164 165 166
        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 已提交
167 168 169 170 171
         * @tc.number SUB_Communication_WiFi_SysCaps_Test_0008
         * @tc.name testenableHotspot
         * @tc.desc Test enableHotspot api.
         * @tc.type Function
         */
Q
quanli 已提交
172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190
        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 已提交
191 192 193 194 195
         * @tc.number SUB_Communication_WiFi_SysCaps_Test_0009
         * @tc.name testdisableHotspot
         * @tc.desc Test disableHotspot api.
         * @tc.type Function
         */
Q
quanli 已提交
196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214
        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 已提交
215 216 217 218 219
         * @tc.number SUB_Communication_WiFi_SysCaps_Test_0010
         * @tc.name testgetSupportedPowerMode
         * @tc.desc Test getSupportedPowerMode api.
         * @tc.type Function
         */
Q
quanli 已提交
220 221 222 223 224 225 226
        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 已提交
227
                    await wifiManagerExt.getSupportedPowerMode()
Q
quanli 已提交
228
                        .then(data => {
Q
quanli 已提交
229
                            console.info("[wifi_test]getSupportedPowerMode promise result -> " + JSON.stringify(data));
Q
quanli 已提交
230 231 232 233 234 235 236 237 238 239 240 241
                        });
                    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 已提交
242 243 244 245 246
         * @tc.number SUB_Communication_WiFi_SysCaps_Test_0011
         * @tc.name testgetSupportedPowerMode
         * @tc.desc Test getSupportedPowerMode api.
         * @tc.type Function
         */
Q
quanli 已提交
247 248 249 250 251 252 253
        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 已提交
254
                    function getSupportedPowerModeResult(){
Q
quanli 已提交
255
                        return new Promise((resolve, reject) => {
Q
quanli 已提交
256
                            wifiManagerExt.getSupportedPowerMode(
Q
quanli 已提交
257 258
                                (err, result) => {
                                    if(err) {
Q
quanli 已提交
259
                                        console.info("[wifi_test]failed to  getSupportedPowerMode:" + JSON.stringify(err));
Q
quanli 已提交
260 261
                                        expect(true).assertTrue();
                                    }
Q
quanli 已提交
262
                                    console.info("[wifi_test]getSupportedPowerMode callback:" + JSON.stringify(result));
Q
quanli 已提交
263 264 265 266
                                    resolve();
                                });
                        });
                    }
Q
quanli 已提交
267
                    await getSupportedPowerModeResult();
Q
quanli 已提交
268 269 270 271 272 273 274 275 276 277 278
                    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 已提交
279 280 281 282 283
         * @tc.number SUB_Communication_WiFi_SysCaps_Test_0012
         * @tc.name testgetPowerMode
         * @tc.desc Test getPowerMode api.
         * @tc.type Function
         */
Q
quanli 已提交
284 285 286 287 288 289 290
        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 已提交
291
                    await wifiManagerExt.getPowerMode()
Q
quanli 已提交
292
                        .then(data => {
Q
quanli 已提交
293
                            console.info("[wifi_test]getPowerMode promise result -> " + JSON.stringify(data));
Q
quanli 已提交
294 295 296 297 298 299 300 301 302 303 304 305
                        });
                    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 已提交
306 307 308 309 310
         * @tc.number SUB_Communication_WiFi_SysCaps_Test_0013
         * @tc.name testgetPowerMode
         * @tc.desc Test getPowerMode api.
         * @tc.type Function
         */
Q
quanli 已提交
311 312 313 314 315 316 317
        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 已提交
318
                    function getPowerModeResult(){
Q
quanli 已提交
319
                        return new Promise((resolve, reject) => {
Q
quanli 已提交
320
                            wifiManagerExt.getPowerMode(
Q
quanli 已提交
321 322
                                (err, result) => {
                                    if(err) {
Q
quanli 已提交
323
                                        console.info("[wifi_test]failed to  getPowerMode:" + JSON.stringify(err));
Q
quanli 已提交
324 325
                                        expect(true).assertTrue();
                                    }
Q
quanli 已提交
326
                                    console.info("[wifi_test]getPowerMode callback:" + JSON.stringify(result));
Q
quanli 已提交
327 328 329 330
                                    resolve();
                                });
                        });
                    }
Q
quanli 已提交
331
                    await getPowerModeResult();
Q
quanli 已提交
332 333 334 335 336 337 338 339 340 341 342
                    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 已提交
343 344 345 346 347
         * @tc.number SUB_Communication_WiFi_SysCaps_Test_0014
         * @tc.name testsetPowerMode
         * @tc.desc Test setPowerMode api.
         * @tc.type Function
         */
Q
quanli 已提交
348 349 350 351 352 353 354
        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 已提交
355
                    console.info("[wifi_test] setPowerMode: " + wifiManagerExt.setPowerMode(PowerModel))
Q
quanli 已提交
356 357 358 359 360 361 362 363 364 365 366 367 368
                    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*************");
    })
}