Index: third_party/WebKit/LayoutTests/usb/usbDevice.html |
diff --git a/third_party/WebKit/LayoutTests/usb/usbDevice.html b/third_party/WebKit/LayoutTests/usb/usbDevice.html |
index 9f3b6af16402ecc45ea33ded0205bbb93f0e2b88..bd71cc6be4028981c939ed326a3f5a2cb1023014 100644 |
--- a/third_party/WebKit/LayoutTests/usb/usbDevice.html |
+++ b/third_party/WebKit/LayoutTests/usb/usbDevice.html |
@@ -7,6 +7,23 @@ |
<script> |
'use strict'; |
+function assertRejectsWithNotFoundError(promise) { |
+ return promise.then(() => { |
+ assert_unreached('promise should reject'); |
+ }, error => { |
+ assert_equals(error.code, DOMException.NOT_FOUND_ERR); |
+ }); |
+} |
+ |
+usb_test(usb => { |
+ usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); |
+ return navigator.usb.getDevices().then(devices => { |
+ assert_equals(1, devices.length); |
+ usb.mockDeviceManager.removeMockDevice(usb.fakeDevices[0]); |
+ return assertRejectsWithNotFoundError(devices[0].open()); |
+ }); |
+}, 'open rejects when called on a disconnected device'); |
+ |
usb_test(usb => { |
usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); |
return navigator.usb.getDevices().then(devices => { |
@@ -21,6 +38,31 @@ usb_test(usb => { |
return navigator.usb.getDevices().then(devices => { |
assert_equals(1, devices.length); |
let device = devices[0]; |
+ return device.open().then(() => { |
+ usb.mockDeviceManager.removeMockDevice(usb.fakeDevices[0]); |
+ return assertRejectsWithNotFoundError(device.close()); |
+ }); |
+ }); |
+}, 'close rejects when called on a disconnected device'); |
+ |
+usb_test(usb => { |
+ usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); |
+ return navigator.usb.getDevices().then(devices => { |
+ assert_equals(1, devices.length); |
+ var device = devices[0]; |
+ return device.open() |
+ .then(() => { |
+ usb.mockDeviceManager.removeMockDevice(usb.fakeDevices[0]); |
+ return assertRejectsWithNotFoundError(device.setConfiguration(1)); |
+ }); |
+ }); |
+}, 'setConfiguration rejects when called on a disconnected device'); |
+ |
+usb_test(usb => { |
+ usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); |
+ return navigator.usb.getDevices().then(devices => { |
+ assert_equals(1, devices.length); |
+ let device = devices[0]; |
return device.open() |
.then(() => device.setConfiguration(1)) |
.then(() => device.getConfiguration()) |
@@ -35,6 +77,23 @@ usb_test(usb => { |
usb_test(usb => { |
usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); |
return navigator.usb.getDevices().then(devices => { |
+ assert_equals(1, devices.length); |
+ var device = devices[0]; |
+ return device.open() |
+ .then(() => device.setConfiguration(1)) |
+ .then(() => device.getConfiguration()) |
+ .then(config => { |
+ usb.assertConfigurationInfoEquals( |
+ config, usb.fakeDevices[0].configurations[0]); |
+ usb.mockDeviceManager.removeMockDevice(usb.fakeDevices[0]); |
+ return assertRejectsWithNotFoundError(device.getConfiguration()); |
+ }); |
+ }); |
+}, 'getConfiguration rejects when called on a disconnected device'); |
+ |
+usb_test(usb => { |
+ usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); |
+ return navigator.usb.getDevices().then(devices => { |
assert_equals(devices.length, 1); |
let device = devices[0]; |
return device.open() |
@@ -86,6 +145,35 @@ usb_test(usb => { |
usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); |
return navigator.usb.getDevices().then(devices => { |
assert_equals(1, devices.length); |
+ var device = devices[0]; |
+ return device.open() |
+ .then(() => device.setConfiguration(1)) |
+ .then(() => { |
+ usb.mockDeviceManager.removeMockDevice(usb.fakeDevices[0]); |
+ return assertRejectsWithNotFoundError(device.claimInterface(0)); |
+ }); |
+ }); |
+}, 'claimInterface rejects when called on a disconnected device'); |
+ |
+usb_test(usb => { |
+ usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); |
+ return navigator.usb.getDevices().then(devices => { |
+ assert_equals(1, devices.length); |
+ var device = devices[0]; |
+ return device.open() |
+ .then(() => device.setConfiguration(1)) |
+ .then(() => device.claimInterface(0)) |
+ .then(() => { |
+ usb.mockDeviceManager.removeMockDevice(usb.fakeDevices[0]); |
+ return assertRejectsWithNotFoundError(device.releaseInterface(0)); |
+ }); |
+ }); |
+}, 'releaseInterface rejects when called on a disconnected device'); |
+ |
+usb_test(usb => { |
+ usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); |
+ return navigator.usb.getDevices().then(devices => { |
+ assert_equals(1, devices.length); |
let device = devices[0]; |
return device.open() |
.then(() => device.setConfiguration(2)) |
@@ -99,6 +187,21 @@ usb_test(usb => { |
usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); |
return navigator.usb.getDevices().then(devices => { |
assert_equals(1, devices.length); |
+ var device = devices[0]; |
+ return device.open() |
+ .then(() => device.setConfiguration(2)) |
+ .then(() => device.claimInterface(0)) |
+ .then(() => { |
+ usb.mockDeviceManager.removeMockDevice(usb.fakeDevices[0]); |
+ return assertRejectsWithNotFoundError(device.setInterface(0, 1)); |
+ }); |
+ }); |
+}, 'setInterface rejects when called on a disconnected device'); |
+ |
+usb_test(usb => { |
+ usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); |
+ return navigator.usb.getDevices().then(devices => { |
+ assert_equals(1, devices.length); |
let device = devices[0]; |
return device.open() |
.then(() => device.controlTransferIn({ |
@@ -127,6 +230,25 @@ usb_test(usb => { |
assert_equals(1, devices.length); |
let device = devices[0]; |
return device.open() |
+ .then(() => { |
+ usb.mockDeviceManager.removeMockDevice(usb.fakeDevices[0]); |
+ return assertRejectsWithNotFoundError(device.controlTransferIn({ |
+ requestType: 'vendor', |
+ recipient: 'device', |
+ request: 0x42, |
+ value: 0x1234, |
+ index: 0x5678 |
+ }, 7)); |
+ }); |
+ }); |
+}, 'controlTransferIn rejects when called on a disconnected device'); |
+ |
+usb_test(usb => { |
+ usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); |
+ return navigator.usb.getDevices().then(devices => { |
+ assert_equals(1, devices.length); |
+ let device = devices[0]; |
+ return device.open() |
.then(() => device.controlTransferOut({ |
requestType: 'vendor', |
recipient: 'device', |
@@ -146,6 +268,25 @@ usb_test(usb => { |
usb_test(usb => { |
usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); |
return navigator.usb.getDevices().then(devices => { |
+ assert_equals(1, devices.length); |
+ let device = devices[0]; |
+ return device.open() |
+ .then(() => { |
+ usb.mockDeviceManager.removeMockDevice(usb.fakeDevices[0]); |
+ return assertRejectsWithNotFoundError(device.controlTransferOut({ |
+ requestType: 'vendor', |
+ recipient: 'device', |
+ request: 0x42, |
+ value: 0x1234, |
+ index: 0x5678 |
+ }, new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]))); |
+ }); |
+ }); |
+}, 'controlTransferOut rejects when called on a disconnected device'); |
+ |
+usb_test(usb => { |
+ usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); |
+ return navigator.usb.getDevices().then(devices => { |
assert_equals(devices.length, 1); |
let device = devices[0]; |
return device.open() |
@@ -164,6 +305,21 @@ usb_test(usb => { |
return device.open() |
.then(() => device.setConfiguration(1)) |
.then(() => device.claimInterface(0)) |
+ .then(() => { |
+ usb.mockDeviceManager.removeMockDevice(usb.fakeDevices[0]); |
+ return assertRejectsWithNotFoundError(device.clearHalt(1)); |
+ }); |
+ }); |
+}, 'clearHalt rejects when called on a disconnected device'); |
+ |
+usb_test(usb => { |
+ usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); |
+ return navigator.usb.getDevices().then(devices => { |
+ assert_equals(devices.length, 1); |
+ let device = devices[0]; |
+ return device.open() |
+ .then(() => device.setConfiguration(1)) |
+ .then(() => device.claimInterface(0)) |
.then(() => device.transferIn(1, 8)) |
.then(result => { |
assert_true(result instanceof USBInTransferResult); |
@@ -206,6 +362,21 @@ usb_test(usb => { |
.then(() => device.setConfiguration(1)) |
.then(() => device.claimInterface(1)) |
.then(() => { |
+ usb.mockDeviceManager.removeMockDevice(usb.fakeDevices[0]); |
+ return assertRejectsWithNotFoundError(device.transferIn(2, 1024)); |
+ }); |
+ }); |
+}, 'transferIn rejects if called on a disconnected device'); |
+ |
+usb_test(usb => { |
+ usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); |
+ return navigator.usb.getDevices().then(devices => { |
+ assert_equals(devices.length, 1); |
+ let device = devices[0]; |
+ return device.open() |
+ .then(() => device.setConfiguration(1)) |
+ .then(() => device.claimInterface(1)) |
+ .then(() => { |
let data = new DataView(new ArrayBuffer(1024)); |
for (let i = 0; i < 1024; ++i) |
data.setUint8(i, i & 0xff); |
@@ -226,6 +397,24 @@ usb_test(usb => { |
assert_equals(devices.length, 1); |
let device = devices[0]; |
return device.open() |
+ .then(() => device.setConfiguration(1)) |
+ .then(() => device.claimInterface(1)) |
+ .then(() => { |
+ let data = new DataView(new ArrayBuffer(1024)); |
+ for (let i = 0; i < 1024; ++i) |
+ data.setUint8(i, i & 0xff); |
+ usb.mockDeviceManager.removeMockDevice(usb.fakeDevices[0]); |
+ return assertRejectsWithNotFoundError(device.transferOut(2, data)); |
+ }); |
+ }); |
+}, 'transferOut rejects if called on a disconnected device'); |
+ |
+usb_test(usb => { |
+ usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); |
+ return navigator.usb.getDevices().then(devices => { |
+ assert_equals(devices.length, 1); |
+ let device = devices[0]; |
+ return device.open() |
.then(() => device.setConfiguration(2)) |
.then(() => device.claimInterface(0)) |
.then(() => device.setInterface(0, 1)) |
@@ -263,6 +452,23 @@ usb_test(usb => { |
.then(() => device.claimInterface(0)) |
.then(() => device.setInterface(0, 1)) |
.then(() => { |
+ usb.mockDeviceManager.removeMockDevice(usb.fakeDevices[0]); |
+ return assertRejectsWithNotFoundError(device.isochronousTransferIn( |
+ 1, [64, 64, 64, 64, 64, 64, 64, 64])); |
+ }); |
+ }); |
+}, 'isochronousTransferIn rejects when called on a disconnected device'); |
+ |
+usb_test(usb => { |
+ usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); |
+ return navigator.usb.getDevices().then(devices => { |
+ assert_equals(devices.length, 1); |
+ let device = devices[0]; |
+ return device.open() |
+ .then(() => device.setConfiguration(2)) |
+ .then(() => device.claimInterface(0)) |
+ .then(() => device.setInterface(0, 1)) |
+ .then(() => { |
let data = new DataView(new ArrayBuffer(64 * 8)); |
for (let i = 0; i < 8; ++i) { |
for (let j = 0; j < 64; ++j) |
@@ -289,9 +495,43 @@ usb_test(usb => { |
usb_test(usb => { |
usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); |
return navigator.usb.getDevices().then(devices => { |
+ assert_equals(devices.length, 1); |
+ let device = devices[0]; |
+ return device.open() |
+ .then(() => device.setConfiguration(2)) |
+ .then(() => device.claimInterface(0)) |
+ .then(() => device.setInterface(0, 1)) |
+ .then(() => { |
+ let data = new DataView(new ArrayBuffer(64 * 8)); |
+ for (let i = 0; i < 8; ++i) { |
+ for (let j = 0; j < 64; ++j) |
+ data.setUint8(i * j, j & 0xff); |
+ } |
+ usb.mockDeviceManager.removeMockDevice(usb.fakeDevices[0]); |
+ return assertRejectsWithNotFoundError(device.isochronousTransferOut( |
+ 1, data, [64, 64, 64, 64, 64, 64, 64, 64])); |
+ }); |
+ }); |
+}, 'isochronousTransferOut rejects when called on a disconnected device'); |
+ |
+usb_test(usb => { |
+ usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); |
+ return navigator.usb.getDevices().then(devices => { |
assert_equals(1, devices.length); |
let device = devices[0]; |
return device.open().then(() => device.reset()).then(() => device.close()); |
}); |
}, 'can reset the device'); |
+ |
+usb_test(usb => { |
+ usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); |
+ return navigator.usb.getDevices().then(devices => { |
+ assert_equals(1, devices.length); |
+ let device = devices[0]; |
+ return device.open().then(() => { |
+ usb.mockDeviceManager.removeMockDevice(usb.fakeDevices[0]); |
+ return assertRejectsWithNotFoundError(device.reset()); |
+ }); |
+ }); |
+}, 'resetDevice rejects when called on a disconnected device'); |
</script> |