blob: ccab371d7fa4944be5feb32da28974626e3284eb [file] [log] [blame]
<!doctype html>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../assert_selection.js"></script>
<script>
const kAttr = 'style="padding: 25px;"';
function click(x, y) {
if (!window.eventSender)
throw 'This test requires eventSender';
eventSender.mouseMoveTo(x, y);
eventSender.mouseDown();
eventSender.mouseUp();
}
function clickLeftSide(selection) {
const target = selection.document.getElementById('target');
click(selection.computeLeft(target) -10,
selection.computeTop(target) + target.offsetHeight / 2);
}
function clickBottomSide(selection) {
const target = selection.document.getElementById('target');
click(selection.computeLeft(target) + target.offsetWidth / 2,
selection.computeTop(target) + target.offsetHeight + 10);
}
selection_test(
[
`<div contenteditable ${kAttr}>`,
'<div id="target">ab</div>',
'<table contenteditable="false"><tbody><tr>',
'<td>\u00A0</td>',
'<td contenteditable>CD</td>',
'</tr></tbody></table>',
'<div>ef</div>',
'</div>',
],
selection => clickLeftSide(selection),
[
`<div contenteditable ${kAttr}>`,
'<div id="target">|ab</div>',
'<table contenteditable="false"><tbody><tr>',
'<td>\u00A0</td>',
'<td contenteditable>CD</td>',
'</tr></tbody></table>',
'<div>ef</div>',
'</div>',
],
'1. Click left of the first paragraph');
selection_test(
[
`<div contenteditable ${kAttr}>`,
'<div>ab</div>',
'<table contenteditable="false" id="target"><tbody><tr>',
'<td>\u00A0</td>',
'<td contenteditable>CD</td>',
'</tr></tbody></table>',
'<div>ef</div>',
'</div>',
],
selection => clickLeftSide(selection),
[
`<div contenteditable ${kAttr}>`,
'<div>ab</div>',
'|<table contenteditable="false" id="target"><tbody><tr>',
'<td>\u00A0</td>',
'<td contenteditable>CD</td>',
'</tr></tbody></table>',
'<div>ef</div>',
'</div>',
],
'2. Click left of TABLE');
selection_test(
[
`<div contenteditable ${kAttr}>`,
'<div>ab</div>',
'<table contenteditable="false"><tbody><tr>',
'<td>\u00A0</td>',
'<td contenteditable>CD</td>',
'</tr></tbody></table>',
'<div id="target">ef</div>',
'</div>',
],
selection => clickLeftSide(selection),
[
`<div contenteditable ${kAttr}>`,
'<div>ab</div>',
'<table contenteditable="false"><tbody><tr>',
'<td>\u00A0</td>',
'<td contenteditable>CD</td>',
'</tr></tbody></table>',
'<div id="target">|ef</div>',
'</div>',
],
'3. Click left of second paragraph');
selection_test(
[
`<div contenteditable ${kAttr}>`,
'<div>ab</div>',
'<table contenteditable="false"><tbody><tr>',
'<td>\u00A0</td>',
'<td contenteditable>CD</td>',
'</tr></tbody></table>',
'<div id="target">ef</div>',
'</div>',
],
selection => clickBottomSide(selection),
[
`<div contenteditable ${kAttr}>`,
'<div>ab</div>',
'<table contenteditable="false"><tbody><tr>',
'<td>\u00A0</td>',
'<td contenteditable>CD</td>',
'</tr></tbody></table>',
'<div id="target">ef|</div>',
'</div>',
],
'4. Click middle of second paragraph');
</script>