* Copyright (c) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import usb from '@ohos.usb';
import CheckEmptyUtils from './CheckEmptyUtils.js';
import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'
describe('UsbCoreJsFunctionsTest', function () {
beforeAll(function () {
console.log('*************Usb Unit UsbCoreJsFunctionsTest Begin*************');
var Version = usb.getVersion()
console.info('begin test getversion :' + Version)
var usbPortList = usb.getPorts()
if (usbPortList.length > 0) {
if (usbPortList[0].status.currentMode == 1) {
usb.setPortRoles(usbPortList[0].id, usb.SOURCE, usb.HOST).then(data => {
console.info('usb case setPortRoles return: ' + data);
}).catch(error => {
console.info('usb case setPortRoles error : ' + error);
});
CheckEmptyUtils.sleep(8000)
console.log('*************Usb Unit Begin switch to host*************');
}
}
})
afterEach(function () {
console.info('afterEach: *************Usb Unit Test Case*************');
})
beforeEach(function () {
console.info('beforeEach: *************Usb Unit Test Case*************');
})
afterAll(function () {
console.log('*************Usb Unit UsbCoreJsFunctionsTest End*************');
})
var gDeviceList
var gPipe;
* @tc.number : SUB_USB_get_devices_test_01
* @tc.name : getDevices
* @tc.desc : 获取设备列表
*/
it('SUB_USB_get_devices_test_01', 0, function () {
console.info('usb get_device_01 begin');
gDeviceList = usb.getDevices();
if (gDeviceList.length == 0) {
console.info('usb case get_devices list is null')
expect(false).assertTrue();
return
}
expect(gDeviceList.length).assertLarger(0);
console.info('usb case getDevices ret length: ' + gDeviceList.length);
console.info('usb get_devices_test_01: PASS');
})
* @tc.number : SUB_USB_has_right_01
* @tc.name : hasRigt
* @tc.desc : 权限查询 连接设备 关闭设备
*/
it('SUB_USB_has_right_01', 0, function () {
console.info('usb has_right_01 begin');
if (gDeviceList.length == 0) {
console.info('usb case get_device_list is null')
expect(false).assertTrue();
return
}
for (var i = 0; i < gDeviceList.length; i++) {
var hasRight = usb.hasRight(gDeviceList[i].name)
console.info('usb has_right ret :' + hasRight);
}
console.info('usb has_right_01 : PASS');
expect(true).assertTrue();
})
* @tc.number : SUB_USB_request_right_01
* @tc.name : requestRight
* @tc.desc : 请求权限
*/
it('SUB_USB_request_right_01', 0, function () {
console.info('usb request_right_01 begin');
if (gDeviceList.length == 0) {
console.info('usb case get_device_list is null')
expect(false).assertTrue();
return
}
for (var i = 0; i < gDeviceList.length; i++) {
usb.requestRight(gDeviceList[i].name).then(hasRight => {
expect(hasRight).assertTrue();
console.info('usb request_right ret :' + hasRight);
console.info('usb request_right_01 : PASS');
}).catch(error => {
console.info('usb case device request right failed : ' + error + ' :' + gDeviceList[i].name);
expect(false).assertTrue();
});
}
})
* @tc.number : SUB_USB_connect_device_01
* @tc.name : connectDevice
* @tc.desc : 打开设备
*/
it('SUB_USB_connect_device_01', 0, function () {
console.info('usb connect_device_01 begin');
if (gDeviceList.length == 0) {
console.info('usb case get_device_list is null')
expect(false).assertTrue();
return
}
var isRight = usb.hasRight(gDeviceList[0].name);
if (!isRight) {
usb.requestRight(gDeviceList[0].name).then(hasRight => {
}).catch(error => {
console.info('usb 01 requestRight error:' + error);
});
CheckEmptyUtils.sleep(3000)
}
gPipe = usb.connectDevice(gDeviceList[0])
console.info('usb case connectDevice ret: ' + JSON.stringify(gPipe));
expect(CheckEmptyUtils.isEmpty(gPipe)).assertFalse();
console.info('usb connect_device_01 : PASS');
})
* @tc.number : SUB_USB_close_pipe_02
* @tc.name : closePipe
* @tc.desc : 反向测试 关闭设备 错误 busNum
*/
it('SUB_USB_close_pipe_02', 0, function () {
console.info('usb close_pipe_02 begin');
if (gDeviceList.length == 0) {
console.info('usb case get_device_list is null')
expect(false).assertTrue();
return
}
var tmpPipe = JSON.parse(JSON.stringify(gPipe));
tmpPipe.busNum = -23
var isPipClose = usb.closePipe(tmpPipe);
console.info('usb case closePipe ret: ' + isPipClose);
expect(isPipClose == 0).assertFalse();
console.info('usb close_pipe_02 : PASS');
})
* @tc.number : SUB_USB_close_pipe_03
* @tc.name : closePipe
* @tc.desc : 反向测试 关闭设备 错误 devAddress
*/
it('SUB_USB_close_pipe_03', 0, function () {
console.info('usb close_pipe_03 begin');
if (gDeviceList.length == 0) {
console.info('usb case get_device_list is null')
expect(false).assertTrue();
return
}
var tmpPipe = JSON.parse(JSON.stringify(gPipe));
tmpPipe.devAddress = -23
var isPipClose = usb.closePipe(tmpPipe);
console.info('usb case closePipe ret: ' + isPipClose);
expect(isPipClose == 0).assertFalse();
console.info('usb close_pipe_03 : PASS');
})
* @tc.number : SUB_USB_close_pipe_04
* @tc.name : closePipe
* @tc.desc : 反向测试 关闭设备 错误 devAddress busNum
*/
it('SUB_USB_close_pipe_04', 0, function () {
console.info('usb close_pipe_04 begin');
if (gDeviceList.length == 0) {
console.info('usb case get_device_list is null')
expect(false).assertTrue();
return
}
var tmpPipe = JSON.parse(JSON.stringify(gPipe));
tmpPipe.devAddress = -23
tmpPipe.busNum = -23
var isPipClose = usb.closePipe(tmpPipe);
console.info('usb case closePipe ret: ' + isPipClose);
expect(isPipClose == 0).assertFalse();
console.info('usb close_pipe_04 : PASS');
})
* @tc.number : SUB_USB_close_pipe_01
* @tc.name : closePipe
* @tc.desc : 关闭设备
*/
it('SUB_USB_close_pipe_01', 0, function () {
console.info('usb close_pipe_01 begin');
if (gDeviceList.length == 0) {
console.info('usb case get_device_list is null')
expect(false).assertTrue();
return
}
console.info('usb case closePipe param: ' + JSON.stringify(gPipe));
var isPipClose = usb.closePipe(gPipe);
console.info('usb case closePipe ret: ' + isPipClose);
expect(isPipClose).assertEqual(0);
console.info('usb close_pipe_01 : PASS');
})
* @tc.number : SUB_USB_get_raw_descriptor_01
* @tc.name : getRawDescriptor
* @tc.desc : 获取原始的USB描述符
*/
it('SUB_USB_get_raw_descriptor_01', 0, function () {
if (gDeviceList.length == 0) {
console.info('usb case get_device_list is null')
expect(false).assertTrue();
return
}
gPipe = usb.connectDevice(gDeviceList[0])
console.info('usb case getRawDescriptor param: ' + JSON.stringify(gPipe));
var descriptor = usb.getRawDescriptor(gPipe);
console.info('usb case getRawDescriptor ret: ' + descriptor);
expect(true).assertTrue();
var isPipClose = usb.closePipe(gPipe);
expect(isPipClose).assertEqual(0);
console.info('usb SUB_USB_get_raw_descriptor_01 : PASS');
})
* @tc.number : SUB_USB_get_file_descriptor_01
* @tc.name : getFileDescriptor
* @tc.desc : 获取文件描述符
*/
it('SUB_USB_get_file_descriptor_01', 0, function () {
if (gDeviceList.length == 0) {
console.info('usb case get_device_list is null')
expect(false).assertTrue();
return
}
gPipe = usb.connectDevice(gDeviceList[0])
console.info('usb case getFileDescriptor param: ' + JSON.stringify(gPipe));
var fileDescriptor = usb.getFileDescriptor(gPipe);
console.info('usb case getFileDescriptor ret: ' + fileDescriptor);
expect(true).assertTrue();
var isPipClose = usb.closePipe(gPipe);
expect(isPipClose).assertEqual(0);
console.info('usb SUB_USB_get_file_descriptor_01 : PASS');
})
* @tc.number : SUB_USB_get_file_descriptor_02
* @tc.name : getFileDescriptor
* @tc.desc : 获取文件描述符,反向测试,错误参数busNum=512
*/
it('SUB_USB_get_file_descriptor_02', 0, function () {
if (gDeviceList.length == 0) {
console.info('usb case get_device_list is null')
expect(false).assertTrue();
return
}
gPipe = usb.connectDevice(gDeviceList[0])
var tempPipe = {busNum : 255, devAddress : 255}
console.info('usb case getFileDescriptor param: ' + JSON.stringify(gPipe));
var fileDescriptor = usb.getFileDescriptor(tempPipe);
expect(fileDescriptor < 0).assertTrue();
console.info('usb case getFileDescriptor ret: ' + fileDescriptor);
var isPipClose = usb.closePipe(gPipe);
expect(isPipClose).assertEqual(0);
console.info('usb SUB_USB_get_file_descriptor_02 : PASS');
})
* @tc.number : SUB_USB_get_file_descriptor_03
* @tc.name : getFileDescriptor
* @tc.desc : 获取文件描述符,反向测试,错误参数devAddress=512
*/
it('SUB_USB_get_file_descriptor_03', 0, function () {
if (gDeviceList.length == 0) {
console.info('usb case get_device_list is null')
expect(false).assertTrue();
return
}
gPipe = usb.connectDevice(gDeviceList[0])
var tempPipe = {busNum : 255, devAddress : gPipe.devAddress}
console.info('usb case getFileDescriptor param: ' + JSON.stringify(gPipe));
var fileDescriptor = usb.getFileDescriptor(tempPipe);
expect(fileDescriptor < 0).assertTrue();
console.info('usb case getFileDescriptor ret: ' + fileDescriptor);
var isPipClose = usb.closePipe(gPipe);
expect(isPipClose).assertEqual(0);
console.info('usb SUB_USB_get_file_descriptor_03 : PASS');
})
* @tc.number : SUB_USB_get_file_descriptor_04
* @tc.name : getFileDescriptor
* @tc.desc : 获取文件描述符,反向测试,错误参数busNum=512,devAddress=512
*/
it('SUB_USB_get_file_descriptor_04', 0, function () {
if (gDeviceList.length == 0) {
console.info('usb case get_device_list is null')
expect(false).assertTrue();
return
}
gPipe = usb.connectDevice(gDeviceList[0])
var tempPipe = {busNum : gPipe.busNum, devAddress : 255}
console.info('usb case getFileDescriptor param: ' + JSON.stringify(gPipe));
var fileDescriptor = usb.getFileDescriptor(tempPipe);
expect(fileDescriptor < 0).assertTrue();
console.info('usb case getFileDescriptor ret: ' + fileDescriptor);
var isPipClose = usb.closePipe(gPipe);
expect(isPipClose).assertEqual(0);
console.info('usb SUB_USB_get_file_descriptor_04 : PASS');
})
})