mirror of
https://github.com/servo/servo.git
synced 2025-06-25 09:34:32 +01:00
48 lines
2.1 KiB
HTML
48 lines
2.1 KiB
HTML
<!doctype html>
|
|
<head>
|
|
<title>Test effect of selectAudioOutput() on audiooutput devices from enumerateDevices()</title>
|
|
<link rel="help" href="https://w3c.github.io/mediacapture-output/#dom-mediadevices-selectaudiooutput">
|
|
</head>
|
|
<body>
|
|
<p class="instructions">If prompted, <strong>please allow</strong> access to
|
|
an audio output device.</p>
|
|
</body>
|
|
<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>
|
|
'use strict';
|
|
|
|
promise_test(async () => {
|
|
const devices = await navigator.mediaDevices.enumerateDevices();
|
|
const outputDevices = devices.filter(info => info.kind == "audiooutput");
|
|
assert_equals(outputDevices.length, 0, "number of audiooutput devices.");
|
|
}, "enumerateDevices() returns no audiooutput devices before permission grant");
|
|
|
|
let selected;
|
|
|
|
promise_test(async t => {
|
|
await test_driver.bless('transient activation for selectAudioOutput()');
|
|
selected = await navigator.mediaDevices.selectAudioOutput();
|
|
assert_true(selected instanceof MediaDeviceInfo,
|
|
"resolves with a MediaDeviceInfo.");
|
|
assert_equals(selected.kind, "audiooutput", "selected.kind");
|
|
assert_greater_than(selected.deviceId.length, 0, "selected.deviceId.length");
|
|
assert_greater_than(selected.groupId.length, 0, "selected.groupId.length");
|
|
assert_not_equals(selected.label, undefined, "selected.label");
|
|
}, "selectAudioOutput()");
|
|
|
|
promise_test(async () => {
|
|
// "Once a device is exposed after a call to selectAudioOutput, it MUST be
|
|
// listed by enumerateDevices() for the current browsing context."
|
|
const devices = await navigator.mediaDevices.enumerateDevices();
|
|
const outputDevices = devices.filter(info => info.kind == "audiooutput");
|
|
assert_equals(outputDevices.length, 1, "number of audiooutput devices.");
|
|
assert_not_equals(selected, undefined);
|
|
const info = outputDevices[0];
|
|
assert_equals(info.deviceId, selected.deviceId);
|
|
assert_equals(info.groupId, selected.groupId);
|
|
assert_equals(info.label, selected.label);
|
|
}, "enumerateDevices() after selectAudioOutput()");
|
|
</script>
|