chromium/third_party/blink/web_tests/media/video-srcobject-mediastream-src-file.html

<!DOCTYPE HTML>
<title>Test that setting the srcObject attribute overrides the src attribute and if the srcObject is set to null, media is reloaded from the src attribute.</title>
<video autoplay></video>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="./w3c-media-utils.js"></script>
<script>

    async_test(test => {
        var video = document.querySelector("video");
        assert_idl_attribute(video, "srcObject");
        assert_equals(video.srcObject, null);
        video.src = getVideoURI("test");
        navigator.webkitGetUserMedia(
          {video:true},
          test.step_func(stream => {
            video.onplaying = test.step_func(playingSrcObject);
            video.srcObject = stream;
          }),
          test.unreached_func("Did not get mediastream"));

        function playingSrcObject()
        {
            assert_not_equals(video.srcObject, null);
            assert_class_string(video.srcObject, "MediaStream");
            assert_equals(video.currentSrc, "");
            video.onplaying = test.step_func_done(playingFileAfterSrcObjectRemoved);
            video.srcObject = null;
        }

        function playingFileAfterSrcObjectRemoved()
        {
            assert_equals(video.srcObject, null);
            assert_equals(video.currentSrc, video.src);
        }
    });
</script>