<html><head>
<title>Ping</title>
<script>

var testCalled = false;

function test() {
    if (!testCalled) {
        if (window.testRunner) {
            testRunner.dumpAsText();
            testRunner.overridePreference("WebKitHyperlinkAuditingEnabled", 1);
            testRunner.waitUntilDone();
        }
        testCalled = true;
        return;
    }

    if (window.eventSender) {
        var a = document.getElementById("a");
        eventSender.mouseMoveTo(a.offsetLeft + 2, a.offsetTop + 2);
        eventSender.mouseDown();
        eventSender.mouseUp();
    }
}

</script>
</head>
<body onload="test();">
<img src="resources/delete-ping.php" onload="test();" onerror="test();"></img>
<a id="a" href="resources/check-ping.php" ping="http://localhost:8000/navigation/resources/save-Ping.php">Navigate and send ping</a>
</body></html>
