<!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';
// TODO(ortuno): Write tests to check that "Disconnect" was actually
// called on the device.
// http://crbug.com/569716
bluetooth_test(() => {
  return setBluetoothFakeAdapter('HeartRateAdapter')
    .then(() => requestDeviceWithKeyDown({
      filters: [{services: ['heart_rate']}]}))
    .then(device => device.gatt.connect())
    .then(gattServer => {
      gattServer.disconnect();
      assert_false(gattServer.connected);
    });
}, '\'connected\' is set to false after disconnect is called.');
</script>
