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

Side by Side Diff: third_party/WebKit/LayoutTests/bluetooth/gattserverdisconnected-event/reconnect-during-disconnected-event.html

Issue 2072423002: bluetooth: Remove device before dispatching event (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@my-origin
Patch Set: 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 unified diff | Download patch
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <script src="../../resources/testharness.js"></script> 2 <script src="../../resources/testharness.js"></script>
3 <script src="../../resources/testharnessreport.js"></script> 3 <script src="../../resources/testharnessreport.js"></script>
4 <script src="../../resources/bluetooth/bluetooth-helpers.js"></script> 4 <script src="../../resources/bluetooth/bluetooth-helpers.js"></script>
5 <script> 5 <script>
6 'use strict'; 6 'use strict';
7 promise_test(t => { 7 promise_test(t => {
8 return setBluetoothFakeAdapter('DisconnectingHeartRateAdapter') 8 return setBluetoothFakeAdapter('DisconnectingHeartRateAdapter')
9 .then(() => requestDeviceWithKeyDown({ 9 .then(() => requestDeviceWithKeyDown({
10 filters: [{services: ['heart_rate']}], 10 filters: [{services: ['heart_rate']}],
11 optionalServices: [request_disconnection_service_uuid] 11 optionalServices: [request_disconnection_service_uuid]
12 })) 12 }))
13 .then(device => { 13 .then(device => {
14 return device.gatt.connect() 14 return device.gatt.connect()
15 .then(gattServer => gattServer.getPrimaryService(request_disconnection_s ervice_uuid)) 15 .then(gattServer => gattServer.getPrimaryService(request_disconnection_s ervice_uuid))
16 .then(service => service.getCharacteristic(request_disconnection_charact eristic_uuid)) 16 .then(service => service.getCharacteristic(request_disconnection_charact eristic_uuid))
17 .then(requestDisconnection => { 17 .then(requestDisconnection => {
18 let numEvents = 0; 18 // 1. Attach a listener that tries to reconnect.
19 let eventCounter = () => { numEvents++; }; 19 let reconnection = new Promise(resolve => {
20 device.addEventListener('gattserverdisconnected', eventCounter); 20 let wrapper = function(event) {
21 device.removeEventListener('gattserverdisconnected', wrapper);
22 device.gatt.connect().then(resolve);
23 };
24 device.addEventListener('gattserverdisconnected', wrapper);
25 });
26 // 2. Disconnect.
21 requestDisconnection.writeValue(new Uint8Array([0])); 27 requestDisconnection.writeValue(new Uint8Array([0]));
22 device.gatt.disconnect(); 28 return reconnection.then(() => {
23 device.gatt.disconnect(); 29 // Resolves after disconnected event.
24 return new Promise(resolve => { 30 let disconnected = eventPromise(device, 'gattserverdisconnected');
25 setTimeout(() => { 31 // 3. Disconnect after reconnecting.
26 device.removeEventListener('gattserverdisconnected', eventCounter) ; 32 requestDisconnection.writeValue(new Uint8Array([0]));
27 resolve(numEvents); 33 return disconnected;
28 }, 100);
29 }); 34 });
30 }).then(numEvents => assert_equals(numEvents, 1)); 35 });
31 }); 36 });
32 }, 'If a site disconnects from a device while the platform is disconnecting ' + 37 }, 'A device disconnecting while connected should fire the gattserverdisconnect ed event.');
Jeffrey Yasskin 2016/06/18 05:03:56 This isn't the right title for this test.
ortuno 2016/06/18 20:01:20 Done.
33 'that device, only one gattserverdisconnected event should fire.');
34 </script> 38 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698