blob: ff8565729e3348127a5d1500dfdd86b66a78d91b [file] [log] [blame]
<!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(t => {
return setBluetoothFakeAdapter('DisconnectingHeartRateAdapter')
.then(() => requestDeviceWithKeyDown({
filters: [{services: ['heart_rate']}],
optionalServices: [request_disconnection_service_uuid]
}))
.then(device => {
return device.gatt.connect()
.then(gattServer => get_request_disconnection(gattServer))
.then(requestDisconnection => {
let disconnected = eventPromise(device, 'gattserverdisconnected');
// This write causes the device to disconnect.
return Promise.all([requestDisconnection(),
disconnected]);
}).then(() => {
return device.gatt.connect()
.then(gattServer => gattServer.getPrimaryService('heart_rate'))
.then(service => service.getCharacteristic('body_sensor_location'))
.then(char => char.readValue())
.then(value => assert_array_equals(new Uint8Array(value.buffer), [1]));
});
});
}, 'A device that gets disconnected can re-connect.');
</script>