blob: db9c519ffd821f31eeac1dec7c6d161a808f224e [file] [log] [blame]
<html>
<body>
<div id="contenteditable" contenteditable>This tests whether the context menu is displayed on the menu key press.</div>
<a id="link" href="example.com">example.com</a>
<p id='result'></p>
</body>
</html>
<script>
function log(text) {
document.getElementById('result').appendChild(document.createTextNode(text));
document.getElementById('result').appendChild(document.createElement("br"));
}
function dismissContextMenu() {
if (window.eventSender) {
// esc key to kill the context menu.
eventSender.keyDown(String.fromCharCode(0x001B), null);
}
}
function onWindowContextMenu(event) {
log('PASS WINDOW');
event.stopPropagation();
}
function onContentEditableContextMenu(event) {
if (window.getSelection().toString())
log('PASS CONTENTEDITABLE SELECTION');
else
log('PASS CONTENTEDITABLE');
event.stopPropagation();
}
function onFocusedElementContextMenu(event) {
log('PASS ELEMENT');
event.stopPropagation();
}
window.addEventListener('contextmenu', onWindowContextMenu);
document.getElementById('contenteditable').addEventListener('contextmenu', onContentEditableContextMenu);
document.getElementById('link').addEventListener('contextmenu', onFocusedElementContextMenu);
if (window.testRunner) {
eventSender.keyDown('menu');
dismissContextMenu();
var rect = document.getElementById('contenteditable').getBoundingClientRect();
var x = rect.left + rect.width / 2;
var y = rect.top + rect.height / 2;
eventSender.mouseMoveTo(x, y);
eventSender.mouseDown();
eventSender.mouseUp();
eventSender.keyDown('menu');
dismissContextMenu();
document.getElementById('link').focus();
eventSender.keyDown('menu');
dismissContextMenu();
window.getSelection().selectAllChildren(document.getElementById('contenteditable'));
eventSender.keyDown('menu');
dismissContextMenu();
testRunner.dumpAsText();
}
</script>