<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Muted attribute and events.</title>
    <script src="../../resources/testharness.js"></script>
    <script src="../../resources/testharnessreport.js"></script>
</head>
<body>
    <script>
    promise_test(async (test) => {
        const stream = await navigator.mediaDevices.getUserMedia({ audio: true});
        if (!window.internals)
            return;
        const track = stream.getTracks()[0];
        assert_false(track.muted, "muted 1");

        internals.setMediaStreamTrackMuted(track, true);
        assert_false(track.muted, "muted 2");
        await  new Promise(resolve => track.onmute = resolve);
        assert_true(track.muted, "muted 3");


        internals.setMediaStreamTrackMuted(track, false);
        assert_true(track.muted, "muted 4");
        await  new Promise(resolve => track.onunmute = resolve);
        assert_false(track.muted, "muted 5");
    }, "Muted attribute value should not change before the corresponding event is fired");

    </script>
</body>
</html>
