ModuleLoader.require([
"tinymce/InsertContent"
], function(InsertContent) {
module("tinymce.InsertContent", {
setupModule: function() {
QUnit.stop();
tinymce.init({
selector: "textarea",
add_unload_trigger: false,
disable_nodechange: true,
skin: false,
entities: 'raw',
indent: false,
init_instance_callback: function(ed) {
window.editor = ed;
QUnit.start();
}
});
}
});
function assertSelection(selector, offset) {
var node = editor.$(selector)[0];
var rng = editor.selection.getRng();
equal(rng.startContainer, node.firstChild);
equal(rng.startOffset, offset);
equal(rng.collapsed, true);
}
test('insertAtCaret - i inside text, converts to em', function() {
editor.setContent('
1234
');
editor.focus();
Utils.setSelection('p', 2);
InsertContent.insertAtCaret(editor, 'a');
equal(editor.getContent(), '12a34
');
});
test('insertAtCaret - ul at beginning of li', function() {
editor.setContent('');
editor.focus();
Utils.setSelection('li', 0);
InsertContent.insertAtCaret(editor, {content: '', paste: true});
equal(editor.getContent(), '');
assertSelection('li:nth-child(2)', 0);
});
test('insertAtCaret - ul with multiple items at beginning of li', function() {
editor.setContent('');
editor.focus();
Utils.setSelection('li', 0);
InsertContent.insertAtCaret(editor, {content: '', paste: true});
equal(editor.getContent(), '');
assertSelection('li:nth-child(3)', 0);
});
test('insertAtCaret - ul at end of li', function() {
editor.setContent('');
editor.focus();
Utils.setSelection('li', 2);
InsertContent.insertAtCaret(editor, {content: '', paste: true});
equal(editor.getContent(), '');
assertSelection('li:nth-child(2)', 1);
});
test('insertAtCaret - ul with multiple items at end of li', function() {
editor.setContent('');
editor.focus();
Utils.setSelection('li', 2);
InsertContent.insertAtCaret(editor, {content: '', paste: true});
equal(editor.getContent(), '');
assertSelection('li:nth-child(4)', 1);
});
test('insertAtCaret - ul with multiple items in middle of li', function() {
editor.setContent('');
editor.focus();
Utils.setSelection('li', 1);
InsertContent.insertAtCaret(editor, {content: '', paste: true});
equal(editor.getContent(), '');
assertSelection('li:nth-child(4)', 1);
});
test('insertAtCaret - ul in middle of li with formatting', function() {
editor.setContent('');
editor.focus();
Utils.setSelection('strong', 1);
InsertContent.insertAtCaret(editor, {content: '', paste: true});
equal(editor.getContent(), '');
assertSelection('li:nth-child(3) strong', 1);
});
test('insertAtCaret - ul at beginning of li with empty end li', function() {
editor.setContent('');
editor.focus();
Utils.setSelection('li', 0);
InsertContent.insertAtCaret(editor, {content: '', paste: true});
equal(editor.getContent(), '');
assertSelection('li:nth-child(2)', 0);
});
test('insertAtCaret - merge inline elements', function() {
editor.setContent('abc');
editor.focus();
Utils.setSelection('em', 1);
InsertContent.insertAtCaret(editor, {content: '123', merge: true});
equal(editor.getContent(), 'a123bc
');
});
});