mirror of
https://github.com/servo/servo.git
synced 2025-07-12 18:03:49 +01:00
34 lines
1.3 KiB
HTML
34 lines
1.3 KiB
HTML
<!DOCTYPE html>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="/resources/testdriver.js"></script>
|
|
<script src="/resources/testdriver-vendor.js"></script>
|
|
<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
|
|
<script>
|
|
'use strict';
|
|
let test_desc = 'A device that reconnects during the gattserverdisconnected ' +
|
|
'event should still receive gattserverdisconnected events after ' +
|
|
're-connection.';
|
|
let device, fake_peripheral;
|
|
bluetooth_test(() => getConnectedHealthThermometerDevice()
|
|
.then(_ => ({device, fake_peripheral} = _))
|
|
// 1. Disconnect.
|
|
.then(() => new Promise(resolve => {
|
|
fake_peripheral.simulateGATTDisconnection();
|
|
device.addEventListener(
|
|
'gattserverdisconnected', function onDisconnected() {
|
|
device.removeEventListener('gattserverdisconnected', onDisconnected);
|
|
// 2. Reconnect.
|
|
fake_peripheral.setNextGATTConnectionResponse({
|
|
code: HCI_SUCCESS,
|
|
})
|
|
.then(() => device.gatt.connect())
|
|
.then(() => resolve());
|
|
});
|
|
}))
|
|
// 3. Disconnect after reconnecting.
|
|
.then(() => {
|
|
fake_peripheral.simulateGATTDisconnection();
|
|
return eventPromise(device, 'gattserverdisconnected')
|
|
}), test_desc);
|
|
</script>
|