blob: e1c8a44c175400dd8050c53d8ea90524ebd5931d [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../../../resources/js-test-pre.js"></script>
</head>
<body>
<p id="description"></p>
<div id="console"></div>
<script>
description('This tests checks the event order for the context click. It should be mousedown, mouseup, and contextmenu with an event.button == 2. Right click on this text to see the results.');
var previousEventType = "START";
var event = 0;
function clickHandler(e)
{
if (e.type == "contextmenu") {
// Prevent the context menu from being displayed.
e.returnValue = false;
if (e.stopPropagation)
e.stopPropagation();
}
event = e;
shouldBe("event.button", "2");
// Check that the events are happening in the expected order.
switch (previousEventType) {
case "START":
shouldBeEqualToString("event.type", "mousedown");
break;
case "mousedown":
shouldBeEqualToString("event.type", "mouseup");
break;
case "mouseup":
shouldBeEqualToString("event.type", "contextmenu");
break;
case "contextmenu":
testFailed('event.type is "' + event.type + '". None were expected.');
break;
}
previousEventType = event.type;
}
function traceMouseEvent(target, eventName)
{
if (target.addEventListener)
target.addEventListener(eventName, clickHandler, false);
else if (target.attachEvent) /*Internet Explorer*/
target.attachEvent("on" + eventName, clickHandler);
else
testFailed("Failed registering " + eventName);
}
var target = document.getElementById("description");
traceMouseEvent(target, "click");
traceMouseEvent(target, "mousedown");
traceMouseEvent(target, "mouseup");
traceMouseEvent(target, "contextmenu");
if (window.testRunner) {
var box = document.getElementById("description");
var x = box.offsetParent.offsetLeft + box.offsetLeft + box.offsetWidth / 2;
var y = box.offsetParent.offsetTop + box.offsetTop + box.offsetHeight / 2;
eventSender.mouseMoveTo(x, y);
eventSender.contextClick();
testRunner.dumpAsText();
}
var successfullyParsed = true;
</script>
<script src="../../../../resources/js-test-post.js"></script>
</body>
</html>