blob: 94a4b571b857b287c61b24f78ce1ee260d6e576b [file] [log] [blame]
<!doctype html>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../assert_selection.js"></script>
<script>
// Soft line break before white space
const kStyle = 'line-break:before-white-space; width: 100px; font: 20px monospace;';
const isMac = navigator.platform.indexOf('Mac') === 0;
const kBehaviors = window.internals ? ['mac', 'win'] : isMac ? ['mac'] : ['win'];
for (const behavior of kBehaviors) {
if (window.internals) {
internals.settings.setEditingBehavior(behavior);
internals.settings.setSelectTrailingWhitespaceEnabled(behavior !== 'mac');
}
selection_test(
`<div contenteditable dir="ltr" style="${kStyle}">|line1 line2 a line3</div>`,
selection => selection.modify('extend', 'left', 'word'),
`<div contenteditable dir="ltr" style="line-break:before-white-space; width: 100px; font: 20px monospace;">|line1 line2 a line3</div>`,
`${behavior} 21-0 ltr left word`);
selection_test(
`<div contenteditable dir="ltr" style="${kStyle}">l|ine1 line2 a line3</div>`,
selection => selection.modify('extend', 'left', 'word'),
`<div contenteditable dir="ltr" style="line-break:before-white-space; width: 100px; font: 20px monospace;">|l^ine1 line2 a line3</div>`,
`${behavior} 21-1 ltr left word`);
selection_test(
`<div contenteditable dir="ltr" style="${kStyle}">li|ne1 line2 a line3</div>`,
selection => selection.modify('extend', 'left', 'word'),
`<div contenteditable dir="ltr" style="line-break:before-white-space; width: 100px; font: 20px monospace;">|li^ne1 line2 a line3</div>`,
`${behavior} 21-2 ltr left word`);
selection_test(
`<div contenteditable dir="ltr" style="${kStyle}">lin|e1 line2 a line3</div>`,
selection => selection.modify('extend', 'left', 'word'),
`<div contenteditable dir="ltr" style="line-break:before-white-space; width: 100px; font: 20px monospace;">|lin^e1 line2 a line3</div>`,
`${behavior} 21-3 ltr left word`);
selection_test(
`<div contenteditable dir="ltr" style="${kStyle}">line|1 line2 a line3</div>`,
selection => selection.modify('extend', 'left', 'word'),
`<div contenteditable dir="ltr" style="line-break:before-white-space; width: 100px; font: 20px monospace;">|line^1 line2 a line3</div>`,
`${behavior} 21-4 ltr left word`);
selection_test(
`<div contenteditable dir="ltr" style="${kStyle}">line1| line2 a line3</div>`,
selection => selection.modify('extend', 'left', 'word'),
`<div contenteditable dir="ltr" style="line-break:before-white-space; width: 100px; font: 20px monospace;">|line1^ line2 a line3</div>`,
`${behavior} 21-5 ltr left word`);
selection_test(
`<div contenteditable dir="ltr" style="${kStyle}">line1 |line2 a line3</div>`,
selection => selection.modify('extend', 'left', 'word'),
`<div contenteditable dir="ltr" style="line-break:before-white-space; width: 100px; font: 20px monospace;">|line1 ^line2 a line3</div>`,
`${behavior} 21-6 ltr left word`);
selection_test(
`<div contenteditable dir="ltr" style="${kStyle}">line1 l|ine2 a line3</div>`,
selection => selection.modify('extend', 'left', 'word'),
`<div contenteditable dir="ltr" style="line-break:before-white-space; width: 100px; font: 20px monospace;">line1 |l^ine2 a line3</div>`,
`${behavior} 21-7 ltr left word`);
selection_test(
`<div contenteditable dir="ltr" style="${kStyle}">line1 li|ne2 a line3</div>`,
selection => selection.modify('extend', 'left', 'word'),
`<div contenteditable dir="ltr" style="line-break:before-white-space; width: 100px; font: 20px monospace;">line1 |li^ne2 a line3</div>`,
`${behavior} 21-8 ltr left word`);
selection_test(
`<div contenteditable dir="ltr" style="${kStyle}">line1 lin|e2 a line3</div>`,
selection => selection.modify('extend', 'left', 'word'),
`<div contenteditable dir="ltr" style="line-break:before-white-space; width: 100px; font: 20px monospace;">line1 |lin^e2 a line3</div>`,
`${behavior} 21-9 ltr left word`);
selection_test(
`<div contenteditable dir="ltr" style="${kStyle}">line1 line|2 a line3</div>`,
selection => selection.modify('extend', 'left', 'word'),
`<div contenteditable dir="ltr" style="line-break:before-white-space; width: 100px; font: 20px monospace;">line1 |line^2 a line3</div>`,
`${behavior} 21-10 ltr left word`);
selection_test(
`<div contenteditable dir="ltr" style="${kStyle}">line1 line2| a line3</div>`,
selection => selection.modify('extend', 'left', 'word'),
`<div contenteditable dir="ltr" style="line-break:before-white-space; width: 100px; font: 20px monospace;">line1 |line2^ a line3</div>`,
`${behavior} 21-11 ltr left word`);
selection_test(
`<div contenteditable dir="ltr" style="${kStyle}">line1 line2 |a line3</div>`,
selection => selection.modify('extend', 'left', 'word'),
`<div contenteditable dir="ltr" style="line-break:before-white-space; width: 100px; font: 20px monospace;">line1 |line2 ^a line3</div>`,
`${behavior} 21-12 ltr left word`);
selection_test(
`<div contenteditable dir="ltr" style="${kStyle}">line1 line2 a| line3</div>`,
selection => selection.modify('extend', 'left', 'word'),
`<div contenteditable dir="ltr" style="line-break:before-white-space; width: 100px; font: 20px monospace;">line1 line2 |a^ line3</div>`,
`${behavior} 21-13 ltr left word`);
selection_test(
`<div contenteditable dir="ltr" style="${kStyle}">line1 line2 a |line3</div>`,
selection => selection.modify('extend', 'left', 'word'),
`<div contenteditable dir="ltr" style="line-break:before-white-space; width: 100px; font: 20px monospace;">line1 line2 |a ^line3</div>`,
`${behavior} 21-14 ltr left word`);
selection_test(
`<div contenteditable dir="ltr" style="${kStyle}">line1 line2 a l|ine3</div>`,
selection => selection.modify('extend', 'left', 'word'),
`<div contenteditable dir="ltr" style="line-break:before-white-space; width: 100px; font: 20px monospace;">line1 line2 a |l^ine3</div>`,
`${behavior} 21-15 ltr left word`);
selection_test(
`<div contenteditable dir="ltr" style="${kStyle}">line1 line2 a li|ne3</div>`,
selection => selection.modify('extend', 'left', 'word'),
`<div contenteditable dir="ltr" style="line-break:before-white-space; width: 100px; font: 20px monospace;">line1 line2 a |li^ne3</div>`,
`${behavior} 21-16 ltr left word`);
selection_test(
`<div contenteditable dir="ltr" style="${kStyle}">line1 line2 a lin|e3</div>`,
selection => selection.modify('extend', 'left', 'word'),
`<div contenteditable dir="ltr" style="line-break:before-white-space; width: 100px; font: 20px monospace;">line1 line2 a |lin^e3</div>`,
`${behavior} 21-17 ltr left word`);
selection_test(
`<div contenteditable dir="ltr" style="${kStyle}">line1 line2 a line|3</div>`,
selection => selection.modify('extend', 'left', 'word'),
`<div contenteditable dir="ltr" style="line-break:before-white-space; width: 100px; font: 20px monospace;">line1 line2 a |line^3</div>`,
`${behavior} 21-18 ltr left word`);
}
</script>