Chromium Code Reviews| 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> |
|
jsbell
2016/04/29 17:39:07
This include isn't needed any more, is it?
(appli
| |
| 4 <script src="../resources/testharnessreport.js"></script> | 4 <script src="../resources/testharnessreport.js"></script> |
| 5 <script src="../resources/bluetooth/bluetooth-helpers.js"></script> | 5 <script src="../resources/bluetooth/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.setBluetoothManualChooser(true); | 13 testRunner.setBluetoothManualChooser(true); |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 75 requestDeviceWithKeyDown({filters: [{services: [heart_rate.alias]}]}), | 75 requestDeviceWithKeyDown({filters: [{services: [heart_rate.alias]}]}), |
| 76 requestDeviceWithKeyDown({filters: [{services: [heart_rate.name]}]}), | 76 requestDeviceWithKeyDown({filters: [{services: [heart_rate.name]}]}), |
| 77 requestDeviceWithKeyDown({filters: [{services: [heart_rate.uuid]}]}) | 77 requestDeviceWithKeyDown({filters: [{services: [heart_rate.uuid]}]}) |
| 78 ])).then(devices => { | 78 ])).then(devices => { |
| 79 devices.forEach(device => { | 79 devices.forEach(device => { |
| 80 assert_equals(device.constructor.name, 'BluetoothDevice'); | 80 assert_equals(device.constructor.name, 'BluetoothDevice'); |
| 81 }); | 81 }); |
| 82 }); | 82 }); |
| 83 }, 'Mock will resolve.'); | 83 }, 'Mock will resolve.'); |
| 84 | 84 |
| 85 promise_test(() => { | 85 promise_test(t => { |
| 86 return setBluetoothFakeAdapter('HeartRateAdapter') | 86 return setBluetoothFakeAdapter('HeartRateAdapter') |
| 87 .then(() => assert_promise_rejects( | 87 .then(() => promise_rejects(t, |
| 88 'SecurityError', | |
| 88 navigator.bluetooth.requestDevice({ | 89 navigator.bluetooth.requestDevice({ |
| 89 filters: [{services: ['heart_rate']}]}), | 90 filters: [{services: ['heart_rate']}]}))); |
| 90 new DOMException('', 'SecurityError'))); | |
| 91 }, 'Requires a user gesture.'); | 91 }, 'Requires a user gesture.'); |
| 92 | 92 |
| 93 promise_test(() => { | 93 promise_test(t => { |
| 94 return setBluetoothFakeAdapter('HeartRateAdapter') | 94 return setBluetoothFakeAdapter('HeartRateAdapter') |
| 95 .then(() => callWithKeyDown(() => { | 95 .then(() => callWithKeyDown(() => { |
| 96 var first = navigator.bluetooth.requestDevice({ | 96 var first = navigator.bluetooth.requestDevice({ |
| 97 filters: [{services: ['heart_rate']}]}); | 97 filters: [{services: ['heart_rate']}]}); |
| 98 var second = navigator.bluetooth.requestDevice({ | 98 var second = navigator.bluetooth.requestDevice({ |
| 99 filters: [{services: ['heart_rate']}]}); | 99 filters: [{services: ['heart_rate']}]}); |
| 100 return Promise.all([ | 100 return Promise.all([ |
| 101 first.then(device => assert_equals( | 101 first.then(device => assert_equals( |
| 102 device.constructor.name, 'BluetoothDevice')), | 102 device.constructor.name, 'BluetoothDevice')), |
| 103 assert_promise_rejects(second, new DOMException('', 'SecurityError')), | 103 promise_rejects(t, 'SecurityError', second), |
| 104 ]); | 104 ]); |
| 105 })); | 105 })); |
| 106 }, 'Consumes a user gesture.'); | 106 }, 'Consumes a user gesture.'); |
| 107 | 107 |
| 108 promise_test(() => { | 108 promise_test(() => { |
| 109 return setBluetoothFakeAdapter('HeartRateAdapter') | 109 return setBluetoothFakeAdapter('HeartRateAdapter') |
| 110 .then(() => Promise.all([ | 110 .then(() => Promise.all([ |
| 111 requestDeviceWithKeyDown({filters: [{services: [heart_rate.alias]}]}), | 111 requestDeviceWithKeyDown({filters: [{services: [heart_rate.alias]}]}), |
| 112 requestDeviceWithKeyDown({filters: [{services: [heart_rate.name]}]}), | 112 requestDeviceWithKeyDown({filters: [{services: [heart_rate.name]}]}), |
| 113 requestDeviceWithKeyDown({filters: [{services: [heart_rate.uuid]}]}) | 113 requestDeviceWithKeyDown({filters: [{services: [heart_rate.uuid]}]}) |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 187 filters: [{services: ['glucose']}], | 187 filters: [{services: ['glucose']}], |
| 188 optionalServices: ['tx_power']})) | 188 optionalServices: ['tx_power']})) |
| 189 .then(device => { | 189 .then(device => { |
| 190 assert_equals(device.uuids.length, 2); | 190 assert_equals(device.uuids.length, 2); |
| 191 assert_in_array(BluetoothUUID.getService('glucose'), device.uuids); | 191 assert_in_array(BluetoothUUID.getService('glucose'), device.uuids); |
| 192 assert_in_array(BluetoothUUID.getService('tx_power'), device.uuids); | 192 assert_in_array(BluetoothUUID.getService('tx_power'), device.uuids); |
| 193 }); | 193 }); |
| 194 }, 'We should only see UUID\'s that we\'ve been given permission for.') | 194 }, 'We should only see UUID\'s that we\'ve been given permission for.') |
| 195 | 195 |
| 196 | 196 |
| 197 promise_test(() => { | 197 promise_test(t => { |
| 198 // Both devices support the Generic Access service, but things need to | 198 // Both devices support the Generic Access service, but things need to |
| 199 // support both services to pass the filter, and neither has a Battery | 199 // support both services to pass the filter, and neither has a Battery |
| 200 // service. | 200 // service. |
| 201 return setBluetoothFakeAdapter('GlucoseHeartRateAdapter') | 201 return setBluetoothFakeAdapter('GlucoseHeartRateAdapter') |
| 202 .then(() => assert_promise_rejects( | 202 .then(() => promise_rejects(t, 'NotFoundError', |
| 203 requestDeviceWithKeyDown({ | 203 requestDeviceWithKeyDown({ |
| 204 filters: [{services: ['heart_rate', 'battery_service']}] | 204 filters: [{services: ['heart_rate', 'battery_service']}] |
| 205 }), new DOMException('', 'NotFoundError'))); | 205 }))); |
| 206 }, 'Too-strict filters do prevent matching.'); | 206 }, 'Too-strict filters do prevent matching.'); |
| 207 | 207 |
| 208 promise_test(() => { | 208 promise_test(() => { |
| 209 testRunner.setBluetoothManualChooser(true); | 209 testRunner.setBluetoothManualChooser(true); |
| 210 | 210 |
| 211 // Open the chooser, looking for a Heart Rate device. | 211 // Open the chooser, looking for a Heart Rate device. |
| 212 let requestDevicePromise = | 212 let requestDevicePromise = |
| 213 setBluetoothFakeAdapter('SecondDiscoveryFindsHeartRateAdapter') | 213 setBluetoothFakeAdapter('SecondDiscoveryFindsHeartRateAdapter') |
| 214 .then(() => requestDeviceWithKeyDown({ | 214 .then(() => requestDeviceWithKeyDown({ |
| 215 filters: [{services: ['heart_rate']}] | 215 filters: [{services: ['heart_rate']}] |
| (...skipping 18 matching lines...) Expand all Loading... | |
| 234 assert_true(idsByName.has('Heart Rate Device')); | 234 assert_true(idsByName.has('Heart Rate Device')); |
| 235 assert_equals(events[2], 'discovery-idle'); | 235 assert_equals(events[2], 'discovery-idle'); |
| 236 | 236 |
| 237 // Select it and let the test complete. | 237 // Select it and let the test complete. |
| 238 testRunner.sendBluetoothManualChooserEvent('selected', | 238 testRunner.sendBluetoothManualChooserEvent('selected', |
| 239 idsByName.get('Heart Rate Device' )); | 239 idsByName.get('Heart Rate Device' )); |
| 240 return requestDevicePromise; | 240 return requestDevicePromise; |
| 241 }).then(device => assert_equals(device.name, 'Heart Rate Device')); | 241 }).then(device => assert_equals(device.name, 'Heart Rate Device')); |
| 242 }, 'The chooser can restart the BT scan.'); | 242 }, 'The chooser can restart the BT scan.'); |
| 243 </script> | 243 </script> |
| OLD | NEW |