Index: chrome/test/data/extensions/api_test/usb/invalid_length_transfer/test.js |
=================================================================== |
--- chrome/test/data/extensions/api_test/usb/invalid_length_transfer/test.js (revision 182069) |
+++ chrome/test/data/extensions/api_test/usb/invalid_length_transfer/test.js (working copy) |
@@ -23,9 +23,16 @@ |
"transferInfo": genericTransfer, |
"packets": 0 |
}; |
-var errorMessage = 'Transfer length must be a ' + |
+var errorTransferLength = 'Transfer length must be a ' + |
'positive number less than 104,857,600.'; |
+var errorNumPackets = 'Number of packets must be a ' + |
+ 'positive number less than 4,194,304.'; |
+var errorPacketLength = 'Packet length must be a ' + |
+ 'positive number less than 65,536.'; |
+var errorInsufficientTransferLength = 'Transfer length is insufficient.'; |
var largeSize = 100 * 1024 * 1024 + 1; |
+var maxPackets = 4 * 1024 * 1024; |
+var maxPacketLength = 64 * 1024; |
function createInvalidTransferTest(usbFunction, transferInfo, transferLength) { |
return function() { |
@@ -34,11 +41,26 @@ |
usb.findDevices({vendorId: 0, productId: 0}, function(devices) { |
var device = devices[0]; |
usbFunction(device, transferInfo, chrome.test.callbackFail( |
- errorMessage, function() {})); |
+ errorTransferLength, function() {})); |
}); |
}; |
} |
+function createInvalidPacketLengthTest( |
+ transferLength, packets, packetLength, errorMessage) { |
+ return function() { |
+ genericTransfer["length"] = transferLength; |
+ isoTransfer["packets"] = packets; |
+ isoTransfer["packetLength"] = packetLength; |
+ usb.findDevices({vendorId: 0, productId: 0}, function(devices) { |
+ var device = devices[0]; |
+ usb.isochronousTransfer(device, isoTransfer, |
+ chrome.test.callbackFail( |
+ errorMessage, function() {})); |
+ }); |
+ }; |
+} |
+ |
var tests = [ |
createInvalidTransferTest(usb.bulkTransfer, genericTransfer, -1), |
createInvalidTransferTest(usb.controlTransfer, controlTransfer, -1), |
@@ -47,7 +69,13 @@ |
createInvalidTransferTest(usb.bulkTransfer, genericTransfer, largeSize), |
createInvalidTransferTest(usb.controlTransfer, controlTransfer, largeSize), |
createInvalidTransferTest(usb.interruptTransfer, genericTransfer, largeSize), |
- createInvalidTransferTest(usb.isochronousTransfer, isoTransfer, largeSize) |
+ createInvalidTransferTest(usb.isochronousTransfer, isoTransfer, largeSize), |
+ |
+ createInvalidPacketLengthTest(1024, -1, 0, errorNumPackets), |
+ createInvalidPacketLengthTest(maxPackets, maxPackets, 0, errorNumPackets), |
+ createInvalidPacketLengthTest(1024, 100, -1, errorPacketLength), |
+ createInvalidPacketLengthTest(1024, 100, maxPacketLength, errorPacketLength), |
+ createInvalidPacketLengthTest(1024, 1025, 0, errorInsufficientTransferLength) |
]; |
chrome.test.runTests(tests); |