• 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 wifiMg from '@ohos.wifiManager'
20
21function sleep(delay) {
22    return new Promise(resovle => setTimeout(resovle, delay))
23}
24
25function checkWifiPowerOn(){
26    console.info("[wifi_test]wifi status:" + wifiMg.isWifiActive());
27}
28
29function resolveIP(ip) {
30    return (ip>>24 & 0xFF) + "." + (ip>>16 & 0xFF) + "." + (ip>>8 & 0xFF) + "." + (ip & 0xFF);
31}
32async function checkSavedNet()
33{
34    let getCandidate = wifiMg.getCandidateConfigs();
35    if(getCandidate.length>0)
36    {
37        for(let i=0;getCandidate.length;i++)
38        {
39            await wifiMg.removeCandidateConfig(getCandidate[i].netId)
40                .then(ret => {
41                    console.info("[wifi_test]wifi remove CandidateConfigs result : " + JSON.stringify(ret));
42                }).catch((error) => {
43                    console.error('[wifi_test]remove CandidateConfig promise failed -> ' + JSON.stringify(error));
44                    expect().assertFail();
45                });
46        }
47    }
48}
49
50async function clickTest() {
51      let driver = Driver.create();
52      await driver.delayMs(1500);
53      try {
54          let button = await driver.findComponent(ON.text("取消"));
55          await button.click();
56          await driver.delayMs(1500);
57      } catch (err) {
58          console.info('err info: ' + err);
59      }
60}
61
62async function clickRequestPermission() {
63    try {
64        console.info('[wifi_js] clickRequestPermission start');
65        let driver = Driver.create();
66        await driver.delayMs(3000);
67        let button = await driver.findComponent(ON.text("本次使用", MatchPattern.CONTAINS));
68        await button.click();
69        await driver.delayMs(3000);
70        console.info('[wifi_js] clickRequestPermission end');
71    } catch (err) {
72        console.info('[wifi_js] clickRequestPermission failed');
73    }
74}
75
76export default function actsWifiManagerCandidateNetWorkTest() {
77    describe('actsWifiManagerCandidateNetWorkTest', function () {
78        beforeAll(async function (done) {
79            console.info('beforeAll case');
80            await clickRequestPermission();
81            done();
82        })
83
84        beforeEach(function () {
85            checkWifiPowerOn();
86        })
87        afterEach(async function (done) {
88            await clickTest();
89            done();
90        })
91
92        /**
93         * @tc.number SUB_Communication_WiFi_XTS_CandidateNetWork_0001
94         * @tc.name testAddCandidateConfig
95         * @tc.desc Test add OPEN and WEP CandidateConfig Promise API functionality.
96         * @tc.type Function
97         * @tc.size MediumTest
98         * @tc.level Level 2
99         */
100        it('SUB_Communication_WiFi_XTS_CandidateNetWork_0001', 0, async function (done) {
101            let wifiDeviceConfig = {
102                "ssid": "TEST_OPEN",
103                "bssid": "22:9b:e6:48:1f:5c",
104                "preSharedKey": "",
105                "isHiddenSsid": false,
106                "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_OPEN,
107            };
108            await wifiMg.addCandidateConfig(wifiDeviceConfig)
109                .then(netWorkId => {
110                    console.info("[wifi_test]add OPEN CandidateConfig promise : " + JSON.stringify(netWorkId));
111                    expect(true).assertEqual(netWorkId != -1);
112                }).catch((error) => {
113                    console.error('[wifi_test]add OPEN CandidateConfig promise failed -> ' + JSON.stringify(error));
114                    expect().assertFail();
115                });
116            let getCandidateResult = wifiMg.getCandidateConfigs();
117            console.info("[wifi_test]wifi get OPEN CandidateConfigs result : " + JSON.stringify(getCandidateResult));
118            var networkId = getCandidateResult[0].netId;
119            console.info("[wifi_test]wifi get networkId result : " + JSON.stringify(networkId));
120            await wifiMg.removeCandidateConfig(networkId)
121                .then(ret => {
122                    let getCandidate = wifiMg.getCandidateConfigs();
123                    console.info("[wifi_test]wifi get CandidateConfigs result : " + JSON.stringify(getCandidate));
124                    console.info("[wifi_test]wifi  getconfig.length result : " + JSON.stringify(getCandidate.length));
125                    expect(true).assertEqual(getCandidate.length == 0);
126                }).catch((error) => {
127                    console.error('[wifi_test]remove CandidateConfig promise failed ?' + JSON.stringify(error));
128                    expect().assertFail();
129                });
130            let wifiDeviceConfig1 = {
131                "ssid": "TEST_WEP",
132                "bssid": "22:9b:e6:48:1f:5c",
133                "preSharedKey": "ABCDEF1234",
134                "isHiddenSsid": false,
135                "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_WEP,
136            };
137            await wifiMg.addCandidateConfig(wifiDeviceConfig1)
138                .then(netWorkId => {
139                    console.info("[wifi_test]add WEP CandidateConfig promise : " + JSON.stringify(netWorkId));
140                    expect(true).assertEqual(netWorkId = -1);
141                }).catch((error) => {
142                    console.error('[wifi_test]add WEP CandidateConfig promise failed -> ' + JSON.stringify(error));
143                    expect(true).assertEqual( (JSON.stringify(error)) !=null);
144                });
145            let getCandidateResults = wifiMg.getCandidateConfigs();
146            console.info("[wifi_test]wifi get WEP CandidateConfigs result : " + JSON.stringify(getCandidateResults));
147
148            let WIFI_SEC_TYPE_INVALID = wifiMg.WifiSecurityType.WIFI_SEC_TYPE_INVALID;
149            console.info("[wifi_test]WIFI_SEC_TYPE_INVALID : " + JSON.stringify(WIFI_SEC_TYPE_INVALID));
150            expect(true).assertEqual( WIFI_SEC_TYPE_INVALID == 0);
151            let WIFI_SEC_TYPE_EAP = wifiMg.WifiSecurityType.WIFI_SEC_TYPE_EAP;
152            console.info("[wifi_test]WIFI_SEC_TYPE_EAP : " + JSON.stringify(WIFI_SEC_TYPE_EAP));
153            expect(true).assertEqual( WIFI_SEC_TYPE_EAP == 5);
154            let WIFI_SEC_TYPE_EAP_SUITE_B = wifiMg.WifiSecurityType.WIFI_SEC_TYPE_EAP_SUITE_B;
155            console.info("[wifi_test]WIFI_SEC_TYPE_EAP_SUITE_B : " + JSON.stringify(WIFI_SEC_TYPE_EAP_SUITE_B));
156            expect(true).assertEqual( WIFI_SEC_TYPE_EAP_SUITE_B == 6);
157            let WIFI_SEC_TYPE_OWE = wifiMg.WifiSecurityType.WIFI_SEC_TYPE_OWE;
158            console.info("[wifi_test]WIFI_SEC_TYPE_OWE : " + JSON.stringify(WIFI_SEC_TYPE_OWE));
159            expect(true).assertEqual( WIFI_SEC_TYPE_OWE == 7);
160            let WIFI_SEC_TYPE_WAPI_CERT = wifiMg.WifiSecurityType.WIFI_SEC_TYPE_WAPI_CERT;
161            console.info("[wifi_test]WIFI_SEC_TYPE_WAPI_CERT : " + JSON.stringify(WIFI_SEC_TYPE_WAPI_CERT));
162            expect(true).assertEqual( WIFI_SEC_TYPE_WAPI_CERT == 8);
163            let WIFI_SEC_TYPE_WAPI_PSK = wifiMg.WifiSecurityType.WIFI_SEC_TYPE_WAPI_PSK;
164            console.info("[wifi_test]WIFI_SEC_TYPE_WAPI_CERT : " + JSON.stringify(WIFI_SEC_TYPE_WAPI_PSK));
165            expect(true).assertEqual( WIFI_SEC_TYPE_WAPI_PSK == 9);
166            done();
167        })
168
169        /**
170         * @tc.number SUB_Communication_WiFi_XTS_CandidateNetWork_0002
171         * @tc.name testAddCandidateConfig
172         * @tc.desc Test add PSK CandidateConfig and removeCandidateConfig Promise API functionality.
173         * @tc.type Function
174         * @tc.size MediumTest
175         * @tc.level Level 2
176         */
177        it('SUB_Communication_WiFi_XTS_CandidateNetWork_0002', 0, async function (done) {
178            let EapMethod = {
179                "EAP_NONE": 0,
180                "EAP_PEAP": 1,
181                "EAP_TLS": 2,
182                "EAP_TTLS": 3,
183                "EAP_PWD": 4,
184                "EAP_SIM": 5,
185                "EAP_AKA": 6,
186                "EAP_AKA_PRIME": 7,
187                "EAP_UNAUTH_TLS": 8,
188            };
189            let Phase2Method = {
190                "PHASE2_NONE": 0,
191                "PHASE2_PAP": 1,
192                "PHASE2_MSCHAP": 2,
193                "PHASE2_MSCHAPV2": 3,
194                "PHASE2_GTC": 4,
195                "PHASE2_SIM": 5,
196                "PHASE2_AKA": 6,
197                "PHASE2_AKA_PRIME": 7,
198            };
199            let WifiEapConfig = {
200                "eapMethod": wifiMg.EapMethod.EAP_NONE,
201                "phase2Method": wifiMg.Phase2Method.PHASE2_NONE,
202                "identity": "aaa",
203                "anonymousIdentity": "bbb",
204                "password": "12345678",
205                "caCertAlias": "ddd",
206                "caPath": "eee",
207                "clientCertAlias": "fff",
208                "certEntry": new Uint8Array(),
209                "certPassword": "12345678",
210                "altSubjectMatch": "ggg",
211                "domainSuffixMatch": "hhh",
212                "realm": "iii",
213                "plmn": "jjj",
214                "eapSubId": "kkk",
215            };
216            let wifiDeviceConfig = {
217                "ssid": "TEST_PSK",
218                "bssid": "22:9b:e6:48:1f:5c",
219                "bssidType" : 1,
220                "preSharedKey": "12345678",
221                "isHiddenSsid": false,
222                "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_PSK,
223                "netId": -1,
224                "ipType": 1,
225                "creatorUid": 7,
226                "disableReason": 0,
227                "randomMacType": 0,
228                "randomMacAddr": "11:22:33:44:55:66",
229                "staticIp": {"ipAddress": 1284752956,"gateway": 1284752936},
230                "eapConfig": wifiMg.WifiEapConfig,
231            };
232            await wifiMg.addCandidateConfig(wifiDeviceConfig)
233                .then(netWorkId => {
234                    console.info("[wifi_test]add PSK CandidateConfig promise : " + JSON.stringify(netWorkId));
235                    expect(true).assertEqual(netWorkId != -1);
236                }).catch((error) => {
237                    console.error('[wifi_test]add PSK CandidateConfig promise failed -> ' + JSON.stringify(error));
238                    expect().assertFail();
239                });
240            let getCandidateResult = wifiMg.getCandidateConfigs();
241            console.info("[wifi_test]wifi get PSK CandidateConfigs result : " + JSON.stringify(getCandidateResult));
242            var networkId = getCandidateResult[0].netId;
243            console.info("[wifi_test]wifi get networkId result : " + JSON.stringify(networkId));
244            await wifiMg.removeCandidateConfig(networkId)
245                .then(ret => {
246                    let getCandidate = wifiMg.getCandidateConfigs();
247                    console.info("[wifi_test]wifi get CandidateConfigs result : " + JSON.stringify(getCandidate));
248                    console.info("[wifi_test]wifi  getconfig.length result : " + JSON.stringify(getCandidate.length));
249                    expect(true).assertEqual(getCandidate.length == 0);
250                }).catch((error) => {
251                    console.error('[wifi_test]remove CandidateConfig promise failed ?' + JSON.stringify(error));
252                    expect().assertFail();
253                });
254            done();
255        })
256
257        /**
258         * @tc.number SUB_Communication_WiFi_XTS_CandidateNetWork_0003
259         * @tc.name testAddCandidateConfig
260         * @tc.desc Test add SAE CandidateConfig Promise API functionality.
261         * @tc.type Function
262         * @tc.size MediumTest
263         * @tc.level Level 2
264         */
265        it('SUB_Communication_WiFi_XTS_CandidateNetWork_0003', 0, async function (done) {
266            let wifiDeviceConfig = {
267                "ssid": "TEST_SAE",
268                "bssid": "22:9b:e6:48:1f:5c",
269                "preSharedKey": "12345678",
270                "isHiddenSsid": false,
271                "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_SAE,
272            };
273            await wifiMg.addCandidateConfig(wifiDeviceConfig)
274                .then(netWorkId => {
275                    console.info("[wifi_test]add SAE CandidateConfig promise : " + JSON.stringify(netWorkId));
276                    expect(true).assertEqual(netWorkId != -1);
277                }).catch((error) => {
278                    console.error('[wifi_js]add SAE CandidateConfig promise failed -> ' + JSON.stringify(error));
279                });
280            let getCandidateResult = wifiMg.getCandidateConfigs();
281            console.info("[wifi_test]wifi get SAE CandidateConfigs result : " + JSON.stringify(getCandidateResult));
282            expect(true).assertEqual(getCandidateResult.length>0);
283            var networkId = getCandidateResult[0].netId;
284            console.info("[wifi_test]wifi get networkId result : " + JSON.stringify(networkId));
285            await wifiMg.removeCandidateConfig(networkId)
286                .then(ret => {
287                    let getconfig1 = wifiMg.getCandidateConfigs();
288                    console.info("[wifi_test]wifi get CandidateConfigs result : " + JSON.stringify(getconfig1));
289                    console.info("[wifi_test]wifi  getconfig.length result : " + JSON.stringify(getconfig1.length));
290                    expect(true).assertEqual(getconfig1.length == 0);
291                }).catch((error) => {
292                    console.error('[wifi_test]remove CandidateConfig promise failed -> ' + JSON.stringify(error));
293                    expect().assertFail();
294                });
295            done();
296        })
297
298        /**
299         * @tc.number SUB_Communication_WiFi_XTS_CandidateNetWork_0004
300         * @tc.name testAddCandidateConfig
301         * @tc.desc Test add MAX CandidateConfig and removeall CandidateConfig.
302         * @tc.type Function
303         * @tc.size MediumTest
304         * @tc.level Level 2
305         */
306        it('SUB_Communication_WiFi_XTS_CandidateNetWork_0004', 0, async function (done) {
307            let SSID = "TYPE_PSK"
308            for (let i = 0; i < 16; i++) {
309                SSID = "TYPE_PSK" + i
310                console.info("[wifi_test] get canshu result : ");
311                let wifiDeviceConfig = {
312                    "ssid": SSID,
313                    "bssid": "22:9b:e6:48:1f:5c",
314                    "preSharedKey": "12345678",
315                    "isHiddenSsid": false,
316                    "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_PSK,
317                };
318                console.info("[wifi_test]get wifiDeviceConfig ssid result : " + JSON.stringify(wifiDeviceConfig.ssid));
319                await wifiMg.addCandidateConfig(wifiDeviceConfig)
320                    .then(netWorkId => {
321                        console.info("[wifi_test]add 16th CandidateConfig promise : " + JSON.stringify(netWorkId));
322                        expect(true).assertEqual(netWorkId != -1);
323                    }).catch((error) => {
324                        console.error("[wifi_test]add 16th CandidateConfig promise failed "+ JSON.stringify(error));
325                        expect().assertFail();
326                    });
327            }
328            let wifiDeviceConfig1 = {
329                "ssid": "TYPE_17",
330                "bssid": "22:9b:e6:48:1f:5c",
331                "preSharedKey": "12345678",
332                "isHiddenSsid": false,
333                "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_PSK,
334            };
335            await wifiMg.addCandidateConfig(wifiDeviceConfig1)
336                .then(netWorkId => {
337                    console.info("[wifi_test]add 17th CandidateConfig promise : " + JSON.stringify(netWorkId));
338                    expect(true).assertEqual(netWorkId != -1);
339                }).catch((error) => {
340                    console.error(`[wifi_test]add 17th failed, code is ${error.code}, message is ${error.message}`);
341                    expect(true).assertEqual( (JSON.stringify(error.message)) !=null);
342                });
343            let getCandidateResult = wifiMg.getCandidateConfigs();
344            console.info("[wifi_test]wifi get 16 CandidateConfigs result : " + JSON.stringify(getCandidateResult.length));
345            for (let i = 0; i < 16; i++) {
346                var networkId = getCandidateResult[i].netId;
347                console.info("[wifi_test]wifi get networkId result : " + JSON.stringify(networkId));
348                await wifiMg.removeCandidateConfig(networkId)
349                    .then(ret => {
350                        let getconfig1 = wifiMg.getCandidateConfigs();
351                        console.info("[wifi_test] wifi get CandidateConfigs result : " + JSON.stringify(getconfig1));
352                        console.info("[wifi_test] wifi getconfiglength result : " + JSON.stringify(getconfig1.length));
353                    }).catch((error) => {
354                        console.error('[wifi_test]remove CandidateConfig promise failed -> ' + JSON.stringify(error));
355                    });
356            }
357            getCandidateResult = wifiMg.getCandidateConfigs();
358            expect(true).assertEqual(getCandidateResult.length==0);
359            done();
360        })
361
362        /**
363         * @tc.number SUB_Communication_WiFi_XTS_CandidateNetWork_0005
364         * @tc.name testAddCandidateConfig
365         * @tc.desc Test add CandidateConfig and removeCandidateConfig callback API functionality.
366         * @tc.type Function
367         * @tc.size MediumTest
368         * @tc.level Level 2
369         */
370        it('SUB_Communication_WiFi_XTS_CandidateNetWork_0005', 0, async function (done) {
371            let wapiPskType={
372                "WAPI_PSK_ASCII":0,
373                "WAPI_PSK_HEX":1,
374            }
375            let WifiWapiConfig ={
376                wapiPskType:wapiPskType.WAPI_PSK_ASCII,
377                wapiAsCert:"abc",
378                wapiUserCert:"1",
379            }
380            let wifiDeviceConfig = {
381                "ssid": "TEST_connect",
382                "bssid": "22:9b:e6:48:1f:5c",
383                "preSharedKey": "12345678",
384                "isHiddenSsid": false,
385                "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_PSK,
386                "wapiConfig":wifiMg.WifiWapiConfig,
387            }
388            function addCandidate() {
389                return new Promise((resolve, reject) => {
390                    wifiMg.addCandidateConfig(wifiDeviceConfig,
391                        (err, netWorkId) => {
392                            if (err) {
393                                console.info("[wifi_test]add CandidateConfig callback failed : " + JSON.stringify(err));
394                            }
395                            console.info("[wifi_test]addCandidateConfig callback result: " + JSON.stringify(netWorkId));
396                            expect(true).assertEqual(netWorkId != -1);
397                            resolve();
398                        });
399                });
400            }
401            await addCandidate();
402            let getCandidateResult = wifiMg.getCandidateConfigs();
403            console.info("[wifi_test] wifi getCandidateConfigs result : " + JSON.stringify(getCandidateResult));
404            var networkId = getCandidateResult[0].netId;
405            function removeCandidate() {
406                return new Promise((resolve, reject) => {
407                    wifiMg.removeCandidateConfig(networkId,
408                        (err, ret) => {
409                            if (err) {
410                                console.info("[wifi_test]removeCandidate callback failed : " + JSON.stringify(err));
411                            }
412                            let configs1 = wifiMg.getCandidateConfigs();
413                            console.info("[wifi_test] wifi get  CandidateConfigs result : " + JSON.stringify(configs1));
414                            console.info("[wifi_test] getconfig.length result : " + JSON.stringify(configs1.length));
415                            expect(true).assertEqual(configs1.length != null);
416                            resolve();
417                        });
418                });
419            }
420            await removeCandidate();
421            done();
422        })
423
424        /**
425         * @tc.number SUB_Communication_WiFi_XTS_CandidateNetWork_0006
426         * @tc.name testAddCandidateConfig
427         * @tc.desc Test connect To CandidateConfig API functionality.
428         * @tc.type Function
429         * @tc.size MediumTest
430         * @tc.level Level 2
431         */
432        it('SUB_Communication_WiFi_XTS_CandidateNetWork_0006', 0, async function (done) {
433            await checkSavedNet();
434            let wifiDeviceConfig = {
435                "ssid": "HONOR 3000",
436                "bssid": "22:9b:e6:48:1f:5c",
437                "preSharedKey": "12345678",
438                "isHiddenSsid": false,
439                "securityType": wifiMg.WifiSecurityType.WIFI_SEC_TYPE_PSK,
440            };
441            await wifiMg.addCandidateConfig(wifiDeviceConfig)
442                .then(netWorkId => {
443                    console.info("[wifi_test]add CandidateConfig promise : " + JSON.stringify(netWorkId));
444                    expect(true).assertEqual(netWorkId != -1);
445                }).catch((error) => {
446                    console.error('[wifi_test]add CandidateConfig promise failed -> ' + JSON.stringify(error));
447                    expect().assertFail();
448                });
449            let getCandidateResult = wifiMg.getCandidateConfigs();
450            console.info("[wifi_test]wifi get  CandidateConfigs result : " + JSON.stringify(getCandidateResult));
451            let connectToCandidateResult = wifiMg.connectToCandidateConfig(getCandidateResult[0].netId);
452            await sleep(3000);
453            await wifiMg.getLinkedInfo()
454                .then((result) => {
455                    console.info("[wifi_test]get wifi link [promise] -> " + JSON.stringify(result));
456                    done();
457                }).catch((error) => {
458                    console.info("[wifi_test]promise then error." + JSON.stringify(error));
459                    expect().assertFail();
460                });
461            let getCandidateResult1 = wifiMg.getCandidateConfigs();
462            console.info("[wifi_test]wifi get CandidateConfigs result1 : " + JSON.stringify(getCandidateResult1));
463            var networkId = getCandidateResult1[0].netId;
464            console.info("[wifi_test]wifi get networkId result : " + JSON.stringify(networkId));
465            await wifiMg.removeCandidateConfig(networkId)
466                .then(ret => {
467                    let getconfig1 = wifiMg.getCandidateConfigs();
468                    console.info("[wifi_test]wifi get CandidateConfigs result : " + JSON.stringify(getconfig1));
469                    console.info("[wifi_test]wifi  getconfig.length result : " + JSON.stringify(getconfig1.length));
470                    expect(true).assertEqual(getconfig1.length != null);
471                }).catch((error) => {
472                    console.error('[wifi_test]remove CandidateConfig promise failed -> ' + JSON.stringify(error));
473                    expect().assertFail();
474                });
475            done();
476        })
477
478    })
479}
480