blob: 177beb6c2b941e8721a618fc706a922dc1f52291 [file] [log] [blame]
<!doctype html>
<html>
<head>
<title>enumerateDevices is returning new MediaDeviceInfo objects every time</title>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
</head>
<body>
<script>
function doTest(callGetUserMedia, testName)
{
promise_test(async () => {
if (callGetUserMedia)
await navigator.mediaDevices.getUserMedia({audio : true, video: true});
const deviceList1 = await navigator.mediaDevices.enumerateDevices();
const deviceList2 = await navigator.mediaDevices.enumerateDevices();
assert_equals(deviceList1.length, deviceList2.length);
for (let i = 0; i < deviceList1.length; i++) {
const device1 = deviceList1[i];
const device2 = deviceList2[i];
assert_not_equals(device1, device2);
assert_equals(device1.deviceId, device2.deviceId, "deviceId");
assert_equals(device1.kind, device2.kind, "kind");
}
}, testName);
}
doTest(false, "enumerateDevices returns new objects in case device-info permission is not granted");
doTest(true, "enumerateDevices returns new objects in case device-info permission is granted");
</script>
</body>
</html>