Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(175)

Unified Diff: third_party/WebKit/LayoutTests/bluetooth/requestDevice.html

Issue 1910933002: bluetooth: Separate requestDevice tests (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@bluetooth-mojo-gatt-connect
Patch Set: Replace uses of assert_promise_rejects because it was removed. Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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>

Powered by Google App Engine
This is Rietveld 408576698