68 lines
1.8 KiB
HTML
68 lines
1.8 KiB
HTML
<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>
|