blob: 98d2675a176211049b8c8aa77837092c35597045 [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 kStyle = [
'font-family: monospace;',
'width: 4ch',
].join(' ');
// LTR
selection_test(
[
`<div contenteditable style="${kStyle}">`,
'|abc def ghi jkl',
'</div>',
],
selection => selection.modify("move", "forward", "line"),
[
`<div contenteditable style="${kStyle}">`,
'abc |def ghi jkl',
'</div>',
], 'LTR move forward line');
selection_test(
[
`<div contenteditable style="${kStyle}">`,
'abc |def ghi jkl',
'</div>',
],
selection => selection.modify("extend", "forward", "lineboundary"),
[
`<div contenteditable style="${kStyle}">`,
'abc ^def |ghi jkl',
'</div>',
], 'LTR extend forward lineboundary');
// RTL-BDO
selection_test(
[
`<div contenteditable dir="rtl" style="${kStyle}">`,
'<bdo dir="rtl">|abc def ghi jkl</bdo>',
'</div>',
],
selection => selection.modify("move", "forward", "line"),
[
`<div contenteditable dir="rtl" style="${kStyle}">`,
'<bdo dir="rtl">abc |def ghi jkl</bdo>',
'</div>',
], 'RTL-BDO move forward line');
selection_test(
[
`<div contenteditable dir="rtl" style="${kStyle}">`,
'<bdo dir="rtl">abc |def ghi jkl</bdo>',
'</div>',
],
selection => selection.modify("extend", "forward", "lineboundary"),
[
`<div contenteditable dir="rtl" style="${kStyle}">`,
'<bdo dir="rtl">abc ^def |ghi jkl</bdo>',
'</div>',
], 'RTL-BDO extend forward lineboundary');
// RTL
selection_test(
[
`<div contenteditable dir="rtl" style="${kStyle}">`,
'|\u05D0\u05D1\u05D2 \u05E0\u05E1\u05E2 \u05E5\u05E6\u05E7 \u05D5\u05D6\u05D7',
'</div>',
],
selection => selection.modify("move", "forward", "line"),
[
`<div contenteditable dir="rtl" style="${kStyle}">`,
'\u05D0\u05D1\u05D2 |\u05E0\u05E1\u05E2 \u05E5\u05E6\u05E7 \u05D5\u05D6\u05D7',
'</div>',
], 'RTL move forward line');
selection_test(
[
`<div contenteditable dir="rtl" style="${kStyle}">`,
'\u05D0\u05D1\u05D2 |\u05E0\u05E1\u05E2 \u05E5\u05E6\u05E7 \u05D5\u05D6\u05D7',
'</div>',
],
selection => selection.modify("extend", "forward", "lineboundary"),
[
`<div contenteditable dir="rtl" style="${kStyle}">`,
'\u05D0\u05D1\u05D2 ^\u05E0\u05E1\u05E2 |\u05E5\u05E6\u05E7 \u05D5\u05D6\u05D7',
'</div>',
], 'RTL extend forward lineboundary');
</script>