Mozilla will usually run enumerateDevices-permissions-policy.https.html without media.navigator.streams.fake because fake input devices are in different groups to the output devices. The exception is Mozilla's Mac test machines because they have no real audio input device. With fake input devices, there are no exposed output devices to test. Differential Revision: https://phabricator.services.mozilla.com/D119865
49 lines
1.6 KiB
HTML
49 lines
1.6 KiB
HTML
<!DOCTYPE html>
|
|
<meta charset=utf-8>
|
|
<body>
|
|
<script src="/resources/testharness.js"
|
|
type="text/javascript{{GET[in-iframe]}}"></script>
|
|
<script src="/resources/testharnessreport.js"
|
|
type="text/javascript{{GET[in-iframe]}}"></script>
|
|
<script src="/resources/testdriver.js"></script>
|
|
<script src="/resources/testdriver-vendor.js"></script>
|
|
<script src="/common/get-host-info.sub.js"></script>
|
|
<script src="/permissions-policy/resources/permissions-policy.js"></script>
|
|
<script>
|
|
'use strict';
|
|
|
|
async function testSelectAudioOutput() {
|
|
await test_driver.bless('transient activation for selectAudioOutput()');
|
|
const selected = await navigator.mediaDevices.selectAudioOutput();
|
|
|
|
let devices;
|
|
try {
|
|
devices = await navigator.mediaDevices.enumerateDevices();
|
|
} catch (e) {
|
|
// Throw a unique error to avoid risk of false-pass if e should match
|
|
// an expected error from selectAudioOutput().
|
|
throw Error(`enumerateDevices() failed with ${e}`);
|
|
}
|
|
const selected_devices =
|
|
devices.filter(info => info.deviceId == selected.deviceId);
|
|
// Don't use assert_not_equals() because testharness.js cannot be
|
|
// loaded in the iframe with testdriver.js.
|
|
if (selected_devices.length != 1) {
|
|
throw Error('Device count matching selected is ' +
|
|
selected_devices.length);
|
|
}
|
|
}
|
|
|
|
if (page_loaded_in_iframe()) {
|
|
test_driver.set_test_context(window.parent);
|
|
}
|
|
const cross_domain = get_host_info().HTTPS_REMOTE_ORIGIN;
|
|
run_all_fp_tests_allow_self(
|
|
cross_domain,
|
|
'speaker-selection',
|
|
'NotAllowedError',
|
|
testSelectAudioOutput
|
|
);
|
|
</script>
|
|
</body>
|