blob: e8555bd78b982ec491d0d2bd2073a18180016a9b [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<title> Multiple dispatchEvent() and stopPropagation() </title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<div id=log></div>
<div id="parent" style="display: none">
<input id="target" type="hidden" value=""/>
</div>
<script>
var EVENT = "foo";
var TARGET = document.getElementById("target");
var PARENT = document.getElementById("parent");
var ExpectResult = [TARGET, PARENT, PARENT, document, window];
var ActualResult = [];
var description = "Test Description: " +
"An event object may be properly dispatched multiple times while also allowing to prevent the event objects " +
"propagation prior to the event dispatch.";
test(function()
{
var evt = document.createEvent("Event");
evt.initEvent(EVENT, true, true);
TARGET.addEventListener(EVENT, TestEvent, false);
PARENT.addEventListener(EVENT, TestEvent, false);
document.addEventListener(EVENT, TestEvent, false);
window.addEventListener(EVENT, TestEvent, false);
TARGET.dispatchEvent(evt);
PARENT.dispatchEvent(evt);
document.dispatchEvent(evt);
assert_array_equals(ActualResult, ExpectResult);
}, description);
function TestEvent(evt)
{
ActualResult.push(evt.currentTarget);
if (PARENT == evt.currentTarget)
{
evt.stopPropagation();
}
}
</script>
</body>
</html>