112636162Sopenharmony_ci/* 212636162Sopenharmony_ci * Copyright (C) 2024 Huawei Device Co., Ltd. 312636162Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 412636162Sopenharmony_ci * you may not use this file except in compliance with the License. 512636162Sopenharmony_ci * You may obtain a copy of the License at 612636162Sopenharmony_ci * 712636162Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 812636162Sopenharmony_ci * 912636162Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1012636162Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1112636162Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1212636162Sopenharmony_ci * See the License for the specific language governing permissions and 1312636162Sopenharmony_ci * limitations under the License. 1412636162Sopenharmony_ci */ 1512636162Sopenharmony_ci 1612636162Sopenharmony_ciimport usb from '@ohos.usbManager' 1712636162Sopenharmony_ciimport deviceManager from '@ohos.driver.deviceManager' 1812636162Sopenharmony_ciimport { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index' 1912636162Sopenharmony_ci 2012636162Sopenharmony_cidescribe("PermissionJsTest", function () { 2112636162Sopenharmony_ci const TAG = "[PermissionJsTest]"; 2212636162Sopenharmony_ci const PERMISSION_DENIED_CODE = 201; 2312636162Sopenharmony_ci const TEST_DEVICE_ID = 0; 2412636162Sopenharmony_ci const TEST_DRIVER_UID = 'testDriverUid' 2512636162Sopenharmony_ci const TEST_FUNCTION = () => { 2612636162Sopenharmony_ci console.info("Test function is called"); 2712636162Sopenharmony_ci }; 2812636162Sopenharmony_ci 2912636162Sopenharmony_ci let deviceNum = 0; 3012636162Sopenharmony_ci const isDeviceConnected = done => { 3112636162Sopenharmony_ci if (deviceNum > 0) { 3212636162Sopenharmony_ci console.info("Test USB device is connected"); 3312636162Sopenharmony_ci return true; 3412636162Sopenharmony_ci } 3512636162Sopenharmony_ci console.info("Test USB device is not connected"); 3612636162Sopenharmony_ci expect(true).assertTrue(); 3712636162Sopenharmony_ci if (typeof(done) === 'function') { 3812636162Sopenharmony_ci done(); 3912636162Sopenharmony_ci } 4012636162Sopenharmony_ci return false; 4112636162Sopenharmony_ci } 4212636162Sopenharmony_ci 4312636162Sopenharmony_ci beforeAll(function () { 4412636162Sopenharmony_ci console.info('beforeAll called'); 4512636162Sopenharmony_ci try { 4612636162Sopenharmony_ci const devicesList = usb.getDevices(); 4712636162Sopenharmony_ci if (Array.isArray(devicesList)) { 4812636162Sopenharmony_ci deviceNum = devicesList.length; 4912636162Sopenharmony_ci } 5012636162Sopenharmony_ci } catch (err) { 5112636162Sopenharmony_ci console.error(TAG, `getDevices failed, message is ${err.message}`); 5212636162Sopenharmony_ci } 5312636162Sopenharmony_ci }) 5412636162Sopenharmony_ci 5512636162Sopenharmony_ci afterAll(function () { 5612636162Sopenharmony_ci console.info('afterAll called'); 5712636162Sopenharmony_ci }) 5812636162Sopenharmony_ci 5912636162Sopenharmony_ci beforeEach(function () { 6012636162Sopenharmony_ci console.info('beforeEach called'); 6112636162Sopenharmony_ci }) 6212636162Sopenharmony_ci 6312636162Sopenharmony_ci afterEach(function () { 6412636162Sopenharmony_ci console.info('afterEach called'); 6512636162Sopenharmony_ci }) 6612636162Sopenharmony_ci 6712636162Sopenharmony_ci /* 6812636162Sopenharmony_ci * @tc.name:Permission_queryDevices_001 6912636162Sopenharmony_ci * @tc.desc:verify permission of queryDevices 7012636162Sopenharmony_ci * @tc.type: FUNC 7112636162Sopenharmony_ci */ 7212636162Sopenharmony_ci it("Permission_queryDevices_001", 0, done => { 7312636162Sopenharmony_ci console.info('----------------------Permission_queryDevices_001---------------------------'); 7412636162Sopenharmony_ci if (!isDeviceConnected(done)) { 7512636162Sopenharmony_ci return; 7612636162Sopenharmony_ci } 7712636162Sopenharmony_ci try { 7812636162Sopenharmony_ci deviceManager.queryDevices(); 7912636162Sopenharmony_ci expect(false).assertTrue(); 8012636162Sopenharmony_ci done(); 8112636162Sopenharmony_ci } catch (err) { 8212636162Sopenharmony_ci expect(err.code).assertEqual(PERMISSION_DENIED_CODE); 8312636162Sopenharmony_ci done(); 8412636162Sopenharmony_ci } 8512636162Sopenharmony_ci }); 8612636162Sopenharmony_ci 8712636162Sopenharmony_ci /* 8812636162Sopenharmony_ci * @tc.name:Permission_bindDevice_001 8912636162Sopenharmony_ci * @tc.desc:verify permission of bindDevice 9012636162Sopenharmony_ci * @tc.type: FUNC 9112636162Sopenharmony_ci */ 9212636162Sopenharmony_ci it("Permission_bindDevice_001", 0, done => { 9312636162Sopenharmony_ci console.info('----------------------Permission_bindDevice_001---------------------------'); 9412636162Sopenharmony_ci if (!isDeviceConnected(done)) { 9512636162Sopenharmony_ci return; 9612636162Sopenharmony_ci } 9712636162Sopenharmony_ci try { 9812636162Sopenharmony_ci deviceManager.bindDevice(TEST_DEVICE_ID, TEST_FUNCTION, TEST_FUNCTION); 9912636162Sopenharmony_ci expect(false).assertTrue(); 10012636162Sopenharmony_ci done(); 10112636162Sopenharmony_ci } catch (err) { 10212636162Sopenharmony_ci expect(err.code).assertEqual(PERMISSION_DENIED_CODE); 10312636162Sopenharmony_ci done(); 10412636162Sopenharmony_ci } 10512636162Sopenharmony_ci }); 10612636162Sopenharmony_ci 10712636162Sopenharmony_ci /* 10812636162Sopenharmony_ci * @tc.name:Permission_bindDevice_002 10912636162Sopenharmony_ci * @tc.desc:verify permission of bindDevice 11012636162Sopenharmony_ci * @tc.type: FUNC 11112636162Sopenharmony_ci */ 11212636162Sopenharmony_ci it("Permission_bindDevice_002", 0, async done => { 11312636162Sopenharmony_ci console.info('----------------------Permission_bindDevice_002---------------------------'); 11412636162Sopenharmony_ci if (!isDeviceConnected(done)) { 11512636162Sopenharmony_ci return; 11612636162Sopenharmony_ci } 11712636162Sopenharmony_ci try { 11812636162Sopenharmony_ci await deviceManager.bindDevice(TEST_DEVICE_ID, TEST_FUNCTION); 11912636162Sopenharmony_ci expect(false).assertTrue(); 12012636162Sopenharmony_ci done(); 12112636162Sopenharmony_ci } catch (err) { 12212636162Sopenharmony_ci expect(err.code).assertEqual(PERMISSION_DENIED_CODE); 12312636162Sopenharmony_ci done(); 12412636162Sopenharmony_ci } 12512636162Sopenharmony_ci }); 12612636162Sopenharmony_ci 12712636162Sopenharmony_ci /* 12812636162Sopenharmony_ci * @tc.name:Permission_bindDeviceDriver_001 12912636162Sopenharmony_ci * @tc.desc:verify permission of bindDeviceDriver 13012636162Sopenharmony_ci * @tc.type: FUNC 13112636162Sopenharmony_ci */ 13212636162Sopenharmony_ci it("Permission_bindDeviceDriver_001", 0, done => { 13312636162Sopenharmony_ci console.info('----------------------Permission_bindDeviceDriver_001---------------------------'); 13412636162Sopenharmony_ci if (!isDeviceConnected(done)) { 13512636162Sopenharmony_ci return; 13612636162Sopenharmony_ci } 13712636162Sopenharmony_ci try { 13812636162Sopenharmony_ci deviceManager.bindDeviceDriver(TEST_DEVICE_ID, TEST_FUNCTION, TEST_FUNCTION); 13912636162Sopenharmony_ci expect(false).assertTrue(); 14012636162Sopenharmony_ci done(); 14112636162Sopenharmony_ci } catch (err) { 14212636162Sopenharmony_ci expect(err.code).assertEqual(PERMISSION_DENIED_CODE); 14312636162Sopenharmony_ci done(); 14412636162Sopenharmony_ci } 14512636162Sopenharmony_ci }); 14612636162Sopenharmony_ci 14712636162Sopenharmony_ci /* 14812636162Sopenharmony_ci * @tc.name:Permission_bindDeviceDriver_002 14912636162Sopenharmony_ci * @tc.desc:verify permission of bindDeviceDriver 15012636162Sopenharmony_ci * @tc.type: FUNC 15112636162Sopenharmony_ci */ 15212636162Sopenharmony_ci it("Permission_bindDeviceDriver_002", 0, async done => { 15312636162Sopenharmony_ci console.info('----------------------Permission_bindDeviceDriver_002---------------------------'); 15412636162Sopenharmony_ci if (!isDeviceConnected(done)) { 15512636162Sopenharmony_ci return; 15612636162Sopenharmony_ci } 15712636162Sopenharmony_ci try { 15812636162Sopenharmony_ci await deviceManager.bindDeviceDriver(TEST_DEVICE_ID, TEST_FUNCTION); 15912636162Sopenharmony_ci expect(false).assertTrue(); 16012636162Sopenharmony_ci done(); 16112636162Sopenharmony_ci } catch (err) { 16212636162Sopenharmony_ci expect(err.code).assertEqual(PERMISSION_DENIED_CODE); 16312636162Sopenharmony_ci done(); 16412636162Sopenharmony_ci } 16512636162Sopenharmony_ci }); 16612636162Sopenharmony_ci 16712636162Sopenharmony_ci /* 16812636162Sopenharmony_ci * @tc.name:Permission_unbindDevice_001 16912636162Sopenharmony_ci * @tc.desc:verify permission of unbindDevice 17012636162Sopenharmony_ci * @tc.type: FUNC 17112636162Sopenharmony_ci */ 17212636162Sopenharmony_ci it("Permission_unbindDevice_001", 0, done => { 17312636162Sopenharmony_ci console.info('----------------------Permission_unbindDevice_001---------------------------'); 17412636162Sopenharmony_ci if (!isDeviceConnected(done)) { 17512636162Sopenharmony_ci return; 17612636162Sopenharmony_ci } 17712636162Sopenharmony_ci try { 17812636162Sopenharmony_ci deviceManager.unbindDevice(TEST_DEVICE_ID, TEST_FUNCTION); 17912636162Sopenharmony_ci expect(false).assertTrue(); 18012636162Sopenharmony_ci done(); 18112636162Sopenharmony_ci } catch (err) { 18212636162Sopenharmony_ci expect(err.code).assertEqual(PERMISSION_DENIED_CODE); 18312636162Sopenharmony_ci done(); 18412636162Sopenharmony_ci } 18512636162Sopenharmony_ci }); 18612636162Sopenharmony_ci 18712636162Sopenharmony_ci /* 18812636162Sopenharmony_ci * @tc.name:Permission_unbindDevice_002 18912636162Sopenharmony_ci * @tc.desc:verify permission of unbindDevice 19012636162Sopenharmony_ci * @tc.type: FUNC 19112636162Sopenharmony_ci */ 19212636162Sopenharmony_ci it("Permission_unbindDevice_002", 0, async done => { 19312636162Sopenharmony_ci console.info('----------------------Permission_unbindDevice_002---------------------------'); 19412636162Sopenharmony_ci if (!isDeviceConnected(done)) { 19512636162Sopenharmony_ci return; 19612636162Sopenharmony_ci } 19712636162Sopenharmony_ci try { 19812636162Sopenharmony_ci await deviceManager.unbindDevice(TEST_DEVICE_ID); 19912636162Sopenharmony_ci expect(false).assertTrue(); 20012636162Sopenharmony_ci done(); 20112636162Sopenharmony_ci } catch (err) { 20212636162Sopenharmony_ci expect(err.code).assertEqual(PERMISSION_DENIED_CODE); 20312636162Sopenharmony_ci done(); 20412636162Sopenharmony_ci } 20512636162Sopenharmony_ci }); 20612636162Sopenharmony_ci 20712636162Sopenharmony_ci /* 20812636162Sopenharmony_ci * @tc.name:Permission_queryDeviceInfo_001 20912636162Sopenharmony_ci * @tc.desc:verify permission of queryDeviceInfo 21012636162Sopenharmony_ci * @tc.type: FUNC 21112636162Sopenharmony_ci */ 21212636162Sopenharmony_ci it("Permission_queryDeviceInfo_001", 0, done => { 21312636162Sopenharmony_ci console.info('----------------------Permission_queryDeviceInfo_001---------------------------'); 21412636162Sopenharmony_ci if (!isDeviceConnected(done)) { 21512636162Sopenharmony_ci return; 21612636162Sopenharmony_ci } 21712636162Sopenharmony_ci try { 21812636162Sopenharmony_ci deviceManager.queryDeviceInfo(TEST_DEVICE_ID); 21912636162Sopenharmony_ci expect(false).assertTrue(); 22012636162Sopenharmony_ci done(); 22112636162Sopenharmony_ci } catch (err) { 22212636162Sopenharmony_ci expect(err.code).assertEqual(PERMISSION_DENIED_CODE); 22312636162Sopenharmony_ci done(); 22412636162Sopenharmony_ci } 22512636162Sopenharmony_ci }); 22612636162Sopenharmony_ci 22712636162Sopenharmony_ci /* 22812636162Sopenharmony_ci * @tc.name:Permission_queryDriverInfo_001 22912636162Sopenharmony_ci * @tc.desc:verify permission of queryDriverInfo 23012636162Sopenharmony_ci * @tc.type: FUNC 23112636162Sopenharmony_ci */ 23212636162Sopenharmony_ci it("Permission_queryDriverInfo_001", 0, done => { 23312636162Sopenharmony_ci console.info('----------------------Permission_queryDriverInfo_001---------------------------'); 23412636162Sopenharmony_ci if (!isDeviceConnected(done)) { 23512636162Sopenharmony_ci return; 23612636162Sopenharmony_ci } 23712636162Sopenharmony_ci try { 23812636162Sopenharmony_ci deviceManager.queryDriverInfo(TEST_DRIVER_UID); 23912636162Sopenharmony_ci expect(false).assertTrue(); 24012636162Sopenharmony_ci done(); 24112636162Sopenharmony_ci } catch (err) { 24212636162Sopenharmony_ci expect(err.code).assertEqual(PERMISSION_DENIED_CODE); 24312636162Sopenharmony_ci done(); 24412636162Sopenharmony_ci } 24512636162Sopenharmony_ci }); 24612636162Sopenharmony_ci});