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