<!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(() => {
  setBluetoothManualChooser(true);

  let requestDevicePromise =
    setBluetoothFakeAdapter('DeviceEventAdapter')
      .then(() => requestDeviceWithKeyDown({
        filters: [{services: ['battery_service']}]}));
  return getBluetoothManualChooserEvents(4).then(events => {
    assert_equals(events[0], 'chooser-opened(file://)');
    assert_equals(events[1], 'discovering');
    let idsByName = new AddDeviceEventSet();
    idsByName.assert_add_device_event(events[2]);
    assert_true(idsByName.has('Changing Battery Device'));
    assert_equals(events[3], 'discovery-idle');
    sendBluetoothManualChooserEvent(
      'selected', idsByName.get('Changing Battery Device'));
    return requestDevicePromise;
  });
});
</script>
