| <!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'; |
| var device; |
| bluetooth_test(() => { |
| return setBluetoothFakeAdapter('DisconnectingHealthThermometerAdapter') |
| .then(() => requestDeviceWithKeyDown({ |
| filters: [{services: ['health_thermometer']}], |
| optionalServices: [request_disconnection_service_uuid] |
| })) |
| .then(requestedDevice => { |
| device = requestedDevice; |
| return Promise.all([device.gatt.connect(), device.gatt.connect()]); |
| }) |
| .then(gattServers => get_request_disconnection(gattServers[0])) |
| .then(requestDisconnection => { |
| // This promise hangs unless gattserverdisconnected is fired. |
| let disconnected = eventPromise(device, 'gattserverdisconnected'); |
| return Promise.all([requestDisconnection(), disconnected]); |
| }); |
| }, 'A device disconnecting after two consecutive connect requests should fire an event.'); |
| </script> |