summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/svg/linking/scripted/a-download-click.svg
blob: b728603d547582b15ff6b0d32bc39e8021fa2bae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg"
     xmlns:h="http://www.w3.org/1999/xhtml">
  <title>Clicking on an &lt;a> element with a download attribute must not throw an exception</title>
  <metadata>
    <h:link rel="help" href="https://svgwg.org/svg2-draft/linking.html#InterfaceSVGAElement"/>
  </metadata>
  <h:script src="/resources/testharness.js"/>
  <h:script src="/resources/testharnessreport.js"/>
  <script><![CDATA[
    "use strict";
    async_test(t => {
        const frame = document.createElementNS("http://www.w3.org/1999/xhtml", "iframe");
        const root = document.querySelector("svg");

        frame.addEventListener("load", t.step_func(function () {
            frame.contentWindow.addEventListener(
                "beforeunload", t.unreached_func("Navigated instead of downloading"));
            const string = "test";
            const blob = new Blob([string], { type: "text/html" });

            const link = frame.contentDocument.querySelector("#blob-url");
            link.href.baseVal = URL.createObjectURL(blob);

            link.dispatchEvent(new Event('click'));

            t.step_timeout(() => t.done(), 1000);
        }));
        frame.src = "resources/a-download-click.svg";
        root.appendChild(frame);
    }, "Clicking on an <a> element with a download attribute must not throw an exception");
  ]]></script>
</svg>