4 <script src="../../resources/js-test-pre.js"></script>
12 if (muteChangedEvent.type == "unmute") {
17 debug("<br>*** Unmuting capture devices");
19 internals.setPageMuted("");
22 function muteChanged(ev)
24 muteChangedEvent = ev;
25 debug(`EVENT: ${muteChangedEvent.type}`);
26 shouldBe('muteChangedEvent.target.muted', (muteChangedEvent.type == "mute").toString());
27 shouldBe("window.internals.pageMediaState().includes('HasMediaCaptureDevice')", "true");
29 if (++eventCount == 2) {
31 let shouldBeActive = muteChangedEvent.type == "mute" ? "false" : "true";
32 shouldBecomeEqual("window.internals.pageMediaState().includes('HasActiveMediaCaptureDevice')", shouldBeActive, nextStep);
36 function muteCaptureDevices()
38 debug("<br>*** Muting capture devices");
39 internals.setPageMuted("capturedevices");
42 function testWhenEnabled()
44 navigator.mediaDevices
45 .getUserMedia({audio:{}, video:{}})
48 shouldBeType("mediaStream", "Object");
49 shouldBe("mediaStream.getTracks().length", "2");
51 var tracks = mediaStream.getTracks();
52 for (var i = 0; i < tracks.length; i++) {
53 tracks[i].onmute = muteChanged;
54 tracks[i].onunmute = muteChanged;
57 shouldBecomeEqual("window.internals.pageMediaState().includes('HasActiveMediaCaptureDevice')", "true", muteCaptureDevices);
60 testFailed(`mediaDevices.getUserMedia() failed with ${err.name}`);
67 debug(`<br>*** Mock capture devices should be enabled by default`);
68 if (window.testRunner)
69 testRunner.setUserMediaPermission(true);
77 <body onload="start()">
78 <p id="description"></p>
79 <div id="console"></div>
81 description("Test enabling/disabling mock media capture devices");
82 window.jsTestIsAsync = true;
84 window.successfullyParsed = true;
86 <script src="../../resources/js-test-post.js"></script>