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 usb_test(usb => { | 10 usb_test(usb => { |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 return callWithKeyDown(() => navigator.usb.requestDevice({ filters: [] }) | 42 return callWithKeyDown(() => navigator.usb.requestDevice({ filters: [] }) |
43 .then(device => { | 43 .then(device => { |
44 usb.assertDeviceInfoEquals(device, usb.fakeDevices[0]); | 44 usb.assertDeviceInfoEquals(device, usb.fakeDevices[0]); |
45 }) | 45 }) |
46 ); | 46 ); |
47 }, 'requestDevice returns the device chosen by the user'); | 47 }, 'requestDevice returns the device chosen by the user'); |
48 | 48 |
49 usb_test(usb => { | 49 usb_test(usb => { |
50 let promise = new Promise((resolve, reject) => { | 50 let promise = new Promise((resolve, reject) => { |
51 navigator.usb.addEventListener('connect', e => { | 51 navigator.usb.addEventListener('connect', e => { |
52 usb.assertDeviceInfoEquals(e.device, usb.fakeDevices[0]); | 52 assert_true(e instanceof USBConnectionEvent); |
53 resolve(); | 53 resolve(e.device); |
54 }); | 54 }); |
55 }); | 55 }); |
56 | 56 |
57 usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); | 57 usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); |
58 return promise; | 58 return promise.then(device => { |
| 59 usb.assertDeviceInfoEquals(device, usb.fakeDevices[0]); |
| 60 return device.open().then(() => device.close()); |
| 61 }); |
59 }, 'onconnect event is trigged by adding a device'); | 62 }, 'onconnect event is trigged by adding a device'); |
60 | 63 |
61 usb_test(usb => { | 64 usb_test(usb => { |
62 let promise = new Promise((resolve, reject) => { | 65 let promise = new Promise((resolve, reject) => { |
63 navigator.usb.addEventListener('disconnect', e => { | 66 navigator.usb.addEventListener('disconnect', e => { |
64 usb.assertDeviceInfoEquals(e.device, usb.fakeDevices[0]); | 67 assert_true(e instanceof USBConnectionEvent); |
65 resolve(); | 68 resolve(e.device); |
66 }); | 69 }); |
67 }); | 70 }); |
68 | 71 |
69 usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); | 72 usb.mockDeviceManager.addMockDevice(usb.fakeDevices[0]); |
70 usb.mockDeviceManager.removeMockDevice(usb.fakeDevices[0]); | 73 usb.mockDeviceManager.removeMockDevice(usb.fakeDevices[0]); |
71 return promise; | 74 return promise.then(device => { |
| 75 usb.assertDeviceInfoEquals(device, usb.fakeDevices[0]); |
| 76 return device.open().then(() => { |
| 77 assert_unreachable('should not be able to open a disconnected device'); |
| 78 }, error => { |
| 79 assert_equals(error.code, DOMException.NOT_FOUND_ERR); |
| 80 }); |
| 81 }); |
72 }, 'ondisconnect event is triggered by removing a device'); | 82 }, 'ondisconnect event is triggered by removing a device'); |
73 </script> | 83 </script> |
OLD | NEW |