var usb = chrome.usb;
function createErrorTest(resultCode, errorMessage) {
return function() {
usb.findDevices({vendorId: 0, productId: 0}, function(devices) {
var device = devices[0];
var transfer = new Object();
transfer.direction = "out";
transfer.endpoint = 1;
transfer.data = new ArrayBuffer(0);
usb.bulkTransfer(device, transfer, function (result) {
if (errorMessage) {
chrome.test.assertLastError(errorMessage);
} else {
chrome.test.assertNoLastError();
}
chrome.test.assertTrue(resultCode == result.resultCode);
chrome.test.succeed();
});
});
};
}
function createIsochronousErrorTest(resultCode, errorMessage) {
return function() {
usb.findDevices({vendorId: 0, productId: 0}, function(devices) {
var device = devices[0];
var transfer = {
'transferInfo': {
'direction': "in",
'endpoint': 2,
'length': 160
},
'packets': 10,
'packetLength': 16
};
usb.isochronousTransfer(device, transfer, function (result) {
if (errorMessage) {
chrome.test.assertLastError(errorMessage);
chrome.test.assertTrue(result.data.byteLength == 40);
} else {
chrome.test.assertNoLastError();
chrome.test.assertTrue(result.data.byteLength == 80);
}
chrome.test.assertTrue(resultCode == result.resultCode);
chrome.test.succeed();
});
});
};
}
var tests = [
createErrorTest(0, undefined),
createErrorTest(1, "Transfer failed."),
createErrorTest(2, "Transfer timed out."),
createIsochronousErrorTest(0, undefined),
createIsochronousErrorTest(1, "Transfer failed."),
];
chrome.test.runTests(tests);