44 lines
1.6 KiB
HTML
44 lines
1.6 KiB
HTML
<!DOCTYPE HTML>
|
|
<meta charset=utf-8>
|
|
<title>Placing selection and typing inside empty elements</title>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="../include/editor-test-utils.js"></script>
|
|
|
|
<div contenteditable></div>
|
|
|
|
<script>
|
|
const utils = new EditorTestUtils( document.querySelector( 'div[contenteditable]' ) );
|
|
|
|
test( () => {
|
|
utils.setupEditingHost( `<p><a href="https://example.com" id="test-end">Link</a></p>` );
|
|
|
|
const target = document.querySelector( '#test-end' );
|
|
const range = document.createRange();
|
|
const selection = getSelection();
|
|
|
|
range.selectNodeContents( target );
|
|
selection.removeAllRanges();
|
|
selection.addRange( range );
|
|
selection.collapseToEnd();
|
|
|
|
document.execCommand( 'insertText', false, 'a' );
|
|
assert_equals( target.innerHTML, 'Linka', 'The text should be inserted into the link' );
|
|
}, 'Insert text into the selection at the end of a link' );
|
|
|
|
test( () => {
|
|
utils.setupEditingHost( `<p><a href="https://example.com" id="test-beginning">Link</a></p>` );
|
|
|
|
const target = document.querySelector( '#test-beginning' );
|
|
const range = document.createRange();
|
|
const selection = getSelection();
|
|
|
|
range.selectNodeContents( target );
|
|
selection.removeAllRanges();
|
|
selection.addRange( range );
|
|
selection.collapseToStart();
|
|
|
|
document.execCommand( 'insertText', false, 'a' );
|
|
assert_equals( target.innerHTML, 'aLink', 'The text should be inserted into the link' );
|
|
}, 'Insert text into the selection at the beginning of a link' );
|
|
</script>
|