<!DOCTYPE HTML>
<html>
<head>
<script src="/js-test-resources/js-test.js"></script>
<script>
description("Testing navigator.sendBeacon() cross-origin.");

window.jsTestIsAsync = true;

function test() {
    if (window.testRunner) {
        testRunner.dumpAsText();
        testRunner.waitUntilDone();
        //testRunner.dumpPingLoaderCallbacks();
    }

    shouldBeTrue('navigator.sendBeacon("http://localhost:8000/blink/sendbeacon/resources/save-beacon.php?name=cross-origin", "CrossOrigin");');
    var xhr = new XMLHttpRequest();
    xhr.open("GET", "resources/check-beacon.php?name=cross-origin");
    xhr.onload = function () {
        var lines = xhr.responseText.split("\n");
        for (var i in lines)
            testPassed(lines[i]);
        finishJSTest();
    };
    xhr.onerror = function () {
        testFailed("Unable to fetch beacon status");
        finishJSTest();
    };
    xhr.send();
}
</script>
</head>
<body onload="test();">
</body>
</html>
