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});