Index: third_party/WebKit/LayoutTests/bluetooth/requestDevice.html |
diff --git a/third_party/WebKit/LayoutTests/bluetooth/requestDevice.html b/third_party/WebKit/LayoutTests/bluetooth/requestDevice.html |
deleted file mode 100644 |
index 79c6f19e5ad386adf77a9ff8bc6822e790d47ee6..0000000000000000000000000000000000000000 |
--- a/third_party/WebKit/LayoutTests/bluetooth/requestDevice.html |
+++ /dev/null |
@@ -1,242 +0,0 @@ |
-<!DOCTYPE html> |
-<script src="../resources/testharness.js"></script> |
-<script src="../resources/testharnessreport.js"></script> |
-<script src="../resources/bluetooth/bluetooth-helpers.js"></script> |
-<script> |
-'use strict'; |
- |
-test(t => { assert_true(window.testRunner instanceof Object); t.done(); }, |
- 'window.testRunner is required for the following tests.'); |
- |
-promise_test(() => { |
- testRunner.setBluetoothManualChooser(true); |
- let requestDevicePromise = |
- setBluetoothFakeAdapter('FailStartDiscoveryAdapter') |
- .then(() => requestDeviceWithKeyDown({ |
- filters: [{services: ['generic_access']}]})); |
- return getBluetoothManualChooserEvents(3) |
- .then(events => { |
- assert_array_equals(events, |
- ['chooser-opened(file://)', |
- 'discovering', |
- 'discovery-failed-to-start'], |
- events); |
- testRunner.sendBluetoothManualChooserEvent('cancelled', ''); |
- return assert_promise_rejects_with_message( |
- requestDevicePromise, |
- new DOMException('User cancelled the requestDevice() chooser.', |
- 'NotFoundError'), |
- 'The adapter failed to start a discovery session.'); |
- }); |
-}, 'Discovery session fails to start.'); |
- |
-promise_test(() => { |
- return setBluetoothFakeAdapter('NotPresentAdapter') |
- .then(() => assert_promise_rejects_with_message( |
- requestDeviceWithKeyDown({filters: [{services: ['generic_access']}]}), |
- new DOMException('Bluetooth adapter not available.', 'NotFoundError'), |
- 'Bluetooth adapter is not present.')); |
-}, 'Reject with NotFoundError if the adapter is not present.'); |
- |
-promise_test(() => { |
- testRunner.setBluetoothManualChooser(true); |
- let requestDevicePromise = |
- setBluetoothFakeAdapter('NotPoweredAdapter') |
- .then(() => requestDeviceWithKeyDown({ |
- filters: [{services: ['generic_access']}]})); |
- return getBluetoothManualChooserEvents(2) |
- .then(events => { |
- assert_array_equals(events, |
- ['chooser-opened(file://)', |
- 'adapter-disabled'], |
- events); |
- testRunner.sendBluetoothManualChooserEvent('cancelled', ''); |
- return assert_promise_rejects_with_message( |
- requestDevicePromise, |
- new DOMException('User cancelled the requestDevice() chooser.', |
- 'NotFoundError'), |
- 'Bluetooth adapter is not powered.'); |
- }); |
-}, 'Reject with NotFoundError if the adapter is off.'); |
- |
-promise_test(() => { |
- return setBluetoothFakeAdapter('EmptyAdapter') |
- .then(() => assert_promise_rejects_with_message( |
- requestDeviceWithKeyDown({filters: [{services: ['generic_access']}]}), |
- new DOMException('User cancelled the requestDevice() chooser.', |
- 'NotFoundError'), |
- 'No Bluetooth devices in range.')); |
-}, 'Reject with NotFoundError if there are no devices around.'); |
- |
-promise_test(() => { |
- return setBluetoothFakeAdapter('HeartRateAdapter') |
- .then(() => Promise.all([ |
- requestDeviceWithKeyDown({filters: [{services: [heart_rate.alias]}]}), |
- requestDeviceWithKeyDown({filters: [{services: [heart_rate.name]}]}), |
- requestDeviceWithKeyDown({filters: [{services: [heart_rate.uuid]}]}) |
- ])).then(devices => { |
- devices.forEach(device => { |
- assert_equals(device.constructor.name, 'BluetoothDevice'); |
- }); |
- }); |
-}, 'Mock will resolve.'); |
- |
-promise_test(t => { |
- return setBluetoothFakeAdapter('HeartRateAdapter') |
- .then(() => promise_rejects(t, |
- 'SecurityError', |
- navigator.bluetooth.requestDevice({ |
- filters: [{services: ['heart_rate']}]}))); |
-}, 'Requires a user gesture.'); |
- |
-promise_test(t => { |
- return setBluetoothFakeAdapter('HeartRateAdapter') |
- .then(() => callWithKeyDown(() => { |
- var first = navigator.bluetooth.requestDevice({ |
- filters: [{services: ['heart_rate']}]}); |
- var second = navigator.bluetooth.requestDevice({ |
- filters: [{services: ['heart_rate']}]}); |
- return Promise.all([ |
- first.then(device => assert_equals( |
- device.constructor.name, 'BluetoothDevice')), |
- promise_rejects(t, 'SecurityError', second), |
- ]); |
- })); |
-}, 'Consumes a user gesture.'); |
- |
-promise_test(() => { |
- return setBluetoothFakeAdapter('HeartRateAdapter') |
- .then(() => Promise.all([ |
- requestDeviceWithKeyDown({filters: [{services: [heart_rate.alias]}]}), |
- requestDeviceWithKeyDown({filters: [{services: [heart_rate.name]}]}), |
- requestDeviceWithKeyDown({filters: [{services: [heart_rate.uuid]}]}) |
- ])).then(devices => { |
- // requestDevice should return the same object if it was created |
- // earlier. https://crbug.com/495270 |
- // TODO(ortuno): Change to assert_equals. |
- assert_not_equals(devices[0], devices[1]); |
- assert_not_equals(devices[1], devices[2]); |
- }); |
-}, 'Returned device should always be the same.'); |
- |
-promise_test(() => { |
- // The work of this test is done in the ScanFilterCheckingAdapter. It asserts |
- // that this requestDevice() call tells the platform to scan for only devices |
- // that include the Battery, Glucose, or Heart Rate services. |
- return setBluetoothFakeAdapter('ScanFilterCheckingAdapter') |
- .then(() => requestDeviceWithKeyDown({ |
- filters: [{services: ['battery_service']}, |
- {services: ['glucose', 'heart_rate']}], |
- // The optionalServices shouldn't affect the platform's scan. |
- optionalServices: ['generic_access'] |
- })); |
-}, 'Filters restrict the platform\'s Bluetooth scan.'); |
- |
-promise_test(() => { |
- testRunner.setBluetoothManualChooser(true); |
- let requestDevicePromise = |
- setBluetoothFakeAdapter('GlucoseHeartRateAdapter') |
- .then(() => requestDeviceWithKeyDown({ |
- filters: [{services: ['glucose']}, |
- {services: ['heart_rate']}] |
- })); |
- return getBluetoothManualChooserEvents(5) |
- .then(events => { |
- assert_equals(events.length, 5, events); |
- assert_equals(events[0], 'chooser-opened(file://)', 'events[0]'); |
- let idsByName = new AddDeviceEventSet(); |
- for (let addedDevice of [events[1], events[2]]) { |
- idsByName.assert_add_device_event(addedDevice); |
- } |
- assert_true(idsByName.has('Heart Rate Device')); |
- assert_true(idsByName.has('Glucose Device')); |
- assert_equals(events[3], 'discovering'); |
- assert_equals(events[4], 'discovery-idle'); |
- testRunner.sendBluetoothManualChooserEvent('selected', |
- idsByName.get('Glucose Device')); |
- return requestDevicePromise; |
- }).then(device => assert_equals(device.name, 'Glucose Device')); |
-}, 'The chooser includes all devices.'); |
- |
-promise_test(() => { |
- return setBluetoothFakeAdapter('GlucoseHeartRateAdapter') |
- .then(() => requestDeviceWithKeyDown({ |
- filters: [{services: ['glucose']}]})) |
- .then(device => assert_equals(device.name, 'Glucose Device')); |
-}, 'Simple filter selects matching device.'); |
- |
-promise_test(() => { |
- return setBluetoothFakeAdapter('GlucoseHeartRateAdapter') |
- .then(() => requestDeviceWithKeyDown({ |
- filters: [{services: ['glucose', 'tx_power']}] |
- })).then(device => assert_equals(device.name, 'Glucose Device')); |
-}, 'Filter with 2 services returns a matching device.'); |
- |
-promise_test(() => { |
- return setBluetoothFakeAdapter('GlucoseHeartRateAdapter') |
- .then(() => requestDeviceWithKeyDown({ |
- filters: [{services: ['battery_service']}, |
- {services: ['heart_rate']}] |
- })).then(device => assert_equals(device.name, 'Heart Rate Device')); |
-}, 'An extra filter doesn\'t prevent matching.'); |
- |
-promise_test(() => { |
- return setBluetoothFakeAdapter('GlucoseHeartRateAdapter') |
- .then(() => requestDeviceWithKeyDown({ |
- filters: [{services: ['glucose']}], |
- optionalServices: ['tx_power']})) |
- .then(device => { |
- assert_equals(device.uuids.length, 2); |
- assert_in_array(BluetoothUUID.getService('glucose'), device.uuids); |
- assert_in_array(BluetoothUUID.getService('tx_power'), device.uuids); |
- }); |
-}, 'We should only see UUID\'s that we\'ve been given permission for.') |
- |
- |
-promise_test(t => { |
- // Both devices support the Generic Access service, but things need to |
- // support both services to pass the filter, and neither has a Battery |
- // service. |
- return setBluetoothFakeAdapter('GlucoseHeartRateAdapter') |
- .then(() => promise_rejects(t, 'NotFoundError', |
- requestDeviceWithKeyDown({ |
- filters: [{services: ['heart_rate', 'battery_service']}] |
- }))); |
-}, 'Too-strict filters do prevent matching.'); |
- |
-promise_test(() => { |
- testRunner.setBluetoothManualChooser(true); |
- |
- // Open the chooser, looking for a Heart Rate device. |
- let requestDevicePromise = |
- setBluetoothFakeAdapter('SecondDiscoveryFindsHeartRateAdapter') |
- .then(() => requestDeviceWithKeyDown({ |
- filters: [{services: ['heart_rate']}] |
- })); |
- |
- // The adapter finds nothing, so we just see discovery start and stop. |
- return getBluetoothManualChooserEvents(3).then(events => { |
- assert_array_equals(events, |
- ['chooser-opened(file://)', |
- 'discovering', |
- 'discovery-idle', |
- ]); |
- |
- // On the second discovery, the adapter finds the Heart Rate device. |
- testRunner.sendBluetoothManualChooserEvent('rescan', ''); |
- return getBluetoothManualChooserEvents(3); |
- }).then(events => { |
- assert_equals(events.length, 3, events); |
- assert_equals(events[0], 'discovering', 'events[0]'); |
- let idsByName = new AddDeviceEventSet(); |
- idsByName.assert_add_device_event(events[1]); |
- assert_true(idsByName.has('Heart Rate Device')); |
- assert_equals(events[2], 'discovery-idle'); |
- |
- // Select it and let the test complete. |
- testRunner.sendBluetoothManualChooserEvent('selected', |
- idsByName.get('Heart Rate Device')); |
- return requestDevicePromise; |
- }).then(device => assert_equals(device.name, 'Heart Rate Device')); |
-}, 'The chooser can restart the BT scan.'); |
-</script> |