| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <script src="../resources/testharness.js"></script> | 2 <script src="../resources/testharness.js"></script> |
| 3 <script src="../resources/testharnessreport.js"></script> | 3 <script src="../resources/testharnessreport.js"></script> |
| 4 <script src="../resources/mojo-helpers.js"></script> | 4 <script src="../resources/mojo-helpers.js"></script> |
| 5 <script src="resources/fake-devices.js"></script> | 5 <script src="resources/fake-devices.js"></script> |
| 6 <script src="resources/usb-helpers.js"></script> | 6 <script src="resources/usb-helpers.js"></script> |
| 7 <script> | 7 <script> |
| 8 'use strict'; | 8 'use strict'; |
| 9 | 9 |
| 10 function assertRejectsWithError(promise, name, message) { | 10 function assertRejectsWithError(promise, name, message) { |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 118 | 118 |
| 119 usb_test(usb => { | 119 usb_test(usb => { |
| 120 usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); | 120 usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); |
| 121 return navigator.usb.getDevices().then(devices => { | 121 return navigator.usb.getDevices().then(devices => { |
| 122 assert_equals(1, devices.length); | 122 assert_equals(1, devices.length); |
| 123 var device = devices[0]; | 123 var device = devices[0]; |
| 124 return Promise.all([ | 124 return Promise.all([ |
| 125 assertRejectsWithNotOpenError(device.selectConfiguration(1)), | 125 assertRejectsWithNotOpenError(device.selectConfiguration(1)), |
| 126 assertRejectsWithNotOpenError(device.claimInterface(0)), | 126 assertRejectsWithNotOpenError(device.claimInterface(0)), |
| 127 assertRejectsWithNotOpenError(device.releaseInterface(0)), | 127 assertRejectsWithNotOpenError(device.releaseInterface(0)), |
| 128 assertRejectsWithNotOpenError(device.setInterface(0, 1)), | 128 assertRejectsWithNotOpenError(device.selectAlternateInterface(0, 1)), |
| 129 assertRejectsWithNotOpenError(device.controlTransferIn({ | 129 assertRejectsWithNotOpenError(device.controlTransferIn({ |
| 130 requestType: 'vendor', | 130 requestType: 'vendor', |
| 131 recipient: 'device', | 131 recipient: 'device', |
| 132 request: 0x42, | 132 request: 0x42, |
| 133 value: 0x1234, | 133 value: 0x1234, |
| 134 index: 0x5678 | 134 index: 0x5678 |
| 135 }, 7)), | 135 }, 7)), |
| 136 assertRejectsWithNotOpenError(device.controlTransferOut({ | 136 assertRejectsWithNotOpenError(device.controlTransferOut({ |
| 137 requestType: 'vendor', | 137 requestType: 'vendor', |
| 138 recipient: 'device', | 138 recipient: 'device', |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 188 | 188 |
| 189 usb_test(usb => { | 189 usb_test(usb => { |
| 190 usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); | 190 usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); |
| 191 return navigator.usb.getDevices().then(devices => { | 191 return navigator.usb.getDevices().then(devices => { |
| 192 assert_equals(1, devices.length); | 192 assert_equals(1, devices.length); |
| 193 let device = devices[0]; | 193 let device = devices[0]; |
| 194 assert_equals(device.configuration, null); | 194 assert_equals(device.configuration, null); |
| 195 return device.open().then(() => Promise.all([ | 195 return device.open().then(() => Promise.all([ |
| 196 assertRejectsWithNotConfiguredError(device.claimInterface(0)), | 196 assertRejectsWithNotConfiguredError(device.claimInterface(0)), |
| 197 assertRejectsWithNotConfiguredError(device.releaseInterface(0)), | 197 assertRejectsWithNotConfiguredError(device.releaseInterface(0)), |
| 198 assertRejectsWithNotConfiguredError(device.setInterface(0, 1)), | 198 assertRejectsWithNotConfiguredError(device.selectAlternateInterface(0, 1
)), |
| 199 assertRejectsWithNotConfiguredError(device.controlTransferIn({ | 199 assertRejectsWithNotConfiguredError(device.controlTransferIn({ |
| 200 requestType: 'vendor', | 200 requestType: 'vendor', |
| 201 recipient: 'device', | 201 recipient: 'device', |
| 202 request: 0x42, | 202 request: 0x42, |
| 203 value: 0x1234, | 203 value: 0x1234, |
| 204 index: 0x5678 | 204 index: 0x5678 |
| 205 }, 7)), | 205 }, 7)), |
| 206 assertRejectsWithNotConfiguredError(device.controlTransferOut({ | 206 assertRejectsWithNotConfiguredError(device.controlTransferOut({ |
| 207 requestType: 'vendor', | 207 requestType: 'vendor', |
| 208 recipient: 'device', | 208 recipient: 'device', |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 285 }, 'releaseInterface rejects when called on a disconnected device'); | 285 }, 'releaseInterface rejects when called on a disconnected device'); |
| 286 | 286 |
| 287 usb_test(usb => { | 287 usb_test(usb => { |
| 288 usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); | 288 usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); |
| 289 return navigator.usb.getDevices().then(devices => { | 289 return navigator.usb.getDevices().then(devices => { |
| 290 assert_equals(1, devices.length); | 290 assert_equals(1, devices.length); |
| 291 let device = devices[0]; | 291 let device = devices[0]; |
| 292 return device.open() | 292 return device.open() |
| 293 .then(() => device.selectConfiguration(2)) | 293 .then(() => device.selectConfiguration(2)) |
| 294 .then(() => device.claimInterface(0)) | 294 .then(() => device.claimInterface(0)) |
| 295 .then(() => device.setInterface(0, 1)) | 295 .then(() => device.selectAlternateInterface(0, 1)) |
| 296 .then(() => device.close()); | 296 .then(() => device.close()); |
| 297 }); | 297 }); |
| 298 }, 'can select an alternate interface'); | 298 }, 'can select an alternate interface'); |
| 299 | 299 |
| 300 usb_test(usb => { | 300 usb_test(usb => { |
| 301 usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); | 301 usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); |
| 302 return navigator.usb.getDevices().then(devices => { | 302 return navigator.usb.getDevices().then(devices => { |
| 303 assert_equals(1, devices.length); | 303 assert_equals(1, devices.length); |
| 304 let device = devices[0]; |
| 305 return device.open() |
| 306 .then(() => device.selectConfiguration(2)) |
| 307 .then(() => device.claimInterface(0)) |
| 308 .then(() => assertRejectsWithError( |
| 309 device.selectAlternateInterface(0, 2), 'NotFoundError', |
| 310 'The alternate setting provided is not supported by the device in ' + |
| 311 'its current configuration.')) |
| 312 .then(() => device.close()); |
| 313 }); |
| 314 }, 'cannot select a non-existent alternate interface'); |
| 315 |
| 316 usb_test(usb => { |
| 317 usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); |
| 318 return navigator.usb.getDevices().then(devices => { |
| 319 assert_equals(1, devices.length); |
| 304 var device = devices[0]; | 320 var device = devices[0]; |
| 305 return device.open() | 321 return device.open() |
| 306 .then(() => device.selectConfiguration(2)) | 322 .then(() => device.selectConfiguration(2)) |
| 307 .then(() => device.claimInterface(0)) | 323 .then(() => device.claimInterface(0)) |
| 308 .then(() => { | 324 .then(() => { |
| 309 usb.mockDeviceManager.removeMockDevice(usb.fakeDevices[0]); | 325 usb.mockDeviceManager.removeMockDevice(usb.fakeDevices[0]); |
| 310 return assertRejectsWithNotFoundError(device.setInterface(0, 1)); | 326 return assertRejectsWithNotFoundError(device.selectAlternateInterface(0,
1)); |
| 311 }); | 327 }); |
| 312 }); | 328 }); |
| 313 }, 'setInterface rejects when called on a disconnected device'); | 329 }, 'selectAlternateInterface rejects when called on a disconnected device'); |
| 314 | 330 |
| 315 usb_test(usb => { | 331 usb_test(usb => { |
| 316 usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); | 332 usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); |
| 317 return navigator.usb.getDevices().then(devices => { | 333 return navigator.usb.getDevices().then(devices => { |
| 318 assert_equals(1, devices.length); | 334 assert_equals(1, devices.length); |
| 319 let device = devices[0]; | 335 let device = devices[0]; |
| 320 return device.open() | 336 return device.open() |
| 321 .then(() => device.selectConfiguration(1)) | 337 .then(() => device.selectConfiguration(1)) |
| 322 .then(() => device.controlTransferIn({ | 338 .then(() => device.controlTransferIn({ |
| 323 requestType: 'vendor', | 339 requestType: 'vendor', |
| (...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 528 }, 'transferOut rejects if called on a disconnected device'); | 544 }, 'transferOut rejects if called on a disconnected device'); |
| 529 | 545 |
| 530 usb_test(usb => { | 546 usb_test(usb => { |
| 531 usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); | 547 usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); |
| 532 return navigator.usb.getDevices().then(devices => { | 548 return navigator.usb.getDevices().then(devices => { |
| 533 assert_equals(devices.length, 1); | 549 assert_equals(devices.length, 1); |
| 534 let device = devices[0]; | 550 let device = devices[0]; |
| 535 return device.open() | 551 return device.open() |
| 536 .then(() => device.selectConfiguration(2)) | 552 .then(() => device.selectConfiguration(2)) |
| 537 .then(() => device.claimInterface(0)) | 553 .then(() => device.claimInterface(0)) |
| 538 .then(() => device.setInterface(0, 1)) | 554 .then(() => device.selectAlternateInterface(0, 1)) |
| 539 .then(() => device.isochronousTransferIn( | 555 .then(() => device.isochronousTransferIn( |
| 540 1, [64, 64, 64, 64, 64, 64, 64, 64])) | 556 1, [64, 64, 64, 64, 64, 64, 64, 64])) |
| 541 .then(result => { | 557 .then(result => { |
| 542 assert_true(result instanceof USBIsochronousInTransferResult); | 558 assert_true(result instanceof USBIsochronousInTransferResult); |
| 543 assert_equals(result.data.byteLength, 64 * 8, 'buffer size'); | 559 assert_equals(result.data.byteLength, 64 * 8, 'buffer size'); |
| 544 assert_equals(result.packets.length, 8, 'number of packets'); | 560 assert_equals(result.packets.length, 8, 'number of packets'); |
| 545 let byteOffset = 0; | 561 let byteOffset = 0; |
| 546 for (let i = 0; i < result.packets.length; ++i) { | 562 for (let i = 0; i < result.packets.length; ++i) { |
| 547 assert_true( | 563 assert_true( |
| 548 result.packets[i] instanceof USBIsochronousInTransferPacket); | 564 result.packets[i] instanceof USBIsochronousInTransferPacket); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 561 }, 'can issue IN isochronous transfer'); | 577 }, 'can issue IN isochronous transfer'); |
| 562 | 578 |
| 563 usb_test(usb => { | 579 usb_test(usb => { |
| 564 usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); | 580 usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); |
| 565 return navigator.usb.getDevices().then(devices => { | 581 return navigator.usb.getDevices().then(devices => { |
| 566 assert_equals(devices.length, 1); | 582 assert_equals(devices.length, 1); |
| 567 let device = devices[0]; | 583 let device = devices[0]; |
| 568 return device.open() | 584 return device.open() |
| 569 .then(() => device.selectConfiguration(2)) | 585 .then(() => device.selectConfiguration(2)) |
| 570 .then(() => device.claimInterface(0)) | 586 .then(() => device.claimInterface(0)) |
| 571 .then(() => device.setInterface(0, 1)) | 587 .then(() => device.selectAlternateInterface(0, 1)) |
| 572 .then(() => { | 588 .then(() => { |
| 573 usb.mockDeviceManager.removeMockDevice(usb.fakeDevices[0]); | 589 usb.mockDeviceManager.removeMockDevice(usb.fakeDevices[0]); |
| 574 return assertRejectsWithNotFoundError(device.isochronousTransferIn( | 590 return assertRejectsWithNotFoundError(device.isochronousTransferIn( |
| 575 1, [64, 64, 64, 64, 64, 64, 64, 64])); | 591 1, [64, 64, 64, 64, 64, 64, 64, 64])); |
| 576 }); | 592 }); |
| 577 }); | 593 }); |
| 578 }, 'isochronousTransferIn rejects when called on a disconnected device'); | 594 }, 'isochronousTransferIn rejects when called on a disconnected device'); |
| 579 | 595 |
| 580 usb_test(usb => { | 596 usb_test(usb => { |
| 581 usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); | 597 usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); |
| 582 return navigator.usb.getDevices().then(devices => { | 598 return navigator.usb.getDevices().then(devices => { |
| 583 assert_equals(devices.length, 1); | 599 assert_equals(devices.length, 1); |
| 584 let device = devices[0]; | 600 let device = devices[0]; |
| 585 return device.open() | 601 return device.open() |
| 586 .then(() => device.selectConfiguration(2)) | 602 .then(() => device.selectConfiguration(2)) |
| 587 .then(() => device.claimInterface(0)) | 603 .then(() => device.claimInterface(0)) |
| 588 .then(() => device.setInterface(0, 1)) | 604 .then(() => device.selectAlternateInterface(0, 1)) |
| 589 .then(() => { | 605 .then(() => { |
| 590 let data = new DataView(new ArrayBuffer(64 * 8)); | 606 let data = new DataView(new ArrayBuffer(64 * 8)); |
| 591 for (let i = 0; i < 8; ++i) { | 607 for (let i = 0; i < 8; ++i) { |
| 592 for (let j = 0; j < 64; ++j) | 608 for (let j = 0; j < 64; ++j) |
| 593 data.setUint8(i * j, j & 0xff); | 609 data.setUint8(i * j, j & 0xff); |
| 594 } | 610 } |
| 595 return device.isochronousTransferOut( | 611 return device.isochronousTransferOut( |
| 596 1, data, [64, 64, 64, 64, 64, 64, 64, 64]); | 612 1, data, [64, 64, 64, 64, 64, 64, 64, 64]); |
| 597 }) | 613 }) |
| 598 .then(result => { | 614 .then(result => { |
| (...skipping 12 matching lines...) Expand all Loading... |
| 611 }, 'can issue OUT isochronous transfer'); | 627 }, 'can issue OUT isochronous transfer'); |
| 612 | 628 |
| 613 usb_test(usb => { | 629 usb_test(usb => { |
| 614 usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); | 630 usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); |
| 615 return navigator.usb.getDevices().then(devices => { | 631 return navigator.usb.getDevices().then(devices => { |
| 616 assert_equals(devices.length, 1); | 632 assert_equals(devices.length, 1); |
| 617 let device = devices[0]; | 633 let device = devices[0]; |
| 618 return device.open() | 634 return device.open() |
| 619 .then(() => device.selectConfiguration(2)) | 635 .then(() => device.selectConfiguration(2)) |
| 620 .then(() => device.claimInterface(0)) | 636 .then(() => device.claimInterface(0)) |
| 621 .then(() => device.setInterface(0, 1)) | 637 .then(() => device.selectAlternateInterface(0, 1)) |
| 622 .then(() => { | 638 .then(() => { |
| 623 let data = new DataView(new ArrayBuffer(64 * 8)); | 639 let data = new DataView(new ArrayBuffer(64 * 8)); |
| 624 for (let i = 0; i < 8; ++i) { | 640 for (let i = 0; i < 8; ++i) { |
| 625 for (let j = 0; j < 64; ++j) | 641 for (let j = 0; j < 64; ++j) |
| 626 data.setUint8(i * j, j & 0xff); | 642 data.setUint8(i * j, j & 0xff); |
| 627 } | 643 } |
| 628 usb.mockDeviceManager.removeMockDevice(usb.fakeDevices[0]); | 644 usb.mockDeviceManager.removeMockDevice(usb.fakeDevices[0]); |
| 629 return assertRejectsWithNotFoundError(device.isochronousTransferOut( | 645 return assertRejectsWithNotFoundError(device.isochronousTransferOut( |
| 630 1, data, [64, 64, 64, 64, 64, 64, 64, 64])); | 646 1, data, [64, 64, 64, 64, 64, 64, 64, 64])); |
| 631 }); | 647 }); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 646 return navigator.usb.getDevices().then(devices => { | 662 return navigator.usb.getDevices().then(devices => { |
| 647 assert_equals(1, devices.length); | 663 assert_equals(1, devices.length); |
| 648 let device = devices[0]; | 664 let device = devices[0]; |
| 649 return device.open().then(() => { | 665 return device.open().then(() => { |
| 650 usb.mockDeviceManager.removeMockDevice(usb.fakeDevices[0]); | 666 usb.mockDeviceManager.removeMockDevice(usb.fakeDevices[0]); |
| 651 return assertRejectsWithNotFoundError(device.reset()); | 667 return assertRejectsWithNotFoundError(device.reset()); |
| 652 }); | 668 }); |
| 653 }); | 669 }); |
| 654 }, 'resetDevice rejects when called on a disconnected device'); | 670 }, 'resetDevice rejects when called on a disconnected device'); |
| 655 </script> | 671 </script> |
| OLD | NEW |