• 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
23async function applyPermission() {
24    let osAccountManager = osaccount.getAccountManager();
25    console.info("=== getAccountManager finish");
26    let localId = await osAccountManager.getOsAccountLocalIdFromProcess();
27    console.info("LocalId is :" + localId);
28    let appInfo = await bundle.getApplicationInfo('ohos.acts.communication.wifi.wifidevice', 0, localId);
29    let atManager = abilityAccessCtrl.createAtManager();
30    if (atManager != null) {
31        let tokenID = appInfo.accessTokenId;
32        console.info('[permission] case accessTokenID is ' + tokenID);
33        let permissionName1 = 'ohos.permission.LOCATION';
34        await atManager.grantUserGrantedPermission(tokenID, permissionName1, 1).then((result) => {
35            console.info('[permission] case grantUserGrantedPermission success :' + JSON.stringify(result));
36        }).catch((err) => {
37            console.info('[permission] case grantUserGrantedPermission failed :' + JSON.stringify(err));
38        });
39    } else {
40        console.info('[permission] case apply permission failed, createAtManager failed');
41    }
42}
43
44function sleep(delay) {
45    return new Promise(resovle => setTimeout(resovle, delay))
46}
47
48function checkWifiPowerOn(){
49    console.info("[wifi_test]wifi status:" + wifiMg.isWifiActive());
50}
51
52function resolveIP(ip) {
53    return (ip>>24 & 0xFF) + "." + (ip>>16 & 0xFF) + "." + (ip>>8 & 0xFF) + "." + (ip & 0xFF);
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            await wifiMg.addCandidateConfig(wifiDeviceConfig1)
103                .then(netWorkId => {
104                    console.info("[wifi_test]add WEP CandidateConfig promise : " + JSON.stringify(netWorkId));
105                    expect(true).assertEqual(netWorkId = -1);
106                }).catch((error) => {
107                    console.error('[wifi_test]add WEP CandidateConfig promise failed -> ' + JSON.stringify(error));
108                    expect(true).assertEqual( (JSON.stringify(error)) !=null);
109                });
110            console.info("[wifi_test]wifi get WEP CandidateConfigs result : " + JSON.stringify(getconfig));
111
112            let WIFI_SEC_TYPE_INVALID = wifiMg.WifiSecurityType.WIFI_SEC_TYPE_INVALID;
113            console.info("[wifi_test]WIFI_SEC_TYPE_INVALID : " + JSON.stringify(WIFI_SEC_TYPE_INVALID));
114            expect(true).assertEqual( WIFI_SEC_TYPE_INVALID == 0);
115            let WIFI_SEC_TYPE_EAP = wifiMg.WifiSecurityType.WIFI_SEC_TYPE_EAP;
116            console.info("[wifi_test]WIFI_SEC_TYPE_EAP : " + JSON.stringify(WIFI_SEC_TYPE_EAP));
117            expect(true).assertEqual( WIFI_SEC_TYPE_EAP == 5);
118            let WIFI_SEC_TYPE_EAP_SUITE_B = wifiMg.WifiSecurityType.WIFI_SEC_TYPE_EAP_SUITE_B;
119            console.info("[wifi_test]WIFI_SEC_TYPE_EAP_SUITE_B : " + JSON.stringify(WIFI_SEC_TYPE_EAP_SUITE_B));
120            expect(true).assertEqual( WIFI_SEC_TYPE_EAP_SUITE_B == 6);
121            let WIFI_SEC_TYPE_OWE = wifiMg.WifiSecurityType.WIFI_SEC_TYPE_OWE;
122            console.info("[wifi_test]WIFI_SEC_TYPE_OWE : " + JSON.stringify(WIFI_SEC_TYPE_OWE));
123            expect(true).assertEqual( WIFI_SEC_TYPE_OWE == 7);
124            let WIFI_SEC_TYPE_WAPI_CERT = wifiMg.WifiSecurityType.WIFI_SEC_TYPE_WAPI_CERT;
125            console.info("[wifi_test]WIFI_SEC_TYPE_WAPI_CERT : " + JSON.stringify(WIFI_SEC_TYPE_WAPI_CERT));
126            expect(true).assertEqual( WIFI_SEC_TYPE_WAPI_CERT == 8);
127            let WIFI_SEC_TYPE_WAPI_PSK = wifiMg.WifiSecurityType.WIFI_SEC_TYPE_WAPI_PSK;
128            console.info("[wifi_test]WIFI_SEC_TYPE_WAPI_CERT : " + JSON.stringify(WIFI_SEC_TYPE_WAPI_PSK));
129            expect(true).assertEqual( WIFI_SEC_TYPE_WAPI_PSK == 9);
130            done();
131        })
132
133        /**
134         * @tc.number SUB_Communication_WiFi_XTS_CandidateNetWork_0002
135         * @tc.name testaddCandidateConfig
136         * @tc.desc Test add PSK CandidateConfig and removeCandidateConfig Promise API functionality.
137         * @tc.type Function
138         * @tc.level Level 2
139         */
140        it('SUB_Communication_WiFi_XTS_CandidateNetWork_0002', 0, async function (done) {
141            let EapMethod = {
142                "EAP_NONE": 0,
143                "EAP_PEAP": 1,
144                "EAP_TLS": 2,
145                "EAP_TTLS": 3,
146                "EAP_PWD": 4,
147                "EAP_SIM": 5,
148                "EAP_AKA": 6,
149                "EAP_AKA_PRIME": 7,
150                "EAP_UNAUTH_TLS": 8,
151            };
152            let Phase2Method = {
153                "PHASE2_NONE": 0,
154                "PHASE2_PAP": 1,
155                "PHASE2_MSCHAP": 2,
156                "PHASE2_MSCHAPV2": 3,
157                "PHASE2_GTC": 4,
158                "PHASE2_SIM": 5,
159                "PHASE2_AKA": 6,
160                "PHASE2_AKA_PRIME": 7,
161            };
162            let WifiEapConfig = {
163                "eapMethod": wifiMg.EapMethod.EAP_NONE,
164                "phase2Method": wifiMg.Phase2Method.PHASE2_NONE,
165                "identity": "aaa",
166                "anonymousIdentity": "bbb",
167                "password": "12345678",
168                "caCertAlias": "ddd",
169                "caPath": "eee",
170                "clientCertAlias": "fff",
171                "certEntry": new Uint8Array(),
172                "certPassword": "12345678",
173                "altSubjectMatch": "ggg",
174                "domainSuffixMatch": "hhh",
175                "realm": "iii",
176                "plmn": "jjj",
177                "eapSubId": "kkk",
178            };
179            let wifiDeviceConfig = {
180                "ssid": "TEST_PSK",
181                "bssid": "22:9b:e6:48:1f:5c",
182                "bssidType" : 1,
183                "preSharedKey": "12345678",
184                "isHiddenSsid": false,
185                "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_PSK,
186                "netId": -1,
187                "ipType": 1,
188                "creatorUid": 7,
189                "disableReason": 0,
190                "randomMacType": 0,
191                "randomMacAddr": "11:22:33:44:55:66",
192                "staticIp": {"ipAddress": 1284752956,"gateway": 1284752936},
193                "eapConfig": wifiMg.WifiEapConfig,
194            };
195            await wifiMg.addCandidateConfig(wifiDeviceConfig)
196                .then(netWorkId => {
197                    console.info("[wifi_test]add PSK CandidateConfig promise : " + JSON.stringify(netWorkId));
198                    expect(true).assertEqual(netWorkId != -1);
199                }).catch((error) => {
200                    console.error('[wifi_test]add PSK CandidateConfig promise failed -> ' + JSON.stringify(error));
201                    expect().assertFail();
202                });
203            let getCandidateResult = wifiMg.getCandidateConfigs();
204            console.info("[wifi_test]wifi get PSK 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 getCandidate = wifiMg.getCandidateConfigs();
210                    console.info("[wifi_test]wifi get CandidateConfigs result : " + JSON.stringify(getCandidate));
211                    console.info("[wifi_test]wifi  getconfig.length result : " + JSON.stringify(getCandidate.length));
212                    expect(true).assertEqual(getCandidate.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_0003
222         * @tc.name testaddCandidateConfig
223         * @tc.desc Test add SAE CandidateConfig Promise API functionality.
224         * @tc.type Function
225         * @tc.level Level 2
226         */
227        it('SUB_Communication_WiFi_XTS_CandidateNetWork_0003', 0, async function (done) {
228            let wifiDeviceConfig = {
229                "ssid": "TEST_SAE",
230                "bssid": "22:9b:e6:48:1f:5c",
231                "preSharedKey": "12345678",
232                "isHiddenSsid": false,
233                "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_SAE,
234            };
235            await wifiMg.addCandidateConfig(wifiDeviceConfig)
236                .then(netWorkId => {
237                    console.info("[wifi_test]add SAE CandidateConfig promise : " + JSON.stringify(netWorkId));
238                    expect(true).assertEqual(netWorkId != -1);
239                }).catch((error) => {
240                    console.error('[wifi_js]add SAE CandidateConfig promise failed -> ' + JSON.stringify(error));
241                });
242            let getCandidateResult = wifiMg.getCandidateConfigs();
243            console.info("[wifi_test]wifi get SAE CandidateConfigs result : " + JSON.stringify(getCandidateResult));
244            var networkId = getCandidateResult[0].netId;
245            console.info("[wifi_test]wifi get networkId result : " + JSON.stringify(networkId));
246            await wifiMg.removeCandidateConfig(networkId)
247                .then(ret => {
248                    let getconfig1 = wifiMg.getCandidateConfigs();
249                    console.info("[wifi_test]wifi get CandidateConfigs result : " + JSON.stringify(getconfig1));
250                    console.info("[wifi_test]wifi  getconfig.length result : " + JSON.stringify(getconfig1.length));
251                    expect(true).assertEqual(getconfig1.length == 0);
252                }).catch((error) => {
253                    console.error('[wifi_test]remove CandidateConfig promise failed -> ' + JSON.stringify(error));
254                    expect().assertFail();
255                });
256            done();
257        })
258
259        /**
260         * @tc.number SUB_Communication_WiFi_XTS_CandidateNetWork_0004
261         * @tc.name testaddCandidateConfig
262         * @tc.desc Test add MAX CandidateConfig and removeall CandidateConfig.
263         * @tc.type Function
264         * @tc.level Level 2
265         */
266        it('SUB_Communication_WiFi_XTS_CandidateNetWork_0004', 0, async function (done) {
267            let SSID = "TYPE_PSK"
268            for (let i = 0; i < 16; i++) {
269                SSID = "TYPE_PSK" + i
270                console.info("[wifi_test] get canshu result : ");
271                let wifiDeviceConfig = {
272                    "ssid": SSID,
273                    "bssid": "22:9b:e6:48:1f:5c",
274                    "preSharedKey": "12345678",
275                    "isHiddenSsid": false,
276                    "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_PSK,
277                };
278                console.info("[wifi_test]get wifiDeviceConfig ssid result : " + JSON.stringify(wifiDeviceConfig.ssid));
279                await wifiMg.addCandidateConfig(wifiDeviceConfig)
280                    .then(netWorkId => {
281                        console.info("[wifi_test]add 16th CandidateConfig promise : " + JSON.stringify(netWorkId));
282                        expect(true).assertEqual(netWorkId != -1);
283                    }).catch((error) => {
284                        console.error('[wifi_test]add 16th CandidateConfig promise failed :' + JSON.stringify(error));
285                        expect().assertFail();
286                    });
287            }
288            let wifiDeviceConfig1 = {
289                "ssid": "TYPE_17",
290                "bssid": "22:9b:e6:48:1f:5c",
291                "preSharedKey": "12345678",
292                "isHiddenSsid": false,
293                "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_PSK,
294            };
295            await wifiMg.addCandidateConfig(wifiDeviceConfig1)
296                .then(netWorkId => {
297                    console.info("[wifi_test]add 17th CandidateConfig promise : " + JSON.stringify(netWorkId));
298                    expect(true).assertEqual(netWorkId != -1);
299                }).catch((error) => {
300                    console.error(`[wifi_test]add 17th failed, code is ${error.code}, message is ${error.message}`);
301                    expect(true).assertEqual( (JSON.stringify(error.message)) !=null);
302                });
303            let getCandidateResult = wifiMg.getCandidateConfigs();
304            console.info("[wifi_test]wifi get 16 CandidateConfigs result : " + JSON.stringify(getCandidateResult));
305            for (let i = 0; i < 16; i++) {
306                var networkId = getCandidateResult[i].netId;
307                console.info("[wifi_test]wifi get networkId result : " + JSON.stringify(networkId));
308                await wifiMg.removeCandidateConfig(networkId)
309                    .then(ret => {
310                        let getconfig1 = wifiMg.getCandidateConfigs();
311                        console.info("[wifi_test] wifi get CandidateConfigs result : " + JSON.stringify(getconfig1));
312                        console.info("[wifi_test] wifi getconfiglength result : " + JSON.stringify(getconfig1.length));
313                    }).catch((error) => {
314                        console.error('[wifi_test]remove CandidateConfig promise failed -> ' + JSON.stringify(error));
315                    });
316            }
317            done();
318        })
319
320        /**
321         * @tc.number SUB_Communication_WiFi_XTS_CandidateNetWork_0005
322         * @tc.name testaddCandidateConfig
323         * @tc.desc Test add CandidateConfig and removeCandidateConfig callback API functionality.
324         * @tc.type Function
325         * @tc.level Level 2
326         */
327        it('SUB_Communication_WiFi_XTS_CandidateNetWork_0005', 0, async function (done) {
328            let wifiDeviceConfig = {
329                "ssid": "TEST_connect",
330                "bssid": "22:9b:e6:48:1f:5c",
331                "preSharedKey": "12345678",
332                "isHiddenSsid": false,
333                "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_PSK,
334            }
335            function addCandidate() {
336                return new Promise((resolve, reject) => {
337                    wifiMg.addCandidateConfig(wifiDeviceConfig,
338                        (err, netWorkId) => {
339                            if (err) {
340                                console.info("[wifi_test]add CandidateConfig callback failed : " + JSON.stringify(err));
341                            }
342                            console.info("[wifi_test]addCandidateConfig callback result: " + JSON.stringify(netWorkId));
343                            expect(true).assertEqual(netWorkId != -1);
344                            resolve();
345                        });
346                });
347            }
348            await addCandidate();
349            let getCandidateResult = wifiMg.getCandidateConfigs();
350            console.info("[wifi_test] wifi getCandidateConfigs result : " + JSON.stringify(getCandidateResult));
351            var networkId = getCandidateResult[0].netId;
352            function removeCandidate() {
353                return new Promise((resolve, reject) => {
354                    wifiMg.removeCandidateConfig(networkId,
355                        (err, ret) => {
356                            if (err) {
357                                console.info("[wifi_test]removeCandidate callback failed : " + JSON.stringify(err));
358                            }
359                            let configs1 = wifiMg.getCandidateConfigs();
360                            console.info("[wifi_test] wifi get  CandidateConfigs result : " + JSON.stringify(configs1));
361                            console.info("[wifi_test] getconfig.length result : " + JSON.stringify(configs1.length));
362                            expect(true).assertEqual(configs1.length != null);
363                            resolve();
364                        });
365                });
366            }
367            await removeCandidate();
368            done();
369        })
370
371        /**
372         * @tc.number SUB_Communication_WiFi_XTS_CandidateNetWork_0006
373         * @tc.name testaddCandidateConfig
374         * @tc.desc Test connect To CandidateConfig API functionality.
375         * @tc.type Function
376         * @tc.level Level 2
377         */
378        it('SUB_Communication_WiFi_XTS_CandidateNetWork_0006', 0, async function (done) {
379            let wifiDeviceConfig = {
380                "ssid": "HONOR 3000",
381                "bssid": "22:9b:e6:48:1f:5c",
382                "preSharedKey": "12345678",
383                "isHiddenSsid": false,
384                "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_PSK,
385            };
386            await wifiMg.addCandidateConfig(wifiDeviceConfig)
387                .then(netWorkId => {
388                    console.info("[wifi_test]add CandidateConfig promise : " + JSON.stringify(netWorkId));
389                    expect(true).assertEqual(netWorkId != -1);
390                }).catch((error) => {
391                    console.error('[wifi_test]add CandidateConfig promise failed -> ' + JSON.stringify(error));
392                    expect().assertFail();
393                });
394            let getCandidateResult = wifiMg.getCandidateConfigs();
395            console.info("[wifi_test]wifi get  CandidateConfigs result : " + JSON.stringify(getCandidateResult));
396            let connectToCandidateResult = wifiMg.connectToCandidateConfig(getCandidateResult[0].netId);
397            await sleep(3000);
398            await wifiMg.getLinkedInfo()
399                .then((result) => {
400                    console.info("[wifi_test]get wifi link [promise] -> " + JSON.stringify(result));
401                    done();
402                }).catch((error) => {
403                    console.info("[wifi_test]promise then error." + JSON.stringify(error));
404                    expect().assertFail();
405                });
406            let getCandidateResult1 = wifiMg.getCandidateConfigs();
407            console.info("[wifi_test]wifi get CandidateConfigs result1 : " + JSON.stringify(getCandidateResult1));
408            var networkId = getCandidateResult1[0].netId;
409            console.info("[wifi_test]wifi get networkId result : " + JSON.stringify(networkId));
410            await wifiMg.removeCandidateConfig(networkId)
411                .then(ret => {
412                    let getconfig1 = wifiMg.getCandidateConfigs();
413                    console.info("[wifi_test]wifi get CandidateConfigs result : " + JSON.stringify(getconfig1));
414                    console.info("[wifi_test]wifi  getconfig.length result : " + JSON.stringify(getconfig1.length));
415                    expect(true).assertEqual(getconfig1.length != null);
416                }).catch((error) => {
417                    console.error('[wifi_test]remove CandidateConfig promise failed -> ' + JSON.stringify(error));
418                    expect().assertFail();
419                });
420            done();
421        })
422    })
423}
424