<!DOCTYPE html>
<html>
<head>
<script>

var expectedEvents = ["dragstart", "dragend"];
var i = 0;

function recordEvent(e) {
    log(e.type);
    if (e.type !== expectedEvents[i]) {
        log("FAIL - expected " + expectedEvents[i] + " but got " + e.type);
    } else if (i == expectedEvents.length - 1) {
        log("SUCCESS");
    } else {
        i++;
    }
}


function log(msg) {
    var tn = document.createTextNode(msg + "\n");
    document.getElementById("log").appendChild(tn);
}

function dragStart(e) {
    recordEvent(e);
}

document.ondragend = function(e) {
    recordEvent(e);
};

document.ondrop = function(e) {
    log("FAIL - we should not get a " + e.type);
};

document.ondragenter = document.ondragover = function(e) {
    e.preventDefault();
};


</script>
</head>
<body>
    <p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=26699">https://bugs.webkit.org/show_bug.cgi?id=26699</a></p>

    <p>Instructions: </p>

    <p>Drag the "Drag Me!" link below</p>
    <p>Press escape</p>

    <a id="test-link" href="http://webkit.org" ondragstart="dragStart(event)">Drag Me!</a>

    <pre id="log"></pre>
</body>
</html>
