chromium/third_party/blink/web_tests/media/avtrack/video-track-selected.html

<!doctype html>
<html>
    <head>
        <title>VideoTrack.selected change</title>
        <script src="../../resources/testharness.js"></script>
        <script src="../../resources/testharnessreport.js"></script>
            </head>
    <body>
        <script>
            async_test(function(t)
            {
                var video = document.createElement("video");
                video.src = "../content/test.ogv";

                video.onloadedmetadata = t.step_func(function()
                {
                    assert_equals(video.videoTracks.length, 1, "videoTracks.length");
                    assert_equals(video.videoTracks.selectedIndex, 0, "videoTracks.selectedIndex (initial)");
                    assert_true(video.videoTracks[0].selected, "videoTrack.selected (initial)");
                    video.videoTracks[0].selected = false;
                    assert_equals(video.videoTracks.selectedIndex, -1, "videoTracks.selectedIndex (first setter)");
                    assert_false(video.videoTracks[0].selected, "videoTrack.selected (first setter)");

                    video.videoTracks.onchange = t.step_func(function()
                    {
                        assert_false(video.videoTracks[0].selected, "videoTrack.selected (first setter)");
                        video.videoTracks[0].selected = true;
                        assert_equals(video.videoTracks.selectedIndex, 0, "videoTracks.selectedIndex (second setter)");
                        assert_true(video.videoTracks[0].selected, "videoTrack.selected (second setter)");

                        video.videoTracks.onchange = t.step_func_done(function()
                        {
                            assert_equals(video.videoTracks.selectedIndex, 0, "videoTracks.selectedIndex (change event)");
                            assert_true(video.videoTracks[0].selected, "videoTrack.selected (change event)");
                        });
                    });
                });
            }, "VideoTrackList track change");
        </script>
    </body>
</html>