| 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/testharness-helpers.js"></script> | 3 <script src="../resources/testharness-helpers.js"></script> |
| 4 <script src="../resources/testharnessreport.js"></script> | 4 <script src="../resources/testharnessreport.js"></script> |
| 5 <script src="resources/bluetooth-helpers.js"></script> | 5 <script src="resources/bluetooth-helpers.js"></script> |
| 6 <script> | 6 <script> |
| 7 'use strict'; | 7 'use strict'; |
| 8 | 8 |
| 9 test(t => { assert_true(window.testRunner instanceof Object); t.done(); }, | 9 test(t => { assert_true(window.testRunner instanceof Object); t.done(); }, |
| 10 'window.testRunner is required for the following tests.'); | 10 'window.testRunner is required for the following tests.'); |
| 11 | 11 |
| 12 promise_test(() => { | 12 promise_test(() => { |
| 13 testRunner.setBluetoothMockDataSet('FailStartDiscoveryAdapter'); | 13 testRunner.setBluetoothMockDataSet('FailStartDiscoveryAdapter'); |
| 14 testRunner.setBluetoothManualChooser(); | 14 testRunner.setBluetoothManualChooser(); |
| 15 let requestDevicePromise = | 15 let requestDevicePromise = |
| 16 requestDeviceWithKeyDown({filters: [{services: ['generic_access']}]}); | 16 requestDeviceWithKeyDown({filters: [{services: ['generic_access']}]}); |
| 17 return getBluetoothManualChooserEvents(3) | 17 return getBluetoothManualChooserEvents(3) |
| 18 .then(events => { | 18 .then(events => { |
| 19 assert_array_equals(events, | 19 assert_array_equals(events, |
| 20 ['chooser-opened(file:///)', | 20 ['chooser-opened(file://)', |
| 21 'discovering', | 21 'discovering', |
| 22 'discovery-failed-to-start'], | 22 'discovery-failed-to-start'], |
| 23 events); | 23 events); |
| 24 testRunner.sendBluetoothManualChooserEvent('cancelled', ''); | 24 testRunner.sendBluetoothManualChooserEvent('cancelled', ''); |
| 25 return assert_promise_rejects_with_message( | 25 return assert_promise_rejects_with_message( |
| 26 requestDevicePromise, | 26 requestDevicePromise, |
| 27 new DOMException('User cancelled the requestDevice() chooser.', | 27 new DOMException('User cancelled the requestDevice() chooser.', |
| 28 'NotFoundError'), | 28 'NotFoundError'), |
| 29 'The adapter failed to start a discovery session.'); | 29 'The adapter failed to start a discovery session.'); |
| 30 }); | 30 }); |
| 31 }, 'Discovery session fails to start.'); | 31 }, 'Discovery session fails to start.'); |
| 32 | 32 |
| 33 promise_test(() => { | 33 promise_test(() => { |
| 34 testRunner.setBluetoothMockDataSet('NotPresentAdapter'); | 34 testRunner.setBluetoothMockDataSet('NotPresentAdapter'); |
| 35 return assert_promise_rejects_with_message( | 35 return assert_promise_rejects_with_message( |
| 36 requestDeviceWithKeyDown({filters: [{services: ['generic_access']}]}), | 36 requestDeviceWithKeyDown({filters: [{services: ['generic_access']}]}), |
| 37 new DOMException('Bluetooth adapter not available.', 'NotFoundError'), | 37 new DOMException('Bluetooth adapter not available.', 'NotFoundError'), |
| 38 'Bluetooth adapter is not present.'); | 38 'Bluetooth adapter is not present.'); |
| 39 }, 'Reject with NotFoundError if the adapter is not present.'); | 39 }, 'Reject with NotFoundError if the adapter is not present.'); |
| 40 | 40 |
| 41 promise_test(() => { | 41 promise_test(() => { |
| 42 testRunner.setBluetoothMockDataSet('NotPoweredAdapter'); | 42 testRunner.setBluetoothMockDataSet('NotPoweredAdapter'); |
| 43 testRunner.setBluetoothManualChooser(); | 43 testRunner.setBluetoothManualChooser(); |
| 44 let requestDevicePromise = | 44 let requestDevicePromise = |
| 45 requestDeviceWithKeyDown({filters: [{services: ['generic_access']}]}); | 45 requestDeviceWithKeyDown({filters: [{services: ['generic_access']}]}); |
| 46 return getBluetoothManualChooserEvents(2) | 46 return getBluetoothManualChooserEvents(2) |
| 47 .then(events => { | 47 .then(events => { |
| 48 assert_array_equals(events, | 48 assert_array_equals(events, |
| 49 ['chooser-opened(file:///)', | 49 ['chooser-opened(file://)', |
| 50 'adapter-disabled'], | 50 'adapter-disabled'], |
| 51 events); | 51 events); |
| 52 testRunner.sendBluetoothManualChooserEvent('cancelled', ''); | 52 testRunner.sendBluetoothManualChooserEvent('cancelled', ''); |
| 53 return assert_promise_rejects_with_message( | 53 return assert_promise_rejects_with_message( |
| 54 requestDevicePromise, | 54 requestDevicePromise, |
| 55 new DOMException('User cancelled the requestDevice() chooser.', | 55 new DOMException('User cancelled the requestDevice() chooser.', |
| 56 'NotFoundError'), | 56 'NotFoundError'), |
| 57 'Bluetooth adapter is not powered.'); | 57 'Bluetooth adapter is not powered.'); |
| 58 }); | 58 }); |
| 59 }, 'Reject with NotFoundError if the adapter is off.'); | 59 }, 'Reject with NotFoundError if the adapter is off.'); |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 132 promise_test(() => { | 132 promise_test(() => { |
| 133 testRunner.setBluetoothMockDataSet('GlucoseHeartRateAdapter'); | 133 testRunner.setBluetoothMockDataSet('GlucoseHeartRateAdapter'); |
| 134 testRunner.setBluetoothManualChooser(); | 134 testRunner.setBluetoothManualChooser(); |
| 135 let requestDevicePromise = requestDeviceWithKeyDown({ | 135 let requestDevicePromise = requestDeviceWithKeyDown({ |
| 136 filters: [{services: ['glucose']}, | 136 filters: [{services: ['glucose']}, |
| 137 {services: ['heart_rate']}] | 137 {services: ['heart_rate']}] |
| 138 }); | 138 }); |
| 139 return getBluetoothManualChooserEvents(5) | 139 return getBluetoothManualChooserEvents(5) |
| 140 .then(events => { | 140 .then(events => { |
| 141 assert_equals(events.length, 5, events); | 141 assert_equals(events.length, 5, events); |
| 142 assert_equals(events[0], 'chooser-opened(file:///)', 'events[0]'); | 142 assert_equals(events[0], 'chooser-opened(file://)', 'events[0]'); |
| 143 let idsByName = new AddDeviceEventSet(); | 143 let idsByName = new AddDeviceEventSet(); |
| 144 for (let addedDevice of [events[1], events[2]]) { | 144 for (let addedDevice of [events[1], events[2]]) { |
| 145 idsByName.assert_add_device_event(addedDevice); | 145 idsByName.assert_add_device_event(addedDevice); |
| 146 } | 146 } |
| 147 assert_true(idsByName.has('Heart Rate Device')); | 147 assert_true(idsByName.has('Heart Rate Device')); |
| 148 assert_true(idsByName.has('Glucose Device')); | 148 assert_true(idsByName.has('Glucose Device')); |
| 149 assert_equals(events[3], 'discovering'); | 149 assert_equals(events[3], 'discovering'); |
| 150 assert_equals(events[4], 'discovery-idle'); | 150 assert_equals(events[4], 'discovery-idle'); |
| 151 testRunner.sendBluetoothManualChooserEvent('selected', | 151 testRunner.sendBluetoothManualChooserEvent('selected', |
| 152 idsByName.get('Glucose Device')
); | 152 idsByName.get('Glucose Device')
); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 190 testRunner.setBluetoothManualChooser(); | 190 testRunner.setBluetoothManualChooser(); |
| 191 | 191 |
| 192 // Open the chooser, looking for a Heart Rate device. | 192 // Open the chooser, looking for a Heart Rate device. |
| 193 let requestDevicePromise = requestDeviceWithKeyDown({ | 193 let requestDevicePromise = requestDeviceWithKeyDown({ |
| 194 filters: [{services: ['heart_rate']}] | 194 filters: [{services: ['heart_rate']}] |
| 195 }); | 195 }); |
| 196 | 196 |
| 197 // The adapter finds nothing, so we just see discovery start and stop. | 197 // The adapter finds nothing, so we just see discovery start and stop. |
| 198 return getBluetoothManualChooserEvents(3).then(events => { | 198 return getBluetoothManualChooserEvents(3).then(events => { |
| 199 assert_array_equals(events, | 199 assert_array_equals(events, |
| 200 ['chooser-opened(file:///)', | 200 ['chooser-opened(file://)', |
| 201 'discovering', | 201 'discovering', |
| 202 'discovery-idle', | 202 'discovery-idle', |
| 203 ]); | 203 ]); |
| 204 | 204 |
| 205 // On the second discovery, the adapter finds the Heart Rate device. | 205 // On the second discovery, the adapter finds the Heart Rate device. |
| 206 testRunner.sendBluetoothManualChooserEvent('rescan', ''); | 206 testRunner.sendBluetoothManualChooserEvent('rescan', ''); |
| 207 return getBluetoothManualChooserEvents(3); | 207 return getBluetoothManualChooserEvents(3); |
| 208 }).then(events => { | 208 }).then(events => { |
| 209 assert_equals(events.length, 3, events); | 209 assert_equals(events.length, 3, events); |
| 210 assert_equals(events[0], 'discovering', 'events[0]'); | 210 assert_equals(events[0], 'discovering', 'events[0]'); |
| 211 let idsByName = new AddDeviceEventSet(); | 211 let idsByName = new AddDeviceEventSet(); |
| 212 idsByName.assert_add_device_event(events[1]); | 212 idsByName.assert_add_device_event(events[1]); |
| 213 assert_true(idsByName.has('Heart Rate Device')); | 213 assert_true(idsByName.has('Heart Rate Device')); |
| 214 assert_equals(events[2], 'discovery-idle'); | 214 assert_equals(events[2], 'discovery-idle'); |
| 215 | 215 |
| 216 // Select it and let the test complete. | 216 // Select it and let the test complete. |
| 217 testRunner.sendBluetoothManualChooserEvent('selected', | 217 testRunner.sendBluetoothManualChooserEvent('selected', |
| 218 idsByName.get('Heart Rate Device'
)); | 218 idsByName.get('Heart Rate Device'
)); |
| 219 return requestDevicePromise; | 219 return requestDevicePromise; |
| 220 }).then(device => assert_equals(device.name, 'Heart Rate Device')); | 220 }).then(device => assert_equals(device.name, 'Heart Rate Device')); |
| 221 }, 'The chooser can restart the BT scan.'); | 221 }, 'The chooser can restart the BT scan.'); |
| 222 </script> | 222 </script> |
| OLD | NEW |