1/* 2 * Copyright (c) 2021 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.usb'; 17import CheckEmptyUtils from './CheckEmptyUtils.js'; 18import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index' 19 20 21/* usb core functions test */ 22describe('UsbCoreJsFunctionsTestEx', function () { 23 var gDeviceList 24 beforeAll(function () { 25 console.log('*************Usb Unit UsbCoreJsFunctionsTestEx Begin*************'); 26 var Version = usb.getVersion() 27 console.info('begin test getversion :' + Version) 28 // version > 17 host currentMode = 2 device currentMode = 1 29 var usbPortList = usb.getPorts() 30 if (usbPortList.length > 0) { 31 if (usbPortList[0].status.currentMode == 1) { 32 usb.setPortRoles(usbPortList[0].id, usb.SOURCE, usb.HOST).then(data => { 33 console.info('usb case setPortRolesEx return: ' + data); 34 }).catch(error => { 35 console.info('usb case setPortRolesEx error : ' + error); 36 }); 37 console.log('*************Usb Unit Begin switch to host*************'); 38 } 39 } 40 gDeviceList = usb.getDevices(); 41 }) 42 beforeEach(function () { 43 console.info('beforeEach: *************Usb Unit Test CaseEx*************'); 44 }) 45 afterEach(function () { 46 console.info('afterEach: *************Usb Unit Test CaseEx*************'); 47 }) 48 afterAll(function () { 49 console.log('*************Usb Unit UsbCoreJsFunctionsTestEx End*************'); 50 }) 51 52 53 /** 54 * @tc.number : SUB_USB_connect_device_02 55 * @tc.name : connectDevice 56 * @tc.desc : 反向测试 错误参数 devAddress 打开设备 57 */ 58 it('SUB_USB_connect_device_02', 0, function () { 59 console.info('usb connect_device_02 begin'); 60 if (gDeviceList.length == 0) { 61 console.info('usb case get_device_list is null') 62 expect(false).assertTrue(); 63 return 64 } 65 var isRight = usb.hasRight(gDeviceList[0].name); 66 if (!isRight) { 67 usb.requestRight(gDeviceList[0].name).then(hasRight => { 68 }).catch(error => { 69 console.info('usb 02 requestRight error:' + error); 70 }); 71 console.info('usb 02 requestRight end:'); 72 CheckEmptyUtils.sleep(3000) 73 } 74 75 var device = JSON.parse(JSON.stringify(gDeviceList[0])); 76 device.devAddress = 2 + 10000 77 try { 78 var usbDevicePipe = usb.connectDevice(device) 79 } catch (err) { 80 expect(true).assertTrue(); 81 console.info('usb connectDevice fail:' + err); 82 } 83 console.info('usb case connectDevice ret: ' + JSON.stringify(usbDevicePipe) + 84 ' devAddress ' + device.devAddress); 85 expect(CheckEmptyUtils.isEmpty(usbDevicePipe)).assertTrue(); 86 87 console.info('usb connect_device_02 : PASS'); 88 }) 89 90 /** 91 * @tc.number : SUB_USB_connect_device_03 92 * @tc.name : connectDevice 93 * @tc.desc : 反向测试 busNum错误参数 打开设备 94 */ 95 it('SUB_USB_connect_device_03', 0, function () { 96 console.info('usb connect_device_03 begin'); 97 if (gDeviceList.length == 0) { 98 console.info('usb case get_device_list is null') 99 expect(false).assertTrue(); 100 return 101 } 102 var isRight = usb.hasRight(gDeviceList[0].name); 103 if (!isRight) { 104 usb.requestRight(gDeviceList[0].name).then(hasRight => { 105 }).catch(error => { 106 console.info('usb 03 requestRight error:' + error); 107 }); 108 console.info('usb 03 requestRight end:'); 109 CheckEmptyUtils.sleep(3000) 110 } 111 112 var device = JSON.parse(JSON.stringify(gDeviceList[0])); 113 device.busNum = 2 + 1000 114 try { 115 var usbDevicePipe = usb.connectDevice(device) 116 } catch (err) { 117 expect(true).assertTrue(); 118 console.info('usb connectDevice fail:' + err); 119 } 120 console.info('usb case connectDevice ret: ' + JSON.stringify(usbDevicePipe) + 121 ' busNum ' + device.busNum); 122 expect(CheckEmptyUtils.isEmpty(usbDevicePipe)).assertTrue(); 123 console.info('usb connect_device_03 : PASS'); 124 }) 125 126 /** 127 * @tc.number : SUB_USB_connect_device_04 128 * @tc.name : connectDevice 129 * @tc.desc : 反向测试 serial错误参数 打开设备 130 */ 131 it('SUB_USB_connect_device_04', 0, function () { 132 console.info('usb connect_device_04 begin'); 133 if (gDeviceList.length == 0) { 134 console.info('usb case get_device_list is null') 135 expect(false).assertTrue(); 136 return 137 } 138 var isRight = usb.hasRight(gDeviceList[0].name); 139 if (!isRight) { 140 usb.requestRight(gDeviceList[0].name).then(hasRight => { 141 }).catch(error => { 142 console.info('usb 04 requestRight error:' + error); 143 }); 144 console.info('usb 04 requestRight end:'); 145 CheckEmptyUtils.sleep(3000) 146 } 147 148 var device = JSON.parse(JSON.stringify(gDeviceList[0])); 149 device.serial = 'asdfsd' 150 try { 151 var usbDevicePipe = usb.connectDevice(device) 152 } catch (err) { 153 expect(true).assertTrue(); 154 console.info('usb connectDevice fail:' + err); 155 } 156 console.info('usb case connectDevice ret: ' + JSON.stringify(usbDevicePipe) + 157 ' serial ' + device.serial); 158 expect(CheckEmptyUtils.isEmpty(usbDevicePipe)).assertFalse(); 159 var isPipClose = usb.closePipe(usbDevicePipe); 160 console.info('usb case closePipe ret: ' + isPipClose); 161 expect(isPipClose).assertEqual(0); 162 console.info('usb connect_device_04 : PASS'); 163 }) 164 165 /** 166 * @tc.number : SUB_USB_connect_device_05 167 * @tc.name : connectDevice 168 * @tc.desc : 反向测试 name错误参数 打开设备 169 */ 170 it('SUB_USB_connect_device_05', 0, function () { 171 console.info('usb connect_device_05 begin'); 172 if (gDeviceList.length == 0) { 173 console.info('usb case get_device_list is null') 174 expect(false).assertTrue(); 175 return 176 } 177 var isRight = usb.hasRight(gDeviceList[0].name); 178 if (!isRight) { 179 usb.requestRight(gDeviceList[0].name).then(hasRight => { 180 }).catch(error => { 181 console.info('usb 05 requestRight error:' + error); 182 }); 183 console.info('usb 05 requestRight end:'); 184 CheckEmptyUtils.sleep(3000) 185 } 186 187 var device = JSON.parse(JSON.stringify(gDeviceList[0])); 188 device.name = 2 + 10000 189 try { 190 var usbDevicePipe = usb.connectDevice(device) 191 } catch (err) { 192 expect(true).assertTrue(); 193 console.info('usb connectDevice fail:' + err); 194 } 195 console.info('usb case connectDevice ret: ' + JSON.stringify(usbDevicePipe) + ' name ' + device.name); 196 expect(CheckEmptyUtils.isEmpty(usbDevicePipe)).assertFalse(); 197 var isPipClose = usb.closePipe(usbDevicePipe); 198 console.info('usb case closePipe ret: ' + isPipClose); 199 expect(isPipClose).assertEqual(0); 200 console.info('usb connect_device_05 : PASS'); 201 }) 202 203 /** 204 * @tc.number : SUB_USB_connect_device_06 205 * @tc.name : connectDevice 206 * @tc.desc : 反向测试 manufacturerName错误参数 打开设备 207 */ 208 it('SUB_USB_connect_device_06', 0, function () { 209 console.info('usb connect_device_06 begin'); 210 if (gDeviceList.length == 0) { 211 console.info('usb case get_device_list is null') 212 expect(false).assertTrue(); 213 return 214 } 215 var isRight = usb.hasRight(gDeviceList[0].name); 216 if (!isRight) { 217 usb.requestRight(gDeviceList[0].name).then(hasRight => { 218 }).catch(error => { 219 console.info('usb 06 requestRight error:' + error); 220 }); 221 console.info('usb 06 requestRight end:'); 222 CheckEmptyUtils.sleep(3000) 223 } 224 225 var device = JSON.parse(JSON.stringify(gDeviceList[0])); 226 device.manufacturerName = 2 + 10000 227 try { 228 var usbDevicePipe = usb.connectDevice(device) 229 } catch (err) { 230 expect(true).assertTrue(); 231 console.info('usb connectDevice fail:' + err); 232 } 233 console.info('usb case connectDevice ret: ' + JSON.stringify(usbDevicePipe) + 234 ' manufacturerName ' + device.manufacturerName); 235 expect(CheckEmptyUtils.isEmpty(usbDevicePipe)).assertFalse(); 236 var isPipClose = usb.closePipe(usbDevicePipe); 237 console.info('usb case closePipe ret: ' + isPipClose); 238 expect(isPipClose).assertEqual(0); 239 console.info('usb connect_device_06 : PASS'); 240 }) 241 242 /** 243 * @tc.number : SUB_USB_connect_device_07 244 * @tc.name : connectDevice 245 * @tc.desc : 反向测试 productName错误参数 打开设备 246 */ 247 it('SUB_USB_connect_device_07', 0, function () { 248 console.info('usb connect_device_07 begin'); 249 if (gDeviceList.length == 0) { 250 console.info('usb case get_device_list is null') 251 expect(false).assertTrue(); 252 return 253 } 254 var isRight = usb.hasRight(gDeviceList[0].name); 255 if (!isRight) { 256 usb.requestRight(gDeviceList[0].name).then(hasRight => { 257 }).catch(error => { 258 console.info('usb 07 requestRight error:' + error); 259 }); 260 console.info('usb 07 requestRight end:'); 261 CheckEmptyUtils.sleep(3000) 262 } 263 264 var device = JSON.parse(JSON.stringify(gDeviceList[0])); 265 device.productName = 'sdfsdfe' 266 try { 267 var usbDevicePipe = usb.connectDevice(device) 268 } catch (err) { 269 expect(true).assertTrue(); 270 console.info('usb connectDevice fail:' + err); 271 } 272 console.info('usb case connectDevice ret: ' + JSON.stringify(usbDevicePipe) + 273 ' productName ' + device.productName); 274 expect(CheckEmptyUtils.isEmpty(usbDevicePipe)).assertFalse(); 275 var isPipClose = usb.closePipe(usbDevicePipe); 276 console.info('usb case closePipe ret: ' + isPipClose); 277 expect(isPipClose).assertEqual(0); 278 console.info('usb connect_device_07 : PASS'); 279 }) 280 281 /** 282 * @tc.number : SUB_USB_connect_device_08 283 * @tc.name : connectDevice 284 * @tc.desc : 反向测试 version错误参数 打开设备 285 */ 286 it('SUB_USB_connect_device_08', 0, function () { 287 console.info('usb connect_device_08 begin'); 288 if (gDeviceList.length == 0) { 289 console.info('usb case get_device_list is null') 290 expect(false).assertTrue(); 291 return 292 } 293 var isRight = usb.hasRight(gDeviceList[0].name); 294 if (!isRight) { 295 usb.requestRight(gDeviceList[0].name).then(hasRight => { 296 }).catch(error => { 297 console.info('usb 08 requestRight error:' + error); 298 }); 299 console.info('usb 08 requestRight end:'); 300 CheckEmptyUtils.sleep(3000) 301 } 302 303 var device = JSON.parse(JSON.stringify(gDeviceList[0])); 304 device.version = 'gwefsdf' 305 try { 306 var usbDevicePipe = usb.connectDevice(device) 307 } catch (err) { 308 expect(true).assertTrue(); 309 console.info('usb connectDevice fail:' + err); 310 } 311 console.info('usb case connectDevice ret: ' + JSON.stringify(usbDevicePipe) + 312 ' version ' + device.version); 313 expect(CheckEmptyUtils.isEmpty(usbDevicePipe)).assertFalse(); 314 var isPipClose = usb.closePipe(usbDevicePipe); 315 console.info('usb case closePipe ret: ' + isPipClose); 316 expect(isPipClose).assertEqual(0); 317 console.info('usb connect_device_08 : PASS'); 318 }) 319 320 /** 321 * @tc.number : SUB_USB_connect_device_09 322 * @tc.name : connectDevice 323 * @tc.desc : 反向测试 vendorId错误参数 打开设备 324 */ 325 it('SUB_USB_connect_device_09', 0, function () { 326 console.info('usb connect_device_09 begin'); 327 if (gDeviceList.length == 0) { 328 console.info('usb case get_device_list is null') 329 expect(false).assertTrue(); 330 return 331 } 332 var isRight = usb.hasRight(gDeviceList[0].name); 333 if (!isRight) { 334 usb.requestRight(gDeviceList[0].name).then(hasRight => { 335 }).catch(error => { 336 console.info('usb 09 requestRight error:' + error); 337 }); 338 console.info('usb 09 requestRight end:'); 339 CheckEmptyUtils.sleep(3000) 340 } 341 342 var device = JSON.parse(JSON.stringify(gDeviceList[0])); 343 device.vendorId = 2 + 10000 344 try { 345 var usbDevicePipe = usb.connectDevice(device) 346 } catch (err) { 347 expect(true).assertTrue(); 348 console.info('usb connectDevice fail:' + err); 349 } 350 console.info('usb case connectDevice ret: ' + JSON.stringify(usbDevicePipe) + 351 ' vendorId ' + device.vendorId); 352 expect(CheckEmptyUtils.isEmpty(usbDevicePipe)).assertFalse(); 353 var isPipClose = usb.closePipe(usbDevicePipe); 354 console.info('usb case closePipe ret: ' + isPipClose); 355 expect(isPipClose).assertEqual(0); 356 console.info('usb connect_device_09 : PASS'); 357 }) 358 359 /** 360 * @tc.number : SUB_USB_connect_device_10 361 * @tc.name : connectDevice 362 * @tc.desc : 反向测试 productId错误参数 打开设备 363 */ 364 it('SUB_USB_connect_device_10', 0, function () { 365 console.info('usb connect_device_10 begin'); 366 if (gDeviceList.length == 0) { 367 console.info('usb case get_device_list is null') 368 expect(false).assertTrue(); 369 return 370 } 371 var isRight = usb.hasRight(gDeviceList[0].name); 372 if (!isRight) { 373 usb.requestRight(gDeviceList[0].name).then(hasRight => { 374 }).catch(error => { 375 console.info('usb 10 requestRight error:' + error); 376 }); 377 console.info('usb 10 requestRight end:'); 378 CheckEmptyUtils.sleep(3000) 379 } 380 381 var device = JSON.parse(JSON.stringify(gDeviceList[0])); 382 device.productId = 2 + 10000 383 try { 384 var usbDevicePipe = usb.connectDevice(device) 385 } catch (err) { 386 expect(true).assertTrue(); 387 console.info('usb connectDevice fail:' + err); 388 } 389 console.info('usb case connectDevice ret: ' + JSON.stringify(usbDevicePipe) + 390 ' productId ' + device.productId); 391 expect(CheckEmptyUtils.isEmpty(usbDevicePipe)).assertFalse(); 392 var isPipClose = usb.closePipe(usbDevicePipe); 393 console.info('usb case closePipe ret: ' + isPipClose); 394 expect(isPipClose).assertEqual(0); 395 console.info('usb connect_device_10 : PASS'); 396 }) 397 398 /** 399 * @tc.number : SUB_USB_connect_device_11 400 * @tc.name : connectDevice 401 * @tc.desc : 反向测试 clazz错误参数 打开设备 402 */ 403 it('SUB_USB_connect_device_11', 0, function () { 404 console.info('usb connect_device_11 begin'); 405 if (gDeviceList.length == 0) { 406 console.info('usb case get_device_list is null') 407 expect(false).assertTrue(); 408 return 409 } 410 var isRight = usb.hasRight(gDeviceList[0].name); 411 if (!isRight) { 412 usb.requestRight(gDeviceList[0].name).then(hasRight => { 413 }).catch(error => { 414 console.info('usb 11 requestRight error:' + error); 415 }); 416 console.info('usb 11 requestRight end:'); 417 CheckEmptyUtils.sleep(3000) 418 } 419 420 var device = JSON.parse(JSON.stringify(gDeviceList[0])); 421 device.clazz = 2 + 10000 422 try { 423 var usbDevicePipe = usb.connectDevice(device) 424 } catch (err) { 425 expect(true).assertTrue(); 426 console.info('usb connectDevice fail:' + err); 427 } 428 console.info('usb case connectDevice ret: ' + JSON.stringify(usbDevicePipe) + ' clazz ' + device.clazz); 429 expect(CheckEmptyUtils.isEmpty(usbDevicePipe)).assertFalse(); 430 var isPipClose = usb.closePipe(usbDevicePipe); 431 console.info('usb case closePipe ret: ' + isPipClose); 432 expect(isPipClose).assertEqual(0); 433 console.info('usb connect_device_11 : PASS'); 434 }) 435 436 /** 437 * @tc.number : SUB_USB_connect_device_12 438 * @tc.name : connectDevice 439 * @tc.desc : 反向测试 subclass错误参数 打开设备 440 */ 441 it('SUB_USB_connect_device_12', 0, function () { 442 console.info('usb connect_device_12 begin'); 443 if (gDeviceList.length == 0) { 444 console.info('usb case get_device_list is null') 445 expect(false).assertTrue(); 446 return 447 } 448 var isRight = usb.hasRight(gDeviceList[0].name); 449 if (!isRight) { 450 usb.requestRight(gDeviceList[0].name).then(hasRight => { 451 }).catch(error => { 452 console.info('usb 12 requestRight error:' + error); 453 }); 454 console.info('usb 12 requestRight end:'); 455 CheckEmptyUtils.sleep(3000) 456 } 457 458 var device = JSON.parse(JSON.stringify(gDeviceList[0])); 459 device.subclass = 2 + 10000 460 try { 461 var usbDevicePipe = usb.connectDevice(device) 462 } catch (err) { 463 expect(true).assertTrue(); 464 console.info('usb connectDevice fail:' + err); 465 } 466 console.info('usb case connectDevice ret: ' + JSON.stringify(usbDevicePipe) + ' subclass ' + device.subclass); 467 expect(CheckEmptyUtils.isEmpty(usbDevicePipe)).assertFalse(); 468 var isPipClose = usb.closePipe(usbDevicePipe); 469 console.info('usb case closePipe ret: ' + isPipClose); 470 expect(isPipClose).assertEqual(0); 471 console.info('usb connect_device_12 : PASS'); 472 }) 473 474 /** 475 * @tc.number : SUB_USB_connect_device_13 476 * @tc.name : connectDevice 477 * @tc.desc : 反向测试 protocol错误参数 打开设备 478 */ 479 it('SUB_USB_connect_device_13', 0, function () { 480 console.info('usb connect_device_13 begin'); 481 if (gDeviceList.length == 0) { 482 console.info('usb case get_device_list is null') 483 expect(false).assertTrue(); 484 return 485 } 486 var isRight = usb.hasRight(gDeviceList[0].name); 487 if (!isRight) { 488 usb.requestRight(gDeviceList[0].name).then(hasRight => { 489 }).catch(error => { 490 console.info('usb 13 requestRight error:' + error); 491 }); 492 console.info('usb 13 requestRight end:'); 493 CheckEmptyUtils.sleep(3000) 494 } 495 496 var device = JSON.parse(JSON.stringify(gDeviceList[0])); 497 device.protocol = 2 + 10000 498 try { 499 var usbDevicePipe = usb.connectDevice(device) 500 } catch (err) { 501 expect(true).assertTrue(); 502 console.info('usb connectDevice fail:' + err); 503 } 504 console.info('usb case connectDevice ret: ' + JSON.stringify(usbDevicePipe) + ' protocol ' + device.protocol); 505 expect(CheckEmptyUtils.isEmpty(usbDevicePipe)).assertFalse(); 506 var isPipClose = usb.closePipe(usbDevicePipe); 507 console.info('usb case closePipe ret: ' + isPipClose); 508 expect(isPipClose).assertEqual(0); 509 console.info('usb connect_device_13 : PASS'); 510 }) 511 512 /** 513 * @tc.number : SUB_USB_has_right_02 514 * @tc.name : hasRight 515 * @tc.desc : 反向测试 给错误设备名字 516 */ 517 it('SUB_USB_has_right_02', 0, function () { 518 console.info('usb has_right_02 begin'); 519 if (gDeviceList.length == 0) { 520 console.info('usb case get_device_list is null') 521 expect(false).assertTrue(); 522 return 523 } 524 525 for (var i = 0; i < gDeviceList.length; i++) { 526 var deviceName = gDeviceList[i].name 527 deviceName = deviceName + '$#' 528 var hasRight = usb.hasRight(deviceName) 529 console.info('usb has_right ret :' + hasRight); 530 expect(hasRight == false).assertTrue(); 531 } 532 533 console.info('usb has_right_02 : PASS'); 534 expect(true).assertTrue(); 535 }) 536 537 /** 538 * @tc.number : SUB_USB_has_right_03 539 * @tc.name : hasRight 540 * @tc.desc : 反向测试 给设备名字为字母 541 */ 542 it('SUB_USB_has_right_03', 0, function () { 543 console.info('usb has_right_03 begin'); 544 if (gDeviceList.length == 0) { 545 console.info('usb case get_device_list is null') 546 expect(false).assertTrue(); 547 return 548 } 549 550 for (var i = 0; i < gDeviceList.length; i++) { 551 var deviceName = gDeviceList[i].name 552 deviceName = deviceName + 'abcdg' 553 var hasRight = usb.hasRight(deviceName) 554 console.info('usb hasRight ret :' + hasRight); 555 expect(hasRight == false).assertTrue(); 556 } 557 558 console.info('usb has_right_03 : PASS'); 559 expect(true).assertTrue(); 560 }) 561 562 /** 563 * @tc.number : SUB_USB_request_right_02 564 * @tc.name : requestRight 565 * @tc.desc : 反向测试 错误设备名字 请求权限 566 */ 567 it('SUB_USB_request_right_02', 0, function () { 568 console.info('usb request_right_02 begin'); 569 if (gDeviceList.length == 0) { 570 console.info('usb case get_device_list is null') 571 expect(false).assertTrue(); 572 return 573 } 574 575 for (var i = 0; i < gDeviceList.length; i++) { 576 var diviceName = gDeviceList[i].name 577 diviceName = diviceName + '@#' 578 usb.requestRight(diviceName).then(hasRight => { 579 console.info('usb request_right ret :' + hasRight); 580 expect(hasRight).assertFalse(); 581 console.info('usb request_right_02 : PASS'); 582 }).catch(error => { 583 expect(error).assertFalse(); 584 console.info('usb request_right_02 error: ' + error); 585 }); 586 } 587 }) 588 589 /** 590 * @tc.number : SUB_USB_request_right_03 591 * @tc.name : requestRight 592 * @tc.desc : 反向测试 设备名字为数字 请求权限 593 */ 594 it('SUB_USB_request_right_03', 0, function () { 595 console.info('usb request_right_03 begin'); 596 if (gDeviceList.length == 0) { 597 console.info('usb case get_device_list is null') 598 expect(false).assertTrue(); 599 return 600 } 601 602 for (var i = 0; i < gDeviceList.length; i++) { 603 var diviceName = gDeviceList[i].name 604 diviceName = diviceName + '123' 605 usb.requestRight(diviceName).then(hasRight => { 606 console.info('usb request_right ret :' + hasRight); 607 expect(hasRight).assertFalse(); 608 console.info('usb request_right_03 : PASS'); 609 }).catch(error => { 610 expect(error).assertFalse(); 611 console.info('usb request_right_03 error: ' + error); 612 }); 613 } 614 }) 615}) 616