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

Unified Diff: third_party/WebKit/LayoutTests/usb/usbDevice.html

Issue 1754543003: Add WebUSB layout tests for device disconnection. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addresses rockot@'s nits. Created 4 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 | « third_party/WebKit/LayoutTests/usb/usb.html ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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>
« no previous file with comments | « third_party/WebKit/LayoutTests/usb/usb.html ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698