<!DOCTYPE html><!-- webkit-test-runner [ useFlexibleViewport=true ] -->
<html>
<head>
<meta name="viewport" content="width=device-width">
<script src="/js-test-resources/ui-helper.js"></script>
<script>
    if (window.testRunner) {
        testRunner.dumpAsText();
        testRunner.setShouldLogDownloadCallbacks(true);
        testRunner.waitUntilDownloadFinished();
    }
</script>
</head>
<body>
<p>
Tests that download redirects are reported to the client.
<a id="dl" href="/resources/redirect.py?url=/media/resources/test.pdf" download="foo.pdf">the link</a>.
<p>
The suggested filename at the top should be foo.pdf and you should see a redirect to /media/resources/test.pdf.
<script>
    function click(elmt)
    {
        if (!window.eventSender)
            return;

        UIHelper.activateAt(elmt.offsetLeft + 5, elmt.offsetTop + 5);
    }

    function runTest()
    {
        var link = document.getElementById("dl");
        click(link);
    }
    runTest();
</script>
</body>
</html>
