• 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 usb from '@ohos.usbManager'
17import deviceManager from '@ohos.driver.deviceManager'
18import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'
19
20describe("PermissionJsTest", function () {
21    const TAG = "[PermissionJsTest]";
22    const PERMISSION_DENIED_CODE = 201;
23    const TEST_DEVICE_ID = 0;
24    const TEST_DRIVER_UID = 'testDriverUid'
25    const USB_CLASS_HUB = 9;
26    const TEST_FUNCTION = () => {
27        console.info("Test function is called");
28    };
29
30    let deviceNum = 0;
31    const isDeviceConnected = done => {
32        if (deviceNum > 0) {
33            console.info("Test USB device is connected");
34            return true;
35        }
36        console.info("Test USB device is not connected");
37        expect(true).assertTrue();
38        if (typeof(done) === 'function') {
39            done();
40        }
41        return false;
42    }
43
44    beforeAll(function () {
45        console.info('beforeAll called');
46        try {
47            let devicesList = usb.getDevices();
48            devicesList = devicesList.filter(device => device.clazz != USB_CLASS_HUB);
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.name:Permission_queryDevices_001
71     * @tc.desc:verify permission of queryDevices
72     * @tc.type: FUNC
73     */
74    it("Permission_queryDevices_001", 0, done => {
75        console.info('----------------------Permission_queryDevices_001---------------------------');
76        if (!isDeviceConnected(done)) {
77            return;
78        }
79        try {
80            deviceManager.queryDevices();
81            expect(false).assertTrue();
82            done();
83        } catch (err) {
84            expect(err.code).assertEqual(PERMISSION_DENIED_CODE);
85            done();
86        }
87    });
88
89    /*
90     * @tc.name:Permission_bindDevice_001
91     * @tc.desc:verify permission of bindDevice
92     * @tc.type: FUNC
93     */
94    it("Permission_bindDevice_001", 0, done => {
95        console.info('----------------------Permission_bindDevice_001---------------------------');
96        if (!isDeviceConnected(done)) {
97            return;
98        }
99        try {
100            deviceManager.bindDevice(TEST_DEVICE_ID, TEST_FUNCTION, TEST_FUNCTION);
101            expect(false).assertTrue();
102            done();
103        } catch (err) {
104            expect(err.code).assertEqual(PERMISSION_DENIED_CODE);
105            done();
106        }
107    });
108
109    /*
110     * @tc.name:Permission_bindDevice_002
111     * @tc.desc:verify permission of bindDevice
112     * @tc.type: FUNC
113     */
114    it("Permission_bindDevice_002", 0, async done => {
115        console.info('----------------------Permission_bindDevice_002---------------------------');
116        if (!isDeviceConnected(done)) {
117            return;
118        }
119        try {
120            await deviceManager.bindDevice(TEST_DEVICE_ID, TEST_FUNCTION);
121            expect(false).assertTrue();
122            done();
123        } catch (err) {
124            expect(err.code).assertEqual(PERMISSION_DENIED_CODE);
125            done();
126        }
127    });
128
129    /*
130     * @tc.name:Permission_bindDeviceDriver_001
131     * @tc.desc:verify permission of bindDeviceDriver
132     * @tc.type: FUNC
133     */
134    it("Permission_bindDeviceDriver_001", 0, done => {
135        console.info('----------------------Permission_bindDeviceDriver_001---------------------------');
136        if (!isDeviceConnected(done)) {
137            return;
138        }
139        try {
140            deviceManager.bindDeviceDriver(TEST_DEVICE_ID, TEST_FUNCTION, TEST_FUNCTION);
141            expect(false).assertTrue();
142            done();
143        } catch (err) {
144            expect(err.code).assertEqual(PERMISSION_DENIED_CODE);
145            done();
146        }
147    });
148
149    /*
150     * @tc.name:Permission_bindDeviceDriver_002
151     * @tc.desc:verify permission of bindDeviceDriver
152     * @tc.type: FUNC
153     */
154    it("Permission_bindDeviceDriver_002", 0, async done => {
155        console.info('----------------------Permission_bindDeviceDriver_002---------------------------');
156        if (!isDeviceConnected(done)) {
157            return;
158        }
159        try {
160            await deviceManager.bindDeviceDriver(TEST_DEVICE_ID, TEST_FUNCTION);
161            expect(false).assertTrue();
162            done();
163        } catch (err) {
164            expect(err.code).assertEqual(PERMISSION_DENIED_CODE);
165            done();
166        }
167    });
168
169    /*
170     * @tc.name:Permission_bindDriverWithDeviceId_001
171     * @tc.desc:verify permission of bindDriverWithDeviceId
172     * @tc.type: FUNC
173     */
174    it("Permission_bindDriverWithDeviceId_001", 0, async done => {
175        console.info('----------------------Permission_bindDriverWithDeviceId_001---------------------------');
176        if (!isDeviceConnected(done)) {
177            return;
178        }
179        try {
180            await deviceManager.bindDriverWithDeviceId(TEST_DEVICE_ID, TEST_FUNCTION);
181            expect(false).assertTrue();
182            done();
183        } catch (err) {
184            expect(err.code).assertEqual(PERMISSION_DENIED_CODE);
185            done();
186        }
187    });
188
189    /*
190     * @tc.name:Permission_unbindDevice_001
191     * @tc.desc:verify permission of unbindDevice
192     * @tc.type: FUNC
193     */
194    it("Permission_unbindDevice_001", 0, done => {
195        console.info('----------------------Permission_unbindDevice_001---------------------------');
196        if (!isDeviceConnected(done)) {
197            return;
198        }
199        try {
200            deviceManager.unbindDevice(TEST_DEVICE_ID, TEST_FUNCTION);
201            expect(false).assertTrue();
202            done();
203        } catch (err) {
204            expect(err.code).assertEqual(PERMISSION_DENIED_CODE);
205            done();
206        }
207    });
208
209    /*
210     * @tc.name:Permission_unbindDevice_002
211     * @tc.desc:verify permission of unbindDevice
212     * @tc.type: FUNC
213     */
214    it("Permission_unbindDevice_002", 0, async done => {
215        console.info('----------------------Permission_unbindDevice_002---------------------------');
216        if (!isDeviceConnected(done)) {
217            return;
218        }
219        try {
220            await deviceManager.unbindDevice(TEST_DEVICE_ID);
221            expect(false).assertTrue();
222            done();
223        } catch (err) {
224            expect(err.code).assertEqual(PERMISSION_DENIED_CODE);
225            done();
226        }
227    });
228
229    /*
230     * @tc.name:Permission_unbindDriverWithDeviceId_001
231     * @tc.desc:verify permission of unbindDriverWithDeviceId
232     * @tc.type: FUNC
233     */
234    it("Permission_unbindDriverWithDeviceId", 0, async done => {
235        console.info('----------------------Permission_unbindDriverWithDeviceId_001---------------------------');
236        if (!isDeviceConnected(done)) {
237            return;
238        }
239        try {
240            await deviceManager.unbindDriverWithDeviceId(TEST_DEVICE_ID);
241            expect(false).assertTrue();
242            done();
243        } catch (err) {
244            expect(err.code).assertEqual(PERMISSION_DENIED_CODE);
245            done();
246        }
247    });
248
249    /*
250     * @tc.name:Permission_queryDeviceInfo_001
251     * @tc.desc:verify permission of queryDeviceInfo
252     * @tc.type: FUNC
253     */
254    it("Permission_queryDeviceInfo_001", 0, done => {
255        console.info('----------------------Permission_queryDeviceInfo_001---------------------------');
256        if (!isDeviceConnected(done)) {
257            return;
258        }
259        try {
260            deviceManager.queryDeviceInfo(TEST_DEVICE_ID);
261            expect(false).assertTrue();
262            done();
263        } catch (err) {
264            expect(err.code).assertEqual(PERMISSION_DENIED_CODE);
265            done();
266        }
267    });
268
269    /*
270     * @tc.name:Permission_queryDriverInfo_001
271     * @tc.desc:verify permission of queryDriverInfo
272     * @tc.type: FUNC
273     */
274    it("Permission_queryDriverInfo_001", 0, done => {
275        console.info('----------------------Permission_queryDriverInfo_001---------------------------');
276        if (!isDeviceConnected(done)) {
277            return;
278        }
279        try {
280            deviceManager.queryDriverInfo(TEST_DRIVER_UID);
281            expect(false).assertTrue();
282            done();
283        } catch (err) {
284            expect(err.code).assertEqual(PERMISSION_DENIED_CODE);
285            done();
286        }
287    });
288});