<!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';
bluetooth_test(() => {
  return setBluetoothFakeAdapter('HeartRateAdapter')
    .then(() => requestDeviceWithKeyDown({
      filters: [{services: ['heart_rate']}]}))
    .then(device => device.gatt.connect())
    .then(gattService => gattService.getPrimaryService('heart_rate'))
    .then(service => service.getCharacteristic('heart_rate_measurement'))
    .then(characteristic => {
      return setBluetoothFakeAdapter('MissingCharacteristicHeartRateAdapter')
        .then(() => assert_promise_rejects_with_message(
          characteristic.startNotifications(),
          new DOMException('GATT Characteristic no longer exists.',
                           'InvalidStateError'),
          'Characteristic got removed.'));
    });
}, 'Characteristic is removed. Reject with InvalidStateError.');
</script>
