<html>
<head>
<script>
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
}
function test()
{
document.getElementById("target").addEventListener("click", targetClick, true);
if (window.eventSender) {
eventSender.mouseMoveTo(52, 52);
eventSender.mouseDown();
eventSender.mouseUp();
window.setTimeout(finish, 0);
}
}
var finished = false;
function finish()
{
if (finished)
return;
finished = true;
log("targetClickFired: " + targetClickFired);
log("containerClickFired: " + containerClickFired);
if (targetClickFired && !containerClickFired)
log("test passed");
else
log("test failed");
if (window.testRunner)
testRunner.notifyDone();
}
function log(text) {
document.getElementById("result").innerHTML = document.getElementById("result").innerHTML + text + "<br>";
}
var targetClickFired = false;
var containerClickFired = false;
function targetClick(e) {
window.setTimeout(finish, 0);
targetClickFired = true;
e.stopPropagation();
e.preventDefault();
};
function containerClick(e) {
window.setTimeout(finish, 0);
containerClickFired = true;
};
</script>
</head>
<body onload="test()">
<p>This tests checks that capturing event handlers trigger on the node that is the target of the event, and that stopPropagation in such a handler prevents further bubble handlers from triggering.</p>
<div onclick="containerClick(event)">
<div style="position:absolute; top: 40; left: 40; width: 100; height: 40; background-color: pink" id="target" onclick="targetClick(event)">Click here</a>
</div>
<div id="result" style="position: absolute; top: 100; left: 50;"><br></div>
</body>
</html>