<!-- Generated by //third_party/blink/web_tests/bluetooth/generate.py -->
<!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="../../../external/wpt/bluetooth/resources/bluetooth-helpers.js"></script>
<script>
'use strict';
const test_desc = 'Device disconnects before startNotifications. ' +
    'Reject with NetworkError.';
const expected = new DOMException('GATT Server is disconnected. Cannot ' +
    'perform GATT operations. (Re)connect first with `device.gatt.connect`.',
    'NetworkError')
let device, characteristic, fake_peripheral;

bluetooth_test(() => getMeasurementIntervalCharacteristic()
    .then(_ => ({device, characteristic, fake_peripheral} = _))
    .then(() => simulateGATTDisconnectionAndWait(device, fake_peripheral))
    .then(() => assert_promise_rejects_with_message(
          characteristic.startNotifications(),
          expected)),
    test_desc);

</script>
