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 |
deleted file mode 100644 |
index 56a467ef2724fd0044ca177c0dd33affd58c3667..0000000000000000000000000000000000000000 |
--- a/third_party/WebKit/LayoutTests/usb/usbDevice.html |
+++ /dev/null |
@@ -1,655 +0,0 @@ |
-<!DOCTYPE html> |
-<script src="../resources/testharness.js"></script> |
-<script src="../resources/testharnessreport.js"></script> |
-<script src="resources/fake-devices.js"></script> |
-<script src="resources/usb-helpers.js"></script> |
-<script src="resources/webusb-test.js"></script> |
-<script> |
-'use strict'; |
- |
-function assertRejectsWithNotFoundError(promise) { |
- return assertRejectsWithError(promise, 'NotFoundError'); |
-} |
- |
-function assertRejectsWithNotOpenError(promise) { |
- return assertRejectsWithError( |
- promise, 'InvalidStateError', 'The device must be opened first.') |
-} |
- |
-function assertRejectsWithNotConfiguredError(promise) { |
- return assertRejectsWithError( |
- promise, 'InvalidStateError', |
- 'The device must have a configuration selected.'); |
-} |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device, fakeDevice }) => { |
- return waitForDisconnect(fakeDevice) |
- .then(() => assertRejectsWithNotFoundError(device.open())); |
- }); |
-}, 'open rejects when called on a disconnected device'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device, fakeDevice }) => { |
- return device.open() |
- .then(() => waitForDisconnect(fakeDevice)) |
- .then(() => { |
- assert_false(device.opened); |
- }); |
- }); |
-}, 'disconnection closes the device'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device }) => { |
- assert_false(device.opened); |
- return device.open().then(() => { |
- assert_true(device.opened); |
- return device.close().then(() => { |
- assert_false(device.opened); |
- }); |
- }); |
- }); |
-}, 'a device can be opened and closed'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device }) => { |
- return device.open() |
- .then(() => device.open()) |
- .then(() => device.open()) |
- .then(() => device.open()) |
- .then(() => device.close()) |
- .then(() => device.close()) |
- .then(() => device.close()) |
- .then(() => device.close()); |
- }); |
-}, 'open and close can be called multiple times'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device }) => { |
- const message = |
- 'An operation that changes the device state is in progress.'; |
- return Promise.all([ |
- device.open(), |
- assertRejectsWithError(device.open(), 'InvalidStateError', message), |
- assertRejectsWithError(device.close(), 'InvalidStateError', message), |
- ]).then(() => Promise.all([ |
- device.close(), |
- assertRejectsWithError(device.open(), 'InvalidStateError', message), |
- assertRejectsWithError(device.close(), 'InvalidStateError', message), |
- ])); |
- }); |
-}, 'open and close cannot be called again while open or close are in progress'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device, fakeDevice }) => { |
- return device.open() |
- .then(() => waitForDisconnect(fakeDevice)) |
- .then(() => assertRejectsWithNotFoundError(device.close())); |
- }); |
-}, 'close rejects when called on a disconnected device'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device, fakeDevice }) => { |
- return device.open() |
- .then(() => waitForDisconnect(fakeDevice)) |
- .then(() => assertRejectsWithNotFoundError(device.selectConfiguration(1))); |
- }); |
-}, 'selectConfiguration rejects when called on a disconnected device'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device }) => Promise.all([ |
- assertRejectsWithNotOpenError(device.selectConfiguration(1)), |
- assertRejectsWithNotOpenError(device.claimInterface(0)), |
- assertRejectsWithNotOpenError(device.releaseInterface(0)), |
- assertRejectsWithNotOpenError(device.selectAlternateInterface(0, 1)), |
- assertRejectsWithNotOpenError(device.controlTransferIn({ |
- requestType: 'vendor', |
- recipient: 'device', |
- request: 0x42, |
- value: 0x1234, |
- index: 0x5678 |
- }, 7)), |
- assertRejectsWithNotOpenError(device.controlTransferOut({ |
- requestType: 'vendor', |
- recipient: 'device', |
- request: 0x42, |
- value: 0x1234, |
- index: 0x5678 |
- }, new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]))), |
- assertRejectsWithNotOpenError(device.clearHalt('in', 1)), |
- assertRejectsWithNotOpenError(device.transferIn(1, 8)), |
- assertRejectsWithNotOpenError( |
- device.transferOut(1, new ArrayBuffer(8))), |
- assertRejectsWithNotOpenError(device.isochronousTransferIn(1, [8])), |
- assertRejectsWithNotOpenError( |
- device.isochronousTransferOut(1, new ArrayBuffer(8), [8])), |
- assertRejectsWithNotOpenError(device.reset()) |
- ])); |
-}, 'methods requiring it reject when the device is not open'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device }) => { |
- assert_equals(device.configuration, null); |
- return device.open() |
- .then(() => { |
- assert_equals(device.configuration, null); |
- return device.selectConfiguration(1); |
- }) |
- .then(() => { |
- assertDeviceInfoEquals( |
- device.configuration, fakeDeviceInit.configurations[0]); |
- }) |
- .then(() => device.close()); |
- }); |
-}, 'device configuration can be set and queried'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device }) => { |
- assert_equals(device.configuration, null); |
- return device.open() |
- .then(() => assertRejectsWithError( |
- device.selectConfiguration(3), 'NotFoundError', |
- 'The configuration value provided is not supported by the device.')) |
- .then(() => device.close()); |
- }); |
-}, 'selectConfiguration rejects on invalid configurations'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device }) => { |
- assert_equals(device.configuration, null); |
- return device.open().then(() => Promise.all([ |
- assertRejectsWithNotConfiguredError(device.claimInterface(0)), |
- assertRejectsWithNotConfiguredError(device.releaseInterface(0)), |
- assertRejectsWithNotConfiguredError(device.selectAlternateInterface(0, 1)), |
- assertRejectsWithNotConfiguredError(device.controlTransferIn({ |
- requestType: 'vendor', |
- recipient: 'device', |
- request: 0x42, |
- value: 0x1234, |
- index: 0x5678 |
- }, 7)), |
- assertRejectsWithNotConfiguredError(device.controlTransferOut({ |
- requestType: 'vendor', |
- recipient: 'device', |
- request: 0x42, |
- value: 0x1234, |
- index: 0x5678 |
- }, new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]))), |
- assertRejectsWithNotConfiguredError(device.clearHalt('in', 1)), |
- assertRejectsWithNotConfiguredError(device.transferIn(1, 8)), |
- assertRejectsWithNotConfiguredError( |
- device.transferOut(1, new ArrayBuffer(8))), |
- assertRejectsWithNotConfiguredError( |
- device.isochronousTransferIn(1, [8])), |
- assertRejectsWithNotConfiguredError( |
- device.isochronousTransferOut(1, new ArrayBuffer(8), [8])), |
- ])).then(() => device.close()); |
- }); |
-}, 'methods requiring it reject when the device is unconfigured'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device }) => { |
- return device.open() |
- .then(() => device.selectConfiguration(1)) |
- .then(() => device.claimInterface(0)) |
- .then(() => { |
- assert_true(device.configuration.interfaces[0].claimed); |
- return device.releaseInterface(0); |
- }) |
- .then(() => { |
- assert_false(device.configuration.interfaces[0].claimed); |
- return device.close(); |
- }); |
- }); |
-}, 'an interface can be claimed and released'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device }) => { |
- return device.open() |
- .then(() => device.selectConfiguration(1)) |
- .then(() => device.claimInterface(0)) |
- .then(() => { |
- assert_true(device.configuration.interfaces[0].claimed); |
- return device.close(0); |
- }) |
- .then(() => { |
- assert_false(device.configuration.interfaces[0].claimed); |
- }); |
- }); |
-}, 'interfaces are released on close'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device }) => { |
- const message = 'The interface number provided is not supported by the ' + |
- 'device in its current configuration.'; |
- return device.open() |
- .then(() => device.selectConfiguration(1)) |
- .then(() => Promise.all([ |
- assertRejectsWithError( |
- device.claimInterface(2), 'NotFoundError', message), |
- assertRejectsWithError( |
- device.releaseInterface(2), 'NotFoundError', message), |
- ])) |
- .then(() => device.close()); |
- }); |
-}, 'a non-existent interface cannot be claimed or released'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device, fakeDevice }) => { |
- return device.open() |
- .then(() => device.selectConfiguration(1)) |
- .then(() => waitForDisconnect(fakeDevice)) |
- .then(() => assertRejectsWithNotFoundError(device.claimInterface(0))); |
- }); |
-}, 'claimInterface rejects when called on a disconnected device'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device, fakeDevice }) => { |
- return device.open() |
- .then(() => device.selectConfiguration(1)) |
- .then(() => device.claimInterface(0)) |
- .then(() => waitForDisconnect(fakeDevice)) |
- .then(() => assertRejectsWithNotFoundError(device.releaseInterface(0))); |
- }); |
-}, 'releaseInterface rejects when called on a disconnected device'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device }) => { |
- return device.open() |
- .then(() => device.selectConfiguration(2)) |
- .then(() => device.claimInterface(0)) |
- .then(() => device.selectAlternateInterface(0, 1)) |
- .then(() => device.close()); |
- }); |
-}, 'can select an alternate interface'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device }) => { |
- return device.open() |
- .then(() => device.selectConfiguration(2)) |
- .then(() => device.claimInterface(0)) |
- .then(() => assertRejectsWithError( |
- device.selectAlternateInterface(0, 2), 'NotFoundError', |
- 'The alternate setting provided is not supported by the device in ' + |
- 'its current configuration.')) |
- .then(() => device.close()); |
- }); |
-}, 'cannot select a non-existent alternate interface'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device, fakeDevice }) => { |
- return device.open() |
- .then(() => device.selectConfiguration(2)) |
- .then(() => device.claimInterface(0)) |
- .then(() => waitForDisconnect(fakeDevice)) |
- .then(() => assertRejectsWithNotFoundError(device.selectAlternateInterface(0, 1))); |
- }); |
-}, 'selectAlternateInterface rejects when called on a disconnected device'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device }) => { |
- return device.open() |
- .then(() => device.selectConfiguration(1)) |
- .then(() => device.controlTransferIn({ |
- requestType: 'vendor', |
- recipient: 'device', |
- request: 0x42, |
- value: 0x1234, |
- index: 0x5678 |
- }, 7)) |
- .then(result => { |
- assert_true(result instanceof USBInTransferResult); |
- assert_equals(result.status, 'ok'); |
- assert_equals(result.data.byteLength, 7); |
- assert_equals(result.data.getUint16(0), 0x07); |
- assert_equals(result.data.getUint8(2), 0x42); |
- assert_equals(result.data.getUint16(3), 0x1234); |
- assert_equals(result.data.getUint16(5), 0x5678); |
- return device.close(); |
- }); |
- }); |
-}, 'can issue IN control transfer'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device, fakeDevice }) => { |
- return device.open() |
- .then(() => device.selectConfiguration(1)) |
- .then(() => waitForDisconnect(fakeDevice)) |
- .then(() => assertRejectsWithNotFoundError(device.controlTransferIn({ |
- requestType: 'vendor', |
- recipient: 'device', |
- request: 0x42, |
- value: 0x1234, |
- index: 0x5678 |
- }, 7))); |
- }); |
-}, 'controlTransferIn rejects when called on a disconnected device'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device }) => { |
- return device.open() |
- .then(() => device.selectConfiguration(1)) |
- .then(() => device.controlTransferOut({ |
- requestType: 'vendor', |
- recipient: 'device', |
- request: 0x42, |
- value: 0x1234, |
- index: 0x5678 |
- }, new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]))) |
- .then(result => { |
- assert_true(result instanceof USBOutTransferResult); |
- assert_equals(result.status, 'ok'); |
- assert_equals(result.bytesWritten, 8); |
- return device.close(); |
- }) |
- }); |
-}, 'can issue OUT control transfer'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device, fakeDevice }) => { |
- return device.open() |
- .then(() => device.selectConfiguration(1)) |
- .then(() => waitForDisconnect(fakeDevice)) |
- .then(() => 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(() => { |
- return getFakeDevice().then(({ device }) => { |
- let interfaceRequest = { |
- requestType: 'vendor', |
- recipient: 'interface', |
- request: 0x42, |
- value: 0x1234, |
- index: 0x5600 // Last byte of index is interface number. |
- }; |
- let endpointRequest = { |
- requestType: 'vendor', |
- recipient: 'endpoint', |
- request: 0x42, |
- value: 0x1234, |
- index: 0x5681 // Last byte of index is endpoint address. |
- }; |
- let data = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]); |
- return device.open() |
- .then(() => device.selectConfiguration(1)) |
- .then(() => Promise.all([ |
- assertRejectsWithError( |
- device.controlTransferIn(interfaceRequest, 7), |
- 'InvalidStateError'), |
- assertRejectsWithError( |
- device.controlTransferIn(endpointRequest, 7), |
- 'NotFoundError'), |
- assertRejectsWithError( |
- device.controlTransferOut(interfaceRequest, data), |
- 'InvalidStateError'), |
- assertRejectsWithError( |
- device.controlTransferOut(endpointRequest, data), |
- 'NotFoundError'), |
- ])) |
- .then(() => device.claimInterface(0)) |
- .then(() => Promise.all([ |
- device.controlTransferIn(interfaceRequest, 7).then(result => { |
- assert_true(result instanceof USBInTransferResult); |
- assert_equals(result.status, 'ok'); |
- assert_equals(result.data.byteLength, 7); |
- assert_equals(result.data.getUint16(0), 0x07); |
- assert_equals(result.data.getUint8(2), 0x42); |
- assert_equals(result.data.getUint16(3), 0x1234); |
- assert_equals(result.data.getUint16(5), 0x5600); |
- }), |
- device.controlTransferIn(endpointRequest, 7).then(result => { |
- assert_true(result instanceof USBInTransferResult); |
- assert_equals(result.status, 'ok'); |
- assert_equals(result.data.byteLength, 7); |
- assert_equals(result.data.getUint16(0), 0x07); |
- assert_equals(result.data.getUint8(2), 0x42); |
- assert_equals(result.data.getUint16(3), 0x1234); |
- assert_equals(result.data.getUint16(5), 0x5681); |
- }), |
- device.controlTransferOut(interfaceRequest, data), |
- device.controlTransferOut(endpointRequest, data), |
- ])) |
- .then(() => device.close()); |
- }); |
-}, 'requests to interfaces and endpoint require an interface claim'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device }) => { |
- return device.open() |
- .then(() => device.selectConfiguration(1)) |
- .then(() => device.claimInterface(0)) |
- .then(() => device.clearHalt('in', 1)) |
- .then(() => device.close()); |
- }); |
-}, 'can clear a halt condition'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device, fakeDevice }) => { |
- return device.open() |
- .then(() => device.selectConfiguration(1)) |
- .then(() => device.claimInterface(0)) |
- .then(() => waitForDisconnect(fakeDevice)) |
- .then(() => assertRejectsWithNotFoundError(device.clearHalt('in', 1))); |
- }); |
-}, 'clearHalt rejects when called on a disconnected device'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device }) => { |
- let data = new DataView(new ArrayBuffer(1024)); |
- for (let i = 0; i < 1024; ++i) |
- data.setUint8(i, i & 0xff); |
- const notFoundMessage = 'The specified endpoint is not part of a claimed ' + |
- 'and selected alternate interface.'; |
- const rangeError = 'The specified endpoint number is out of range.'; |
- return device.open() |
- .then(() => device.selectConfiguration(1)) |
- .then(() => device.claimInterface(0)) |
- .then(() => Promise.all([ |
- assertRejectsWithError(device.transferIn(2, 8), |
- 'NotFoundError', notFoundMessage), // Unclaimed |
- assertRejectsWithError(device.transferIn(3, 8), 'NotFoundError', |
- notFoundMessage), // Non-existent |
- assertRejectsWithError( |
- device.transferIn(16, 8), 'IndexSizeError', rangeError), |
- assertRejectsWithError(device.transferOut(2, data), |
- 'NotFoundError', notFoundMessage), // Unclaimed |
- assertRejectsWithError(device.transferOut(3, data), 'NotFoundError', |
- notFoundMessage), // Non-existent |
- assertRejectsWithError( |
- device.transferOut(16, data), 'IndexSizeError', rangeError), |
- ])); |
- }); |
-}, 'transfers to unavailable endpoints are rejected'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device }) => { |
- return device.open() |
- .then(() => device.selectConfiguration(1)) |
- .then(() => device.claimInterface(0)) |
- .then(() => device.transferIn(1, 8)) |
- .then(result => { |
- assert_true(result instanceof USBInTransferResult); |
- assert_equals(result.status, 'ok'); |
- assert_equals(result.data.byteLength, 8); |
- for (let i = 0; i < 8; ++i) |
- assert_equals(result.data.getUint8(i), i, 'mismatch at byte ' + i); |
- return device.close(); |
- }); |
- }); |
-}, 'can issue IN interrupt transfer'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device }) => { |
- return device.open() |
- .then(() => device.selectConfiguration(1)) |
- .then(() => device.claimInterface(1)) |
- .then(() => device.transferIn(2, 1024)) |
- .then(result => { |
- assert_true(result instanceof USBInTransferResult); |
- assert_equals(result.status, 'ok'); |
- assert_equals(result.data.byteLength, 1024); |
- for (let i = 0; i < 1024; ++i) |
- assert_equals(result.data.getUint8(i), i & 0xff, |
- 'mismatch at byte ' + i); |
- return device.close(); |
- }); |
- }); |
-}, 'can issue IN bulk transfer'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device, fakeDevice }) => { |
- return device.open() |
- .then(() => device.selectConfiguration(1)) |
- .then(() => device.claimInterface(1)) |
- .then(() => waitForDisconnect(fakeDevice)) |
- .then(() => assertRejectsWithNotFoundError(device.transferIn(2, 1024))); |
- }); |
-}, 'transferIn rejects if called on a disconnected device'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device }) => { |
- return device.open() |
- .then(() => device.selectConfiguration(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); |
- return device.transferOut(2, data); |
- }) |
- .then(result => { |
- assert_true(result instanceof USBOutTransferResult); |
- assert_equals(result.status, 'ok'); |
- assert_equals(result.bytesWritten, 1024); |
- return device.close(); |
- }); |
- }); |
-}, 'can issue OUT bulk transfer'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device, fakeDevice }) => { |
- return device.open() |
- .then(() => device.selectConfiguration(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); |
- return waitForDisconnect(fakeDevice) |
- .then(() => assertRejectsWithNotFoundError(device.transferOut(2, data))); |
- }); |
- }); |
-}, 'transferOut rejects if called on a disconnected device'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device }) => { |
- return device.open() |
- .then(() => device.selectConfiguration(2)) |
- .then(() => device.claimInterface(0)) |
- .then(() => device.selectAlternateInterface(0, 1)) |
- .then(() => device.isochronousTransferIn( |
- 1, [64, 64, 64, 64, 64, 64, 64, 64])) |
- .then(result => { |
- assert_true(result instanceof USBIsochronousInTransferResult); |
- assert_equals(result.data.byteLength, 64 * 8, 'buffer size'); |
- assert_equals(result.packets.length, 8, 'number of packets'); |
- let byteOffset = 0; |
- for (let i = 0; i < result.packets.length; ++i) { |
- assert_true( |
- result.packets[i] instanceof USBIsochronousInTransferPacket); |
- assert_equals(result.packets[i].status, 'ok'); |
- assert_equals(result.packets[i].data.byteLength, 64); |
- assert_equals(result.packets[i].data.buffer, result.data.buffer); |
- assert_equals(result.packets[i].data.byteOffset, byteOffset); |
- for (let j = 0; j < 64; ++j) |
- assert_equals(result.packets[i].data.getUint8(j), j & 0xff, |
- 'mismatch at byte ' + j + ' of packet ' + i); |
- byteOffset += result.packets[i].data.byteLength; |
- } |
- return device.close(); |
- }); |
- }); |
-}, 'can issue IN isochronous transfer'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device, fakeDevice }) => { |
- return device.open() |
- .then(() => device.selectConfiguration(2)) |
- .then(() => device.claimInterface(0)) |
- .then(() => device.selectAlternateInterface(0, 1)) |
- .then(() => waitForDisconnect(fakeDevice)) |
- .then(() => assertRejectsWithNotFoundError(device.isochronousTransferIn( |
- 1, [64, 64, 64, 64, 64, 64, 64, 64]))); |
- }); |
-}, 'isochronousTransferIn rejects when called on a disconnected device'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device }) => { |
- return device.open() |
- .then(() => device.selectConfiguration(2)) |
- .then(() => device.claimInterface(0)) |
- .then(() => device.selectAlternateInterface(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); |
- } |
- return device.isochronousTransferOut( |
- 1, data, [64, 64, 64, 64, 64, 64, 64, 64]); |
- }) |
- .then(result => { |
- assert_true(result instanceof USBIsochronousOutTransferResult); |
- assert_equals(result.packets.length, 8, 'number of packets'); |
- let byteOffset = 0; |
- for (let i = 0; i < result.packets.length; ++i) { |
- assert_true( |
- result.packets[i] instanceof USBIsochronousOutTransferPacket); |
- assert_equals(result.packets[i].status, 'ok'); |
- assert_equals(result.packets[i].bytesWritten, 64); |
- } |
- return device.close(); |
- }); |
- }); |
-}, 'can issue OUT isochronous transfer'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device, fakeDevice }) => { |
- return device.open() |
- .then(() => device.selectConfiguration(2)) |
- .then(() => device.claimInterface(0)) |
- .then(() => device.selectAlternateInterface(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); |
- } |
- return waitForDisconnect(fakeDevice) |
- .then(() => assertRejectsWithNotFoundError(device.isochronousTransferOut( |
- 1, data, [64, 64, 64, 64, 64, 64, 64, 64]))); |
- }); |
- }); |
-}, 'isochronousTransferOut rejects when called on a disconnected device'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device }) => { |
- return device.open().then(() => device.reset()).then(() => device.close()); |
- }); |
-}, 'can reset the device'); |
- |
-usb_test(() => { |
- return getFakeDevice().then(({ device, fakeDevice }) => { |
- return device.open() |
- .then(() => waitForDisconnect(fakeDevice)) |
- .then(() => assertRejectsWithNotFoundError(device.reset())); |
- }); |
-}, 'resetDevice rejects when called on a disconnected device'); |
-</script> |