Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5401)

Unified Diff: chrome/test/data/extensions/api_test/usb/invalid_length_transfer/test.js

Issue 12096024: Add validation to length, packets and packetLength parameters (Closed) Base URL: https://src.chromium.org/chrome/trunk/src/
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/usb/usb_device.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
« no previous file with comments | « chrome/browser/usb/usb_device.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698