<video controls></video>
<script src=video-test.js></script>
<script>
    testExpected("video.error", null);
    var didLoad = false;

    waitForEvent("loadstart", function () { if (didLoad) return; didLoad = true; video.load(); });

    waitForEvent("abort", function () { testExpected("video.error.code", MediaError.MEDIA_ERR_ABORTED); } );

    waitForEvent('load', function () { 
        testExpected("video.error", null);
        endTest();
    } );

    video.src = "content/test.mp4";
</script>
