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

Unified Diff: third_party/WebKit/LayoutTests/bluetooth/requestDevice/consecutive-calls.html

Issue 2030973002: bluetooth: Handle two consecutives requestDevice calls. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@my-origin
Patch Set: Improve comment Created 4 years, 6 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
« no previous file with comments | « content/browser/bluetooth/web_bluetooth_service_impl.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/LayoutTests/bluetooth/requestDevice/consecutive-calls.html
diff --git a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/consecutive-calls.html b/third_party/WebKit/LayoutTests/bluetooth/requestDevice/consecutive-calls.html
new file mode 100644
index 0000000000000000000000000000000000000000..30d60860d7e7d77f7104a5a5cc260b856481ea6e
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/bluetooth/requestDevice/consecutive-calls.html
@@ -0,0 +1,47 @@
+<!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';
+promise_test(() => {
+ function assert_expected_events(events) {
+ assert_equals(events.length, 4);
+ assert_equals(events[0], 'chooser-opened(file://)');
+ let idsByName = new AddDeviceEventSet();
+ idsByName.assert_add_device_event(events[1]);
+ assert_true(idsByName.has('Heart Rate Device'));
+ assert_equals(events[2], 'discovering');
+ assert_equals(events[3], 'discovery-idle');
+ return idsByName;
+ };
+
+ testRunner.setBluetoothManualChooser(true);
+ // Open a chooser.
+ let firstRequestDevicePromise = setBluetoothFakeAdapter('HeartRateAdapter')
+ .then(() => assert_promise_rejects_with_message(
+ requestDeviceWithKeyDown({filters: [{services: ['heart_rate']}]}),
+ new DOMException('User cancelled the requestDevice() chooser.',
+ 'NotFoundError')));
+
+ return getBluetoothManualChooserEvents(4)
+ .then(assert_expected_events)
+ .then(() => {
+ // Open another chooser.
+ let secondRequestDevicePromise =
+ requestDeviceWithKeyDown({filters: [{services: ['heart_rate']}]})
+ .then(device => assert_equals(device.constructor.name,
+ 'BluetoothDevice'));
+ return getBluetoothManualChooserEvents(4)
+ .then(assert_expected_events)
+ .then(idsByName => {
+ testRunner.sendBluetoothManualChooserEvent(
+ 'selected', idsByName.get('Heart Rate Device'));
+ return Promise.all([
+ firstRequestDevicePromise,
+ secondRequestDevicePromise]);
+ });
+ });
+}, 'A second call to requestDevice with the chooser opened will close the ' +
+ 'previous chooser.');
+</script>
« no previous file with comments | « content/browser/bluetooth/web_bluetooth_service_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698