blob: 766158ccd43b7fac35f3bf5da5dd7b5021e2a7a8 [file] [log] [blame]
<!doctype html>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../assert_selection.js"></script>
<script>
test(() => assert_selection(
'<div contenteditable>here is <i>some|</i> text</div>',
selection => {
for (var i = 0; i < 5; ++i)
selection.document.execCommand('delete');
for (var i = 0; i < 4; ++i)
selection.document.execCommand('insertText', false, 'x');
},
'<div contenteditable>here isxxxx|\u{00A0}text</div>'),
'Delete all styled characters and previous character then typing character does not keep style');
test(() => assert_selection(
'<div contenteditable>here is <i>some|</i> text</div>',
selection => {
for (var i = 0; i < 4; ++i)
selection.document.execCommand('delete');
for (var i = 0; i < 4; ++i)
selection.document.execCommand('insertText', false, 'x');
},
'<div contenteditable>here is <i>xxxx|</i>\u{00A0}text</div>'),
'Delete all styled characters then typing character keeps style');
test(() => assert_selection(
'<div contenteditable>here is <i>some|</i> text</div>',
selection => {
for (var i = 0; i < 3; ++i)
selection.document.execCommand('delete');
for (var i = 0; i < 4; ++i)
selection.document.execCommand('insertText', false, 'x');
},
'<div contenteditable>here is <i>sxxxx|</i>\u{00A0}text</div>'),
'Delete some styled characters then typing character keeps style');
test(() => assert_selection(
'<div contenteditable>|</div>',
selection => {
selection.document.execCommand('insertText', false, 'abc');
selection.document.execCommand('bold');
selection.document.execCommand('insertText', false, 'def');
selection.document.execCommand('italic');
selection.document.execCommand('insertText', false, 'ghi');
selection.document.execCommand('bold'); // disable bold
selection.document.execCommand('insertText', false, 'jkl');
selection.document.execCommand('italic'); // disable italic
selection.document.execCommand('insertText', false, 'mno');
},
'<div contenteditable>abc<b>def</b><i style><b>ghi</b>jkl</i>mno|</div>'),
'Nested styles and disabling styles');
test(() => assert_selection(
'<div contenteditable>here is <i>^some|</i> text</div>',
'insertText abcd',
'<div contenteditable>here is <i>abcd|</i> text</div>'),
'Replace selection keeps style');
</script>