blob: 74c97e07e49ff218213425f785f8bbc5f09f9314 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="../../resources/js-test.js"></script>
</head>
<body>
<script>
function handle(list, id, event)
{
list.push(event.type + "@" + id);
}
function testEventsFiredOn(doc)
{
window.caughtFoo = [];
var root = doc.documentElement;
var target = doc.getElementById("target");
target.addEventListener("foo", handle.bind(null, caughtFoo, "target"));
target.setAttribute("onclick", "caughtFoo.push('click@target')");
root.addEventListener("foo", handle.bind(null, caughtFoo, "root"));
root.setAttribute("onclick", "caughtFoo.push('click@root')");
window.caughtFoo.length = 0;
target.dispatchEvent(new CustomEvent("foo", { bubbles: true }));
shouldBe("window.caughtFoo", "['foo@target', 'foo@root']");
window.caughtFoo.length = 0;
target.dispatchEvent(new MouseEvent("click", { bubbles: true }));
shouldBe("window.caughtFoo", "[]");
}
var htmlDoc = document.implementation.createHTMLDocument("");
htmlDoc.documentElement.innerHTML = "<body><div id='target'></div></body>";
testEventsFiredOn(htmlDoc);
var xhtmlDoc = document.implementation.createDocument('http://www.w3.org/1999/xhtml', 'html', null);
xhtmlDoc.documentElement.innerHTML = "<body><div id='target'></div></body>";
testEventsFiredOn(xhtmlDoc);
var svgDoc = document.implementation.createDocument('http://www.w3.org/2000/svg', 'svg', null);
var target = svgDoc.createElement("g");
target.setAttribute("id", "target");
svgDoc.documentElement.appendChild(target);
testEventsFiredOn(xhtmlDoc);
var xmlDoc = document.implementation.createDocument('http://www.example.com/', 'foo', null);
var target = xmlDoc.createElement("bar");
target.setAttribute("id", "target");
xmlDoc.documentElement.appendChild(target);
testEventsFiredOn(xmlDoc);
</script>
</body>
</html>