blob: 4a477235317c5c8f765853c90adcce3076d2e8a9 [file] [edit]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>configurationchange event.</title>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
</head>
<body>
<video id=video playsInline autoplay></video>
<script>
promise_test(async (t) => {
if (!window.testRunner)
return;
const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
t.add_cleanup(() => stream.getTracks().forEach(track => track.stop()));
const track = stream.getAudioTracks()[0];
video.srcObject = stream;
await video.play();
assert_equals(track.label, "Mock audio device 1");
testRunner.triggerMockCaptureConfigurationChange(false, true, false);
await new Promise((resolve, reject) => {
track.onconfigurationchange = resolve;
setTimeout(()=> reject("waited too long for configurationchange"), 5000);
});
assert_equals(track.label, "Mock audio device 2");
await new Promise(resolve => setTimeout(resolve, 2000));
assert_equals(track.readyState, "live");
}, "Trigger configurationchange event in case OS changes microphone on its own");
promise_test(async (t) => {
if (!window.testRunner)
return;
const stream = await navigator.mediaDevices.getUserMedia({ video: true });
t.add_cleanup(() => stream.getTracks().forEach(track => track.stop()));
const track = stream.getVideoTracks()[0];
video.srcObject = stream;
await video.play();
assert_false(track.getSettings().backgroundBlur);
assert_array_equals(track.getCapabilities().backgroundBlur, [false]);
testRunner.triggerMockCaptureConfigurationChange(true, false, false);
await new Promise((resolve, reject) => {
track.onconfigurationchange = resolve;
setTimeout(()=> reject("waited too long for configurationchange"), 5000);
});
assert_true(track.getSettings().backgroundBlur);
assert_array_equals(track.getCapabilities().backgroundBlur, [true]);
}, "Trigger configurationchange event in case background blur changes");
</script>
</body>
</html>