| Current Path : /home/ataenra/www/media/com_jce/editor/tinymce/plugins/textpattern/tests/ |
| Current File : /home/ataenra/www/media/com_jce/editor/tinymce/plugins/textpattern/tests/textpattern.html |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Unit tests for the Textpattern plugin</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<link rel="stylesheet" href="http://code.jquery.com/qunit/qunit-1.14.0.css" type="text/css" />
<script src="http://code.jquery.com/qunit/qunit-1.14.0.js"></script>
<script src="../../../../../../../../tinymce-muon-retina/tests/qunit/connector.js"></script>
<script type="text/javascript" src="../../../../../../../../tinymce-muon-retina/tests/qunit/runner.js"></script>
<script type="text/javascript" src="../../../../../../../../tinymce-muon-retina/tests/js/utils.js"></script>
<script type="text/javascript" src="../../../tinymce.js"></script>
<script type="text/javascript" src="../plugin.js"></script>
</head>
<body>
<script type="text/javascript">
var editor;
QUnit.config.reorder = false;
QUnit.config.autostart = false;
module("Textpattern plugin", {
autostart: false
});
function trimContent(value) {
return value.trim();
}
function findContainer(selector) {
var container;
if (tinymce.is(selector, 'string')) {
container = editor.dom.select(selector)[0];
} else {
container = selector;
}
if (container.firstChild) {
container = container.firstChild;
}
return container;
}
var evt = function (keyCode) {
return { keyCode: keyCode, isDefaultPrevented: function () {return false;}, preventDefault : function () {} };
};
function setSelection(startSelector, startOffset, endSelector, endOffset) {
if (!endSelector) {
endSelector = startSelector;
endOffset = startOffset;
}
var startContainer = findContainer(startSelector);
var endContainer = findContainer(endSelector);
var rng = editor.dom.createRng();
function setRange(container, offset, start) {
offset = offset || 0;
if (offset === 'after') {
if (start) {
rng.setStartAfter(container);
} else {
rng.setEndAfter(container);
}
return;
} else if (offset === 'afterNextCharacter') {
container = container.nextSibling;
offset = 1;
}
if (start) {
rng.setStart(container, offset);
} else {
rng.setEnd(container, offset);
}
}
setRange(startContainer, startOffset, true);
setRange(endContainer, endOffset, false);
editor.selection.setRng(rng);
}
test('Italic format on single word using space', function () {
editor.setContent('<p>*abc*\u00a0</p>');
setSelection('p', 6);
editor.onKeyUp.dispatch(editor, evt(32));
equal(
editor.getContent().replace(/[\r\n]+/g, ''),
'<p><em>abc</em> </p>'
);
});
test('Bold format on single word using space', function () {
editor.setContent('<p>**abc**\u00a0</p>');
setSelection('p', 8);
editor.onKeyUp.dispatch(editor, evt(32));
equal(
editor.getContent().replace(/[\r\n]+/g, ''),
'<p><strong>abc</strong> </p>'
);
});
test('Bold format on multiple words using space', function () {
editor.setContent('<p>**abc 123**\u00a0</p>');
setSelection('p', 12);
editor.onKeyUp.dispatch(editor, evt(32));
equal(
editor.getContent().replace(/[\r\n]+/g, ''),
'<p><strong>abc 123</strong> </p>'
);
});
test('Bold format on single word using enter', function () {
editor.setContent('<p>**abc**</p>');
setSelection('p', 7);
editor.onKeyDown.dispatch(editor, evt(13));
equal(
editor.getContent().replace(/[\r\n]+/g, ''),
'<p><strong>abc</strong></p><p> </p>'
);
});
test('H1 format on single word node using enter', function () {
editor.setContent('<p># abc</p>');
setSelection('p', 5);
editor.onKeyDown.dispatch(editor, evt(13));
equal(
editor.getContent().replace(/[\r\n]+/g, ''),
'<h1>abc</h1><p> </p>'
);
});
test('OL format on single word node using enter', function () {
editor.setContent('<p>1. abc</p>');
setSelection('p', 6);
//editor.dom.fire('keydown', { keyCode: 13 });
equal(
editor.getContent().replace(/[\r\n]+/g, ''),
'<ol><li>abc</li><li></li></ol>'
);
});
test('UL format on single word node using enter', function () {
editor.setContent('<p>* abc</p>');
setSelection('p', 5);
editor.onKeyDown.dispatch(editor, evt(13));
equal(
editor.getContent().replace(/[\r\n]+/g, ''),
'<ul><li>abc</li><li></li></ul>'
);
});
test('getPatterns/setPatterns', function () {
editor.plugins.textpattern.setPatterns([
{ start: '#', format: 'h1' },
{ start: '##', format: 'h2' },
{ start: '###', format: 'h3' }
]);
deepEqual(
editor.plugins.textpattern.getPatterns(),
[
{
"format": "h1",
"start": "#"
},
{
"format": "h2",
"start": "##"
},
{
"format": "h3",
"start": "###"
}
]
);
});
tinymce.init({
mode: "exact",
elements: "elm1",
theme: "advanced",
add_unload_trigger: false,
language_load: false,
plugins: 'textpattern',
schema: 'mixed',
compress: {
'css': true,
'javascript': true
},
init_instance_callback: function (ed) {
editor = ed;
QUnit.start();
}
});
</script>
<h1 id="qunit-header">Unit tests for the Paste plugin</h1>
<h2 id="qunit-banner"></h2>
<div id="qunit-testrunner-toolbar"></div>
<h2 id="qunit-userAgent"></h2>
<ol id="qunit-tests"></ol>
<textarea id="elm1" name="elm1"></textarea>
<div>
<a href="javascript:alert(tinymce.EditorManager.get('elm1').getContent({format : 'raw'}));">[getRawContents]</a>
<a href="javascript:alert(tinymce.EditorManager.get('elm1').getContent());">[getContents]</a>
</div>
</body>
</html>