Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
- This WPT test may be referenced by the following Test IDs:
- /infrastructure/testdriver/bidi/bluetooth/handle_request_device_prompt.https.html - WPT Dashboard Interop Dashboard
<!DOCTYPE html>
<meta charset="utf-8"/>
<title>TestDriver bidi.bluetooth.handle_request_device_prompt method</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js?feature=bidi"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script src="resources/bidi-bluetooth-helper.js"></script>
<script>
const name = 'LE Device';
promise_setup(async () => {
await test_driver.bidi.bluetooth.simulate_adapter({
state: "powered-on"
});
await test_driver.bidi.bluetooth.simulate_preconnected_peripheral({
address: "09:09:09:09:09:09",
name: name,
manufacturerData: [],
knownServiceUuids: []
});
await test_driver.bidi.bluetooth.request_device_prompt_updated.subscribe();
});
promise_test(async (t) => {
const handle_prompt_promise =
test_driver.bidi.bluetooth.request_device_prompt_updated.once().then(
(promptEvent) => {
assert_greater_than_equal(promptEvent.devices.length, 0);
return test_driver.bidi.bluetooth.handle_request_device_prompt({
prompt: promptEvent.prompt,
accept: true,
device: promptEvent.devices[0].id
});
});
const [device] = await Promise.all([requestDeviceWithTrustedClick({
acceptAllDevices: true
}), handle_prompt_promise]);
assert_equals(device.name, name);
}, "accept upon request_device_prompt_updated event");
promise_test(async (t) => {
const handle_prompt_promise =
test_driver.bidi.bluetooth.request_device_prompt_updated.once().then(
(promptEvent) => {
return test_driver.bidi.bluetooth.handle_request_device_prompt({
prompt: promptEvent.prompt,
accept: false,
device: ''
});
});
return Promise.all([
promise_rejects_dom(t, 'NotFoundError',
requestDeviceWithTrustedClick(
{ acceptAllDevices: true })
), handle_prompt_promise]);
}, "cancel upon request_device_prompt_updated event");
</script>