| <!doctype html><!-- webkit-test-runner [ ExposeCaptureDevicesAfterCaptureEnabled=false ] --> |
| <html> |
| <head> |
| <meta charset="utf-8"> |
| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| <script> |
| promise_test(async (test) => { |
| const stream = await navigator.mediaDevices.getUserMedia({ audio : true }); |
| test.add_cleanup(() => stream.getTracks().forEach(track => track.stop())); |
| |
| if (window.testRunner) |
| testRunner.resetUserMediaPermission(); |
| const devices = await navigator.mediaDevices.enumerateDevices(); |
| for (const device of devices) |
| assert_true(device.label === "" || device.kind !== "videoinput"); |
| }, "enumerateDevices() filters out cameras if camera permission is prompt"); |
| |
| promise_test(async (test) => { |
| if (window.testRunner) |
| testRunner.setMicrophonePermission(false); |
| |
| const stream = await navigator.mediaDevices.getUserMedia({ audio : true }); |
| test.add_cleanup(() => stream.getTracks().forEach(track => track.stop())); |
| const devices = await navigator.mediaDevices.enumerateDevices(); |
| for (const device of devices) |
| assert_true(device.label === "" || device.kind !== "videoinput"); |
| }, "enumerateDevices() filters out cameras if camera permission is denied"); |
| |
| promise_test(async (test) => { |
| if (window.testRunner) |
| testRunner.setMicrophonePermission(true); |
| |
| const stream = await navigator.mediaDevices.getUserMedia({ audio : true }); |
| test.add_cleanup(() => stream.getTracks().forEach(track => track.stop())); |
| const devices = await navigator.mediaDevices.enumerateDevices(); |
| for (const device of devices) { |
| if (device.kind === "videoinput") |
| assert_not_equals(device.label, ""); |
| } |
| }, "enumerateDevices() does not filter out cameras if camera permission is granted"); |
| |
| </script> |
| </head> |
| <body> |
| </body> |
| </html> |