<!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';

let test_specs = [{
  optionalServices: ['wrong_service'],
  filters: [{services: ['heart_rate']}]
}, {
  optionalServices: ['wrong_service'],
  filters: [{ services: ['heart_rate'], name: 'Name'}]
}, {
  optionalServices: ['wrong_service'],
  filters: [{ services: ['heart_rate'], namePrefix: 'Pre'}]
}, {
  optionalServices: ['wrong_service'],
  filters: [{ services: ['heart_rate'], name: 'Name', namePrefix: 'Pre'}]
}, {
  optionalServices: ['wrong_service'],
  filters: [{ name: 'Name'}]
}, {
  optionalServices: ['wrong_service'],
  filters: [{ name: 'Name', namePrefix: 'Pre'}]
}, {
  optionalServices: ['wrong_service'],
  filters: [{ namePrefix: 'Pre'}]
}];

bluetooth_test(t => {
  let test_promises = Promise.resolve();
  test_specs.forEach(args => {
    test_promises = test_promises.then(() => promise_rejects(
      t, TypeError(), requestDeviceWithKeyDown(args)));
  });
  return test_promises;
}, 'Invalid optional service must reject the promise.');
</script>
