• 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'
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