let events = [];
editingHost.addEventListener("input", event => events.push(event));
(function test_insert_text_to_start() {
editor.insertNode(document.createTextNode("abc"), editingHost, 0);
is(
editingHost.innerHTML, "abc ", "test_insert_text_to_start: insertNode() should insert new text node at start of the container"
);
is(
events.length,
1, "test_insert_text_to_start: Only one input event should be fired when insertNode() inserts a text node"
);
is(
stringifyInputEvent(events[0]),
stringifyInputEvent({ type: "input", inputType: "" }), "test_insert_text_to_start: input event should be fired when inserting a node"
);
is(
getRangeDescription(getSelection().getRangeAt(0)),
getRangeDescription({
startContainer: editingHost,
startOffset: 1,
endContainer: editingHost,
endOffset: 1,
}), "test_insert_text_to_start: insertNode() should collapse selection after the inserted text node"
);
})();
(function test_insert_span_to_big_index() {
events = [];
editingHost.innerHTML = "abc";
const span = document.createElement("span"); span.textContent = "def";
editor.insertNode(span, editingHost, 1000);
is(
editingHost.innerHTML, "abcdef", "test_insert_span_to_big_index: insertNode() with big index should insert new node at end of the container"
);
is(
events.length,
1, "test_insert_span_to_big_index: Only one input event should be fired when insertNode() inserts a node"
);
is(
stringifyInputEvent(events[0]),
stringifyInputEvent({ type: "input", inputType: "" }), "test_insert_span_to_big_index: input event should be fired when inserting a node"
);
is(
getRangeDescription(getSelection().getRangeAt(0)),
getRangeDescription({
startContainer: editingHost,
startOffset: 2,
endContainer: editingHost,
endOffset: 2,
}), "test_insert_span_to_big_index: insertNode() should collapse selection after the inserted node"
);
})();
(function test_preserve_selection() {
events = [];
editingHost.innerHTML = "abc";
const span = document.createElement("span"); span.textContent = "def";
getSelection().collapse(editingHost, 0);
editor.insertNode(span, editingHost, 1, true);
is(
editingHost.innerHTML, "abcdef", "test_preserve_selection: insertNode() should insert new node at end of the container"
);
is(
events.length,
1, "test_preserve_selection: Only one input event should be fired when insertNode() inserts a node"
);
is(
stringifyInputEvent(events[0]),
stringifyInputEvent({ type: "input", inputType: "" }), "test_preserve_selection: input event should be fired when inserting a node"
);
is(
getRangeDescription(getSelection().getRangeAt(0)),
getRangeDescription({
startContainer: editingHost,
startOffset: 0,
endContainer: editingHost,
endOffset: 0,
}), "test_preserve_selection: insertNode() should not collapse selection after the inserted node"
);
})();
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.