<!DOCTYPE html>
<script>
if (window.testRunner) {
    testRunner.waitUntilDone();
    testRunner.dumpAsText();
}

function test() {
    var v = document.createElement("video");
    document.body.appendChild(v);
    var src = document.createElement("source");
    src.src = "notarealsource.txt";
    v.appendChild(src);
    src.addEventListener("error", function() {
        if (window.testRunner) {
            testRunner.displayAndTrackRepaints();
            // If we didn't crash here, yay!  Test is a success
            document.body.appendChild(document.createTextNode("PASS"));
            testRunner.notifyDone();
        }
    }, false);
}
</script>
<body onload="test()">
</body>
