blob: 55b96cd4564ebe653bf50d3710ff430af7501356 [file] [log] [blame]
<!DOCTYPE html>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../assert_selection.js"></script>
<script>
//, 'win', 'unix', 'android'
for (const platform of ['mac', 'win', 'unix', 'android']) {
selection_test(
[
'<div contenteditable>',
'<div>',
'<span id="text">This is a paragraph.</span>',
'</div>',
'<br>',
'</div>',
],
selection => {
assert_not_equals(window.eventSender, undefined,
'this test requires eventSender');
assert_not_equals(window.internals, undefined,
'this test requires internals');
internals.settings.setEditingBehavior(platform);
const paragraph = selection.document.getElementById('text');
const x = selection.computeLeft(paragraph) + paragraph.offsetWidth + 10;
const y = selection.computeTop(paragraph) + paragraph.offsetHeight / 2;
// Reset mouse state.
eventSender.mouseMoveTo(0, 0);
eventSender.mouseDown();
eventSender.mouseUp();
eventSender.leapForward(1000);
// Right click
eventSender.mouseMoveTo(x, y);
eventSender.contextClick();
// Kill the context menu
eventSender.keyDown('Escape', null);
},
platform === 'mac'
? [
'<div contenteditable>',
'<div>',
// MacOS selects end tag of DIV as word.
'<span id="text">This is a paragraph.^</span>',
'</div>',
'|<br>',
'</div>',
]
: [
'<div contenteditable>',
'<div>',
'<span id="text">This is a paragraph.|</span>',
'</div>',
'<br>',
'</div>',
],
`${platform}: context click at end of paragraph.`);
}
</script>