blob: d6177caf7f8197cb2c9f5b88128a1cc191b6e28b [file] [log] [blame]
<!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="/bluetooth/resources/bluetooth-test.js"></script>
<script src="/bluetooth/resources/bluetooth-fake-devices.js"></script>
<script>
'use strict';
const test_desc = 'RequestDeviceOptions should have exactly one of ' +
'\'filters\' or \'acceptAllDevices:true\'. Reject with TypeError if not.';
const expected = new DOMException(
'Failed to execute \'requestDevice\' on \'Bluetooth\': ' +
'Either \'filters\' should be present or ' +
'\'acceptAllDevices\' should be true, but not both.',
new TypeError());
const test_specs = [
{}, {optionalServices: ['heart_rate']}, {filters: [], acceptAllDevices: true},
{filters: [], acceptAllDevices: true, optionalServices: ['heart_rate']}
];
bluetooth_test(() => {
let test_promises = Promise.resolve();
test_specs.forEach(
args => {test_promises = test_promises.then(
() => assert_promise_rejects_with_message(
requestDeviceWithTrustedClick(args), expected))});
return test_promises;
}, test_desc);
</script>