• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (C) 2024 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 usbManager from '@ohos.usbManager'
17import deviceManager from '@ohos.driver.deviceManager'
18import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'
19
20export default function DeviceManagerNoPermissionJsTest(){
21describe("NoPermissionJsTest", function () {
22    const TAG = "[NoPermissionJsTest]";
23    const PERMISSION_DENIED_CODE = 201;
24    const TEST_DEVICE_ID = 0;
25    const TEST_DRIVER_UID = 'testDriverUid'
26    const TEST_FUNCTION = (data) => {
27        expect(data === null).assertTrue();
28        console.info("Test function is called");
29    };
30
31    let deviceNum = 0;
32    const isDeviceConnected = done => {
33        if (deviceNum > 0) {
34            console.info("Test USB device is connected");
35            return true;
36        }
37        console.info("Test USB device is not connected");
38        expect(true).assertTrue();
39        if (typeof(done) === 'function') {
40            done();
41        }
42        return false;
43    }
44
45    beforeAll(function () {
46        console.info('beforeAll called');
47        try {
48            const devicesList = usbManager.getDevices();
49            if (Array.isArray(devicesList)) {
50                deviceNum = devicesList.length;
51            }
52        } catch (err) {
53            console.error(TAG, `getDevices failed, message is ${err.message}`);
54        }
55    })
56
57    afterAll(function () {
58        console.info('afterAll called');
59    })
60
61    beforeEach(function () {
62        console.info('beforeEach called');
63    })
64
65    afterEach(function () {
66        console.info('afterEach called');
67    })
68
69    /*
70     * @tc.number     : SUB_Driver_Ext_DevManNoPermission_0100
71     * @tc.name       : testNoPermissionQueryDevices001
72     * @tc.desc       : verify permission of queryDevices
73     * @tc.size       : MediumTest
74     * @tc.type       : Function
75     * @tc.level      : Level 2
76     */
77    it('testNoPermissionQueryDevices001', 0, done => {
78        console.info('----------------------testNoPermissionQueryDevices001---------------------------');
79        if (!isDeviceConnected(done)) {
80            return;
81        }
82        try {
83            let devices = deviceManager.queryDevices(deviceManager.BusType.USB);
84            expect(devices === null).assertTrue();
85            done();
86        } catch (err) {
87            console.info(TAG, 'testNoPermissionQueryDevices001 catch err code: ', err.code, ', message: ', err.message);
88            expect(err.code).assertEqual(PERMISSION_DENIED_CODE);
89            done();
90        }
91    });
92
93    /*
94     * @tc.number     : SUB_Driver_Ext_DevManNoPermission_0200
95     * @tc.name       : testNoPermissionBindDevice001
96     * @tc.desc       : verify permission of bindDevice
97     * @tc.size       : MediumTest
98     * @tc.type       : Function
99     * @tc.level      : Level 2
100     */
101    it('testNoPermissionBindDevice001', 0, done => {
102        console.info('----------------------testNoPermissionBindDevice001---------------------------');
103        if (!isDeviceConnected(done)) {
104            return;
105        }
106        try {
107            deviceManager.bindDevice(TEST_DEVICE_ID, TEST_FUNCTION, TEST_FUNCTION);
108            done();
109        } catch (err) {
110            console.info(TAG, 'testNoPermissionBindDevice001 catch err code: ', err.code, ', message: ', err.message);
111            expect(err.code).assertEqual(PERMISSION_DENIED_CODE);
112            done();
113        }
114    });
115
116    /*
117     * @tc.number     : SUB_Driver_Ext_DevManNoPermission_0300
118     * @tc.name       : testNoPermissionBindDevice002
119     * @tc.desc       : verify permission of bindDevice
120     * @tc.size       : MediumTest
121     * @tc.type       : Function
122     * @tc.level      : Level 2
123     */
124    it('testNoPermissionBindDevice002', 0, async done => {
125        console.info('----------------------testNoPermissionBindDevice002---------------------------');
126        if (!isDeviceConnected(done)) {
127            return;
128        }
129        try {
130            await deviceManager.bindDevice(TEST_DEVICE_ID, TEST_FUNCTION);
131            done();
132        } catch (err) {
133            console.info(TAG, 'testNoPermissionBindDevice002 catch err code: ', err.code, ', message: ', err.message);
134            expect(err.code).assertEqual(PERMISSION_DENIED_CODE);
135            done();
136        }
137    });
138
139    /*
140     * @tc.number     : SUB_Driver_Ext_DevManNoPermission_0400
141     * @tc.name       : testNoPermissionBindDeviceDriver001
142     * @tc.desc       : verify permission of bindDeviceDriver
143     * @tc.size       : MediumTest
144     * @tc.type       : Function
145     * @tc.level      : Level 2
146     */
147    it('testNoPermissionBindDeviceDriver001', 0, done => {
148        console.info('----------------------testNoPermissionBindDeviceDriver001---------------------------');
149        if (!isDeviceConnected(done)) {
150            return;
151        }
152        try {
153            deviceManager.bindDeviceDriver(TEST_DEVICE_ID, TEST_FUNCTION, TEST_FUNCTION);
154            done();
155        } catch (err) {
156            console.info(TAG, 'testNoPermissionBindDeviceDriver001 catch err code: ',
157                err.code, ', message: ', err.message);
158            expect(err.code).assertEqual(PERMISSION_DENIED_CODE);
159            done();
160        }
161    });
162
163    /*
164     * @tc.number     : SUB_Driver_Ext_DevManNoPermission_0500
165     * @tc.name       : testNoPermissionBindDeviceDriver002
166     * @tc.desc       : verify permission of bindDeviceDriver
167     * @tc.size       : MediumTest
168     * @tc.type       : Function
169     * @tc.level      : Level 2
170     */
171    it('testNoPermissionBindDeviceDriver002', 0, async done => {
172        console.info('----------------------testNoPermissionBindDeviceDriver002---------------------------');
173        if (!isDeviceConnected(done)) {
174            return;
175        }
176        try {
177            await deviceManager.bindDeviceDriver(TEST_DEVICE_ID, TEST_FUNCTION);
178            done();
179        } catch (err) {
180            console.info(TAG, 'testNoPermissionBindDeviceDriver002 catch err code: ',
181                err.code, ', message: ', err.message);
182            expect(err.code).assertEqual(PERMISSION_DENIED_CODE);
183            done();
184        }
185    });
186
187    /*
188     * @tc.number     : SUB_Driver_Ext_DevManNoPermission_0600
189     * @tc.name       : testNoPermissionUnbindDevice001
190     * @tc.desc       : verify permission of unbindDevice
191     * @tc.size       : MediumTest
192     * @tc.type       : Function
193     * @tc.level      : Level 2
194     */
195    it('testNoPermissionUnbindDevice001', 0, done => {
196        console.info('----------------------testNoPermissionUnbindDevice001---------------------------');
197        if (!isDeviceConnected(done)) {
198            return;
199        }
200        try {
201            deviceManager.unbindDevice(TEST_DEVICE_ID, TEST_FUNCTION);
202            done();
203        } catch (err) {
204            console.info(TAG, 'testNoPermissionUnbindDevice001 catch err code: ',
205                err.code, ', message: ', err.message);
206            expect(err.code).assertEqual(PERMISSION_DENIED_CODE);
207            done();
208        }
209    });
210
211    /*
212     * @tc.number     : SUB_Driver_Ext_DevManNoPermission_0700
213     * @tc.name       : testNoPermissionUnbindDevice002
214     * @tc.desc       : verify permission of unbindDevice
215     * @tc.size       : MediumTest
216     * @tc.type       : Function
217     * @tc.level      : Level 2
218     */
219    it('testNoPermissionUnbindDevice002', 0, async done => {
220        console.info('----------------------testNoPermissionUnbindDevice002---------------------------');
221        if (!isDeviceConnected(done)) {
222            return;
223        }
224        try {
225            await deviceManager.unbindDevice(TEST_DEVICE_ID).then(data => {
226                expect(data === null).assertTrue();
227            })
228            done();
229        } catch (err) {
230            console.info(TAG, 'testNoPermissionUnbindDevice002 catch err code: ',
231                err.code, ', message: ', err.message);
232            expect(err.code).assertEqual(PERMISSION_DENIED_CODE);
233            done();
234        }
235    });
236
237    /*
238     * @tc.number     : SUB_Driver_Ext_DevManNoPermission_0800
239     * @tc.name       : testNoPermissionQueryDeviceInfo001
240     * @tc.desc       : verify permission of queryDeviceInfo
241     * @tc.size       : MediumTest
242     * @tc.type       : Function
243     * @tc.level      : Level 2
244     */
245    it('testNoPermissionQueryDeviceInfo001', 0, done => {
246        console.info('----------------------testNoPermissionQueryDeviceInfo001---------------------------');
247        if (!isDeviceConnected(done)) {
248            return;
249        }
250        try {
251            let deviceInfos = deviceManager.queryDeviceInfo(TEST_DEVICE_ID);
252            expect(deviceInfos === null).assertTrue();
253            done();
254        } catch (err) {
255            console.info(TAG, 'testNoPermissionQueryDeviceInfo001 catch err code: ',
256                err.code, ', message: ', err.message);
257            expect(err.code).assertEqual(PERMISSION_DENIED_CODE);
258            done();
259        }
260    });
261
262    /*
263     * @tc.number     : SUB_Driver_Ext_DevManNoPermission_0900
264     * @tc.name       : testNoPermissionQueryDriverInfo001
265     * @tc.desc       : verify permission of queryDeviceInfo
266     * @tc.size       : MediumTest
267     * @tc.type       : Function
268     * @tc.level      : Level 2
269     */
270    it('testNoPermissionQueryDriverInfo001', 0, done => {
271        console.info('----------------------testNoPermissionQueryDriverInfo001---------------------------');
272        if (!isDeviceConnected(done)) {
273            return;
274        }
275        try {
276            let driverInfos = deviceManager.queryDriverInfo(TEST_DRIVER_UID);
277            expect(driverInfos === null).assertTrue();
278            done();
279        } catch (err) {
280            console.info(TAG, 'testNoPermissionQueryDriverInfo001 catch err code: ',
281                err.code, ', message: ', err.message);
282            expect(err.code).assertEqual(PERMISSION_DENIED_CODE);
283            done();
284        }
285    });
286
287})
288}
289