• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1
2/*
3 * Copyright (C) 2022 Huawei Device Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *     http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17//import bluetooth from '@ohos.bluetooth';
18import bluetooth from '@ohos.bluetoothManager';
19import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from '@ohos/hypium'
20import { UiComponent, UiDriver, BY, Component, Driver, UiWindow, ON, MatchPattern, DisplayRotation, ResizeDirection, UiDirection, MouseButton, WindowMode, PointerMatrix, UIElementInfo, UIEventObserver } from '@ohos.UiTest'
21
22export default function btManagerAdvertError401Test() {
23describe('btManagerAdvertError401Test', function() {
24    let gattServer = null;
25    function sleep(delay) {
26        return new Promise(resovle => setTimeout(resovle, delay))
27    }
28
29    async function openPhone() {
30     try{
31         let drivers = Driver.create();
32         console.info('[bluetooth_js] bt driver create:'+ drivers);
33         await drivers.delayMs(1000);
34         await drivers.wakeUpDisplay();
35         await drivers.delayMs(5000);
36         await drivers.swipe(1500, 1000, 1500, 100);
37         await drivers.delayMs(10000);
38     } catch (error) {
39         console.info('[bluetooth_js] driver error info:'+ error);
40     }
41 }
42
43 async function clickTheWindow() {
44     try{
45         let driver = Driver.create();
46         console.info('[bluetooth_js] bt driver create:'+ driver);
47         await driver.delayMs(1000);
48         await driver.click(950, 2550);
49         await driver.delayMs(5000);
50         await driver.click(950, 2550);
51         await driver.delayMs(3000);
52     } catch (error) {
53         console.info('[bluetooth_js] driver error info:'+ error);
54     }
55 }
56
57    async function tryToEnableBt() {
58        let sta = bluetooth.getState();
59        switch(sta){
60            case 0:
61                console.info('[bluetooth_js] bt turn off:'+ JSON.stringify(sta));
62                bluetooth.enableBluetooth();
63                await clickTheWindow();
64                await sleep(10000);
65                break;
66            case 1:
67                console.info('[bluetooth_js] bt turning on:'+ JSON.stringify(sta));
68                await sleep(3000);
69                break;
70            case 2:
71                console.info('[bluetooth_js] bt turn on:'+ JSON.stringify(sta));
72                break;
73            case 3:
74                console.info('[bluetooth_js] bt turning off:'+ JSON.stringify(sta));
75                bluetooth.enableBluetooth();
76                await clickTheWindow();
77                await sleep(10000);
78                break;
79            default:
80                console.info('[bluetooth_js] enable success');
81        }
82    }
83    beforeAll(async function (done) {
84        console.info('beforeAll called')
85        await openPhone();
86        await tryToEnableBt()
87        gattServer = bluetooth.BLE.createGattServer();
88        done()
89    })
90    beforeEach(async function (done) {
91        console.info('beforeEach called')
92        await tryToEnableBt()
93        done()
94    })
95    afterEach(function () {
96        console.info('afterEach called')
97    })
98    afterAll(function () {
99        console.info('afterAll called')
100        gattServer.close();
101    })
102
103    /**
104     * @tc.number SUB_COMMUNICATION_BTMANAGER_GATTADVERT_ERROR_3000
105     * @tc.name testStartAdvertising
106     * @tc.desc Test api 401 - parameters setting is null.
107     * @tc.type Function
108     * @tc.level Level 0
109     */
110    it('SUB_COMMUNICATION_BTMANAGER_GATTADVERT_ERROR_3000', 0, async function (done) {
111          let manufactureValueBuffer = new Uint8Array(4);
112          manufactureValueBuffer[0] = 1;
113          manufactureValueBuffer[1] = 2;
114          manufactureValueBuffer[2] = 3;
115          manufactureValueBuffer[3] = 4;
116          let serviceValueBuffer = new Uint8Array(4);
117          serviceValueBuffer[0] = 4;
118          serviceValueBuffer[1] = 6;
119          serviceValueBuffer[2] = 7;
120          serviceValueBuffer[3] = 8;
121          let advData={
122               serviceUuids:["00001888-0000-1000-8000-00805f9b34fb"],
123               manufactureData:[{
124                    manufactureId:4567,
125                    manufactureValue:manufactureValueBuffer.buffer
126               }],
127               serviceData:[{
128                    serviceUuid:"00001888-0000-1000-8000-00805f9b34fb",
129                    serviceValue:serviceValueBuffer.buffer
130               }],
131          }
132          let advResponse ={
133               serviceUuids:["00001889-0000-1000-8000-00805f9b34fb"],
134               manufactureData:[{
135                    manufactureId:1789,
136                    manufactureValue:manufactureValueBuffer.buffer
137               }],
138               serviceData:[{
139                    serviceUuid:"00001889-0000-1000-8000-00805f9b34fb",
140                    serviceValue:serviceValueBuffer.buffer
141               }],
142          }
143          try {
144               gattServer.startAdvertising(advData,advResponse);
145               gattServer.stopAdvertising();
146               expect(true).assertFalse();
147          }catch(error) {
148               console.error('[bluetooth_js]startAdvertising30 error.code:'+JSON.stringify(error.code)+
149                   'error.message:'+JSON.stringify(error.message));
150               expect(error.code).assertEqual('401');
151          }
152          done();
153     })
154
155    /**
156     * @tc.number SUB_COMMUNICATION_BTMANAGER_GATTADVERT_ERROR_3100
157     * @tc.name testStartAdvertising
158     * @tc.desc Test api 401 - parameters setting is error type.
159     * @tc.type Function
160     * @tc.level Level 2
161     */
162    it('SUB_COMMUNICATION_BTMANAGER_GATTADVERT_ERROR_3100', 0, async function (done) {
163          let manufactureValueBuffer = new Uint8Array(4);
164          manufactureValueBuffer[0] = 1;
165          manufactureValueBuffer[1] = 2;
166          manufactureValueBuffer[2] = 3;
167          manufactureValueBuffer[3] = 4;
168          let serviceValueBuffer = new Uint8Array(4);
169          serviceValueBuffer[0] = 4;
170          serviceValueBuffer[1] = 6;
171          serviceValueBuffer[2] = 7;
172          serviceValueBuffer[3] = 8;
173          let advData={
174               serviceUuids:["00001888-0000-1000-8000-00805f9b34fb"],
175               manufactureData:[{
176                    manufactureId:4567,
177                    manufactureValue:manufactureValueBuffer.buffer
178               }],
179               serviceData:[{
180                    serviceUuid:"00001888-0000-1000-8000-00805f9b34fb",
181                    serviceValue:serviceValueBuffer.buffer
182               }],
183          }
184          let advResponse ={
185               serviceUuids:["00001889-0000-1000-8000-00805f9b34fb"],
186               manufactureData:[{
187                    manufactureId:1789,
188                    manufactureValue:manufactureValueBuffer.buffer
189               }],
190               serviceData:[{
191                    serviceUuid:"00001889-0000-1000-8000-00805f9b34fb",
192                    serviceValue:serviceValueBuffer.buffer
193               }],
194          }
195          try {
196               gattServer.startAdvertising(null,advData,advResponse);
197               gattServer.stopAdvertising();
198               expect(true).assertFalse();
199          }catch(error) {
200               console.error('[bluetooth_js]startAdvertising31 error.code:'+JSON.stringify(error.code)+
201                   'error.message:'+JSON.stringify(error.message));
202               expect(error.code).assertEqual('401');
203          }
204          done();
205     })
206
207    /**
208     * @tc.number SUB_COMMUNICATION_BTMANAGER_GATTADVERT_ERROR_3200
209     * @tc.name testStartAdvertising
210     * @tc.desc Test api 401 - interval of setting is error type.
211     * @tc.type Function
212     * @tc.level Level 2
213     */
214    it('SUB_COMMUNICATION_BTMANAGER_GATTADVERT_ERROR_3200', 0, async function (done) {
215          let manufactureValueBuffer = new Uint8Array(4);
216          manufactureValueBuffer[0] = 1;
217          manufactureValueBuffer[1] = 2;
218          manufactureValueBuffer[2] = 3;
219          manufactureValueBuffer[3] = 4;
220          let serviceValueBuffer = new Uint8Array(4);
221          serviceValueBuffer[0] = 4;
222          serviceValueBuffer[1] = 6;
223          serviceValueBuffer[2] = 7;
224          serviceValueBuffer[3] = 8;
225          let setting={
226               interval:'sss',
227               txPower:-10,
228               connectable:true,
229          }
230          let advData={
231               serviceUuids:["00001888-0000-1000-8000-00805f9b34fb"],
232               manufactureData:[{
233                    manufactureId:4567,
234                    manufactureValue:manufactureValueBuffer.buffer
235               }],
236               serviceData:[{
237                    serviceUuid:"00001888-0000-1000-8000-00805f9b34fb",
238                    serviceValue:serviceValueBuffer.buffer
239               }],
240          }
241          try {
242               gattServer.startAdvertising(setting,advData);
243               gattServer.stopAdvertising();
244               expect(true).assertFalse();
245          }catch(error) {
246               console.error(`[bluetooth_js]startAdvertising32 failed, code is ${error.code},
247                   message is ${error.message}`);
248               expect(error.code).assertEqual('401');
249          }
250          done();
251     })
252
253    /**
254     * @tc.number SUB_COMMUNICATION_BTMANAGER_GATTADVERT_ERROR_3300
255     * @tc.name testStartAdvertising
256     * @tc.desc Test api 401 - txPower of setting is error type.
257     * @tc.type Function
258     * @tc.level Level 2
259     */
260     it('SUB_COMMUNICATION_BTMANAGER_GATTADVERT_ERROR_3300', 0, async function (done) {
261          let manufactureValueBuffer = new Uint8Array(4);
262          manufactureValueBuffer[0] = 1;
263          manufactureValueBuffer[1] = 2;
264          manufactureValueBuffer[2] = 3;
265          manufactureValueBuffer[3] = 4;
266          let serviceValueBuffer = new Uint8Array(4);
267          serviceValueBuffer[0] = 4;
268          serviceValueBuffer[1] = 6;
269          serviceValueBuffer[2] = 7;
270          serviceValueBuffer[3] = 8;
271          let setting={
272               interval:10385,
273               txPower:'ttt',
274               connectable:true,
275          }
276          let advData={
277               serviceUuids:["00001888-0000-1000-8000-00805f9b34fb"],
278               manufactureData:[{
279                    manufactureId:4567,
280                    manufactureValue:manufactureValueBuffer.buffer
281               }],
282               serviceData:[{
283                    serviceUuid:"00001888-0000-1000-8000-00805f9b34fb",
284                    serviceValue:serviceValueBuffer.buffer
285               }],
286          }
287          try {
288               gattServer.startAdvertising(setting,advData);
289               gattServer.stopAdvertising();
290               expect(true).assertFalse();
291          }catch(error) {
292               console.error(`[bluetooth_js]startAdvertising33 failed, code is ${error.code},
293                   message is ${error.message}`);
294               expect(error.code).assertEqual('401');
295          }
296          done();
297     })
298
299    /**
300     * @tc.number SUB_COMMUNICATION_BTMANAGER_GATTADVERT_ERROR_3400
301     * @tc.name testStartAdvertising
302     * @tc.desc Test api 401 - connectable of setting is error type.
303     * @tc.type Function
304     * @tc.level Level 2
305     */
306     it('SUB_COMMUNICATION_BTMANAGER_GATTADVERT_ERROR_3400', 0, async function (done) {
307          let manufactureValueBuffer = new Uint8Array(4);
308          manufactureValueBuffer[0] = 1;
309          manufactureValueBuffer[1] = 2;
310          manufactureValueBuffer[2] = 3;
311          manufactureValueBuffer[3] = 4;
312          let serviceValueBuffer = new Uint8Array(4);
313          serviceValueBuffer[0] = 4;
314          serviceValueBuffer[1] = 6;
315          serviceValueBuffer[2] = 7;
316          serviceValueBuffer[3] = 8;
317          let setting={
318               interval:10385,
319               txPower:-10,
320               connectable:123123,
321          }
322          let advData={
323               serviceUuids:["00001888-0000-1000-8000-00805f9b34fb"],
324               manufactureData:[{
325                    manufactureId:4567,
326                    manufactureValue:manufactureValueBuffer.buffer
327               }],
328               serviceData:[{
329                    serviceUuid:"00001888-0000-1000-8000-00805f9b34fb",
330                    serviceValue:serviceValueBuffer.buffer
331               }],
332          }
333          try {
334               gattServer.startAdvertising(setting,advData);
335               gattServer.stopAdvertising();
336               expect(true).assertFalse();
337          }catch(error) {
338               console.error(`[bluetooth_js]startAdvertising34 failed, code is ${error.code},
339                   message is ${error.message}`);
340               expect(error.code).assertEqual('401');
341          }
342          done();
343     })
344
345    /**
346     * @tc.number SUB_COMMUNICATION_BTMANAGER_GATTADVERT_ERROR_3500
347     * @tc.name testStartAdvertising
348     * @tc.desc Test api 401 - parameters advData is null.
349     * @tc.type Function
350     * @tc.level Level 3
351     */
352    it('SUB_COMMUNICATION_BTMANAGER_GATTADVERT_ERROR_3500', 0, async function (done) {
353          let manufactureValueBuffer = new Uint8Array(4);
354          manufactureValueBuffer[0] = 1;
355          manufactureValueBuffer[1] = 2;
356          manufactureValueBuffer[2] = 3;
357          manufactureValueBuffer[3] = 4;
358          let serviceValueBuffer = new Uint8Array(4);
359          serviceValueBuffer[0] = 4;
360          serviceValueBuffer[1] = 6;
361          serviceValueBuffer[2] = 7;
362          serviceValueBuffer[3] = 8;
363          let setting={
364               interval:10385,
365               txPower:-10,
366               connectable:true,
367          }
368          try {
369               gattServer.startAdvertising(setting);
370               gattServer.stopAdvertising();
371               expect(true).assertFalse();
372          }catch(error) {
373               console.error(`[bluetooth_js]startAdvertising35 failed, code is ${error.code},
374                  message is ${error.message}`);
375               expect(error.code).assertEqual('401');
376          }
377          done();
378     })
379
380    /**
381     * @tc.number SUB_COMMUNICATION_BTMANAGER_GATTADVERT_ERROR_3600
382     * @tc.name testStartAdvertising
383     * @tc.desc Test api 401 - serviceUuids of advData is null.
384     * @tc.type Function
385     * @tc.level Level 3
386     */
387    it('SUB_COMMUNICATION_BTMANAGER_GATTADVERT_ERROR_3600', 0, async function (done) {
388          let manufactureValueBuffer = new Uint8Array(4);
389          manufactureValueBuffer[0] = 1;
390          manufactureValueBuffer[1] = 2;
391          manufactureValueBuffer[2] = 3;
392          manufactureValueBuffer[3] = 4;
393          let serviceValueBuffer = new Uint8Array(4);
394          serviceValueBuffer[0] = 4;
395          serviceValueBuffer[1] = 6;
396          serviceValueBuffer[2] = 7;
397          serviceValueBuffer[3] = 8;
398          let setting={
399               interval:10385,
400               txPower:-10,
401               connectable:true,
402          }
403          let advData={
404               manufactureData:[{
405                    manufactureId:4567,
406                    manufactureValue:manufactureValueBuffer.buffer
407               }],
408               serviceData:[{
409                    serviceUuid:"00001888-0000-1000-8000-00805f9b34fb",
410                    serviceValue:serviceValueBuffer.buffer
411               }],
412          }
413          try {
414               gattServer.startAdvertising(setting,advData);
415               gattServer.stopAdvertising();
416               expect(true).assertFalse();
417          }catch(error) {
418               console.error(`[bluetooth_js]startAdvertising36 failed, code is ${error.code},
419                  message is ${error.message}`);
420               expect(error.code).assertEqual('401');
421          }
422          done();
423     })
424
425    /**
426     * @tc.number SUB_COMMUNICATION_BTMANAGER_GATTADVERT_ERROR_3700
427     * @tc.name testStartAdvertising
428     * @tc.desc Test api 401 - manufactureData of advData is null.
429     * @tc.type Function
430     * @tc.level Level 3
431     */
432    it('SUB_COMMUNICATION_BTMANAGER_GATTADVERT_ERROR_3700', 0, async function (done) {
433          let manufactureValueBuffer = new Uint8Array(4);
434          manufactureValueBuffer[0] = 1;
435          manufactureValueBuffer[1] = 2;
436          manufactureValueBuffer[2] = 3;
437          manufactureValueBuffer[3] = 4;
438          let serviceValueBuffer = new Uint8Array(4);
439          serviceValueBuffer[0] = 4;
440          serviceValueBuffer[1] = 6;
441          serviceValueBuffer[2] = 7;
442          serviceValueBuffer[3] = 8;
443          let setting={
444               interval:10385,
445               txPower:-10,
446               connectable:true,
447          }
448          let advData={
449               serviceUuids:["00001888-0000-1000-8000-00805f9b34fb"],
450               serviceData:[{
451                    serviceUuid:"00001888-0000-1000-8000-00805f9b34fb",
452                    serviceValue:serviceValueBuffer.buffer
453               }],
454          }
455          try {
456               gattServer.startAdvertising(setting,advData);
457               gattServer.stopAdvertising();
458               expect(true).assertFalse();
459          }catch(error) {
460               console.error(`[bluetooth_js]startAdvertising37 failed, code is ${error.code},
461                  message is ${error.message}`);
462               expect(error.code).assertEqual('401');
463          }
464          done();
465     })
466
467    /**
468     * @tc.number SUB_COMMUNICATION_BTMANAGER_GATTADVERT_ERROR_3800
469     * @tc.name testStartAdvertising
470     * @tc.desc Test api 401 - serviceData of advData is null.
471     * @tc.type Function
472     * @tc.level Level 3
473     */
474    it('SUB_COMMUNICATION_BTMANAGER_GATTADVERT_ERROR_3800', 0, async function (done) {
475          let manufactureValueBuffer = new Uint8Array(4);
476          manufactureValueBuffer[0] = 1;
477          manufactureValueBuffer[1] = 2;
478          manufactureValueBuffer[2] = 3;
479          manufactureValueBuffer[3] = 4;
480          let serviceValueBuffer = new Uint8Array(4);
481          serviceValueBuffer[0] = 4;
482          serviceValueBuffer[1] = 6;
483          serviceValueBuffer[2] = 7;
484          serviceValueBuffer[3] = 8;
485          let setting={
486               interval:10385,
487               txPower:-10,
488               connectable:true,
489          }
490          let advData={
491               serviceUuids:["00001888-0000-1000-8000-00805f9b34fb"],
492               manufactureData:[{
493                    manufactureId:1789,
494                    manufactureValue:manufactureValueBuffer.buffer
495               }],
496          }
497          try {
498               gattServer.startAdvertising(setting,advData);
499               gattServer.stopAdvertising();
500               expect(true).assertFalse();
501          }catch(error) {
502               console.error(`[bluetooth_js]startAdvertising38 failed, code is ${error.code},
503                  message is ${error.message}`);
504               expect(error.code).assertEqual('401');
505          }
506          done();
507     })
508
509    /**
510     * @tc.number SUB_COMMUNICATION_BTMANAGER_GATTADVERT_ERROR_3900
511     * @tc.name testStartAdvertising
512     * @tc.desc Test api 401 - manufactureValue of advData is error type.
513     * @tc.type Function
514     * @tc.level Level 3
515     */
516     it('SUB_COMMUNICATION_BTMANAGER_GATTADVERT_ERROR_3900', 0, async function (done) {
517          let serviceValueBuffer = new Uint8Array(4);
518          serviceValueBuffer[0] = 4;
519          serviceValueBuffer[1] = 6;
520          serviceValueBuffer[2] = 7;
521          serviceValueBuffer[3] = 8;
522          let setting={
523               interval:10385,
524               txPower:-10,
525               connectable:true,
526          }
527          let advData={
528               serviceUuids:["00001888-0000-1000-8000-00805f9b34fb"],
529               manufactureData:[{
530                    manufactureId:1789,
531                    manufactureValue:123
532               }],
533               serviceData:[{
534                    serviceUuid:"00001888-0000-1000-8000-00805f9b34fb",
535                    serviceValue:serviceValueBuffer.buffer
536               }],
537          }
538          try {
539               gattServer.startAdvertising(setting,advData);
540               gattServer.stopAdvertising();
541               expect(true).assertFalse();
542          }catch(error) {
543               console.error(`[bluetooth_js]startAdvertising39 failed, code is ${error.code},
544                  message is ${error.message}`);
545               expect(error.code).assertEqual('401');
546          }
547          done();
548     })
549
550    /**
551     * @tc.number SUB_COMMUNICATION_BTMANAGER_GATTADVERT_ERROR_4000
552     * @tc.name testStartAdvertising
553     * @tc.desc Test api 401 - serviceValue of advData is error type.
554     * @tc.type Function
555     * @tc.level Level 3
556     */
557     it('SUB_COMMUNICATION_BTMANAGER_GATTADVERT_ERROR_4000', 0, async function (done) {
558          let manufactureValueBuffer = new Uint8Array(4);
559          manufactureValueBuffer[0] = 1;
560          manufactureValueBuffer[1] = 2;
561          manufactureValueBuffer[2] = 3;
562          manufactureValueBuffer[3] = 4;
563          let setting={
564               interval:10385,
565               txPower:-10,
566               connectable:true,
567          }
568          let advData={
569               serviceUuids:["00001888-0000-1000-8000-00805f9b34fb"],
570               manufactureData:[{
571                    manufactureId:1789,
572                    manufactureValue:manufactureValueBuffer.buffer
573               }],
574               serviceData:[{
575                    serviceUuid:"00001888-0000-1000-8000-00805f9b34fb",
576                    serviceValue:123123
577               }],
578          }
579          try {
580               gattServer.startAdvertising(setting,advData);
581               gattServer.stopAdvertising();
582               expect(true).assertFalse();
583          }catch(error) {
584               console.error(`[bluetooth_js]startAdvertising40 failed, code is ${error.code},
585                  message is ${error.message}`);
586               expect(error.code).assertEqual('401');
587          }
588          done();
589     })
590
591
592
593
594
595})
596
597}
598