<!DOCTYPE html>
<html>
<head>
<script>
if (window.testRunner) {
  testRunner.dumpAsText();
  testRunner.setShouldLogDownloadCallbacks(true);
  testRunner.waitUntilDownloadFinished();
  testRunner.setShouldDownloadUndisplayableMIMETypes(true);
}
</script>
</head>
<body>
<p>The download should succeed.</p>
<a id="blob-url">File backed blob URL</a>
<script>
function click(elmt)
{
    if (!window.eventSender) {
        alert('Click the link to run the test.');
        return;
    }
    eventSender.mouseMoveTo(elmt.offsetLeft + 5, elmt.offsetTop + 5);
    eventSender.mouseDown();
    eventSender.mouseUp();
}

function runTest()
{
    file = internals.createFile("../../../resources/Ahem.otf");
    var link = document.getElementById("blob-url");
    link.href = window.URL.createObjectURL(file);
    click(link);
}
runTest();
</script>
</body>
</html>
