<!DOCTYPE html> <!-- webkit-test-runner [ useFlexibleViewport=true ] -->

<html>
<meta name="viewport" content="initial-scale=5, width=device-width">
<head>

    <script src="../../resources/ui-helper.js"></script>
    <script>
        
        if (window.testRunner) {
            testRunner.dumpAsText();
            testRunner.waitUntilDone();
        }
    
        let write = (message) => output.innerHTML += (message + "<br>");

        function runTest()
        {
            document.getElementById("target").addEventListener("click", () => {
                fetch("../files/resources/abe.png").then(() => {
                    navigator.share({ title: "Example Page", url: "http://webkit.org", text: "text" }).then((result) => {
                        write("PASS: Share sheet invoked.");
                        testRunner.notifyDone();
                    }, (exception) => {
                        write("FAIL: Share promise was rejected");
                        testRunner.notifyDone();
                    });
                }, (exception) => {
                    write("FAIL: Fetch promise was rejected");
                    testRunner.notifyDone();
                });
            });
            
            UIHelper.activateAt(50, 50);
        }

    </script>
    <style>
        #target {
            height: 100px;
            width: 100px;
            background-color: silver;
        }
    </style>
</head>
<body onload="runTest()">
<pre id="output"></pre>
<button id="target">
</button>

</body>
</html>

