PHP Classes

File: public/js/tinymce/src/core/src/test/js/browser/FormatterCheckTest.js

Recommend this page to a friend!
  Classes of Abed Nego Ragil Putra   GoLavaCMS   public/js/tinymce/src/core/src/test/js/browser/FormatterCheckTest.js   Download  
File: public/js/tinymce/src/core/src/test/js/browser/FormatterCheckTest.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: GoLavaCMS
Publish content on Web pages with SEO support
Author: By
Last change:
Date: 6 years ago
Size: 10,593 bytes
 

Contents

Class file image Download
asynctest( 'browser.tinymce.core.FormatterCheckTest', [ 'ephox.agar.api.Pipeline', 'ephox.mcagar.api.LegacyUnit', 'ephox.mcagar.api.TinyLoader', 'tinymce.themes.modern.Theme' ], function (Pipeline, LegacyUnit, TinyLoader, Theme) { var success = arguments[arguments.length - 2]; var failure = arguments[arguments.length - 1]; var suite = LegacyUnit.createSuite(); Theme(); suite.test('Selected style element text', function (editor) { editor.focus(); editor.formatter.register('bold', { inline: 'b' }); editor.getBody().innerHTML = '<p><b>1234</b></p>'; var rng = editor.dom.createRng(); rng.setStart(editor.dom.select('b')[0].firstChild, 0); rng.setEnd(editor.dom.select('b')[0].firstChild, 4); editor.selection.setRng(rng); LegacyUnit.equal(editor.formatter.match('bold'), true, 'Selected style element text'); }); suite.test('Selected style element with css styles', function (editor) { editor.formatter.register('color', { inline: 'span', styles: { color: '#ff0000' } }); editor.getBody().innerHTML = '<p><span style="color:#ff0000">1234</span></p>'; var rng = editor.dom.createRng(); rng.setStart(editor.dom.select('span')[0].firstChild, 0); rng.setEnd(editor.dom.select('span')[0].firstChild, 4); editor.selection.setRng(rng); LegacyUnit.equal(editor.formatter.match('color'), true, 'Selected style element with css styles'); }); suite.test('Selected style element with css styles indexed', function (editor) { editor.formatter.register('color', { inline: 'span', styles: ['color'] }); editor.getBody().innerHTML = '<p><span style="color:#ff0000">1234</span></p>'; var rng = editor.dom.createRng(); rng.setStart(editor.dom.select('span')[0].firstChild, 0); rng.setEnd(editor.dom.select('span')[0].firstChild, 4); editor.selection.setRng(rng); LegacyUnit.equal(editor.formatter.match('color'), true, 'Selected style element with css styles'); }); suite.test('Selected style element with attributes', function (editor) { editor.formatter.register('fontsize', { inline: 'font', attributes: { size: '7' } }); editor.getBody().innerHTML = '<p><font size="7">1234</font></p>'; var rng = editor.dom.createRng(); rng.setStart(editor.dom.select('font')[0].firstChild, 0); rng.setEnd(editor.dom.select('font')[0].firstChild, 4); editor.selection.setRng(rng); LegacyUnit.equal(editor.formatter.match('fontsize'), true, 'Selected style element with attributes'); }); suite.test('Selected style element text multiple formats', function (editor) { editor.formatter.register('multiple', [ { inline: 'b' }, { inline: 'strong' } ]); editor.getBody().innerHTML = '<p><strong>1234</strong></p>'; var rng = editor.dom.createRng(); rng.setStart(editor.dom.select('strong')[0].firstChild, 0); rng.setEnd(editor.dom.select('strong')[0].firstChild, 4); editor.selection.setRng(rng); LegacyUnit.equal(editor.formatter.match('multiple'), true, 'Selected style element text multiple formats'); }); suite.test('Selected complex style element', function (editor) { editor.formatter.register('complex', { inline: 'span', styles: { fontWeight: 'bold' } }); editor.getBody().innerHTML = '<p><span style="color:#ff0000; font-weight:bold">1234</span></p>'; var rng = editor.dom.createRng(); rng.setStart(editor.dom.select('span')[0].firstChild, 0); rng.setEnd(editor.dom.select('span')[0].firstChild, 4); editor.selection.setRng(rng); LegacyUnit.equal(editor.formatter.match('complex'), true, 'Selected complex style element'); }); suite.test('Selected non style element text', function (editor) { editor.formatter.register('bold', { inline: 'b' }); editor.getBody().innerHTML = '<p>1234</p>'; var rng = editor.dom.createRng(); rng.setStart(editor.dom.select('p')[0].firstChild, 0); rng.setEnd(editor.dom.select('p')[0].firstChild, 4); editor.selection.setRng(rng); LegacyUnit.equal(editor.formatter.match('bold'), false, 'Selected non style element text'); }); suite.test('Selected partial style element (start)', function (editor) { editor.formatter.register('bold', { inline: 'b' }); editor.getBody().innerHTML = '<p><b>1234</b>5678</p>'; var rng = editor.dom.createRng(); rng.setStart(editor.dom.select('b')[0].firstChild, 0); rng.setEnd(editor.dom.select('p')[0].lastChild, 4); editor.selection.setRng(rng); LegacyUnit.equal(editor.formatter.match('bold'), true, 'Selected partial style element (start)'); }); suite.test('Selected partial style element (end)', function (editor) { editor.formatter.register('bold', { inline: 'b' }); editor.getBody().innerHTML = '<p>1234<b>5678</b></p>'; var rng = editor.dom.createRng(); rng.setStart(editor.dom.select('p')[0].firstChild, 0); rng.setEnd(editor.dom.select('b')[0].lastChild, 4); editor.selection.setRng(rng); LegacyUnit.equal(editor.formatter.match('bold'), false, 'Selected partial style element (end)'); }); suite.test('Selected element text with parent inline element', function (editor) { editor.formatter.register('bold', { inline: 'b' }); editor.getBody().innerHTML = '<p><b><em><span>1234</span></em></b></p>'; var rng = editor.dom.createRng(); rng.setStart(editor.dom.select('span')[0].firstChild, 0); rng.setEnd(editor.dom.select('span')[0].firstChild, 4); editor.selection.setRng(rng); LegacyUnit.equal(editor.formatter.match('bold'), true, 'Selected element text with parent inline element'); }); suite.test('Selected element match with variable', function (editor) { editor.formatter.register('complex', { inline: 'span', styles: { color: '%color' } }); editor.getBody().innerHTML = '<p><span style="color:#ff0000">1234</span></p>'; var rng = editor.dom.createRng(); rng.setStart(editor.dom.select('span')[0].firstChild, 0); rng.setEnd(editor.dom.select('span')[0].firstChild, 4); editor.selection.setRng(rng); LegacyUnit.equal(editor.formatter.match('complex', { color: '#ff0000' }), true, 'Selected element match with variable'); }); suite.test('Selected element match with variable and function', function (editor) { editor.formatter.register('complex', { inline: 'span', styles: { color: function (vars) { return vars.color + '00'; } } }); editor.getBody().innerHTML = '<p><span style="color:#ff0000">1234</span></p>'; var rng = editor.dom.createRng(); rng.setStart(editor.dom.select('span')[0].firstChild, 0); rng.setEnd(editor.dom.select('span')[0].firstChild, 4); editor.selection.setRng(rng); LegacyUnit.equal(editor.formatter.match('complex', { color: '#ff00' }), true, 'Selected element match with variable and function'); }); suite.test('matchAll', function (editor) { editor.getBody().innerHTML = '<p><b><i>a</i></b></p>'; LegacyUnit.setSelection(editor, 'i', 0, 'i', 1); LegacyUnit.equal(editor.formatter.matchAll(['bold', 'italic', 'underline']), ['italic', 'bold']); }); suite.test('canApply', function (editor) { editor.getBody().innerHTML = '<p>a</p>'; LegacyUnit.setSelection(editor, 'p', 0, 'p', 1); LegacyUnit.equal(editor.formatter.canApply('bold'), true); }); suite.test('Custom onmatch handler', function (editor) { editor.formatter.register('format', { inline: 'span', onmatch: function (elm) { return elm.className === 'x'; } }); editor.setContent('<p><span class="a">a</span><span class="x">b</span></p>'); LegacyUnit.setSelection(editor, 'span:nth-child(1)', 0, 'span:nth-child(1)', 0); LegacyUnit.equal(editor.formatter.match('format'), false, 'Should not match since the onmatch matches on x classes.'); LegacyUnit.setSelection(editor, 'span:nth-child(2)', 0, 'span:nth-child(2)', 0); LegacyUnit.equal(editor.formatter.match('format'), true, 'Should match since the onmatch matches on x classes.'); }); suite.test('formatChanged complex format', function (editor) { var newState, newArgs; editor.formatter.register('complex', { inline: 'span', styles: { color: '%color' } }); editor.formatter.formatChanged('complex', function (state, args) { newState = state; newArgs = args; }, true); editor.getBody().innerHTML = '<p>text</p>'; LegacyUnit.setSelection(editor, 'p', 0, 'p', 4); // Check apply editor.formatter.apply('complex', { color: '#FF0000' }); editor.nodeChanged(); LegacyUnit.equal(newState, true); LegacyUnit.equal(newArgs.format, 'complex'); LegacyUnit.equalDom(newArgs.node, editor.getBody().firstChild.firstChild); LegacyUnit.equal(newArgs.parents.length, 2); // Check remove editor.formatter.remove('complex', { color: '#FF0000' }); editor.nodeChanged(); LegacyUnit.equal(newState, false); LegacyUnit.equal(newArgs.format, 'complex'); LegacyUnit.equalDom(newArgs.node, editor.getBody().firstChild); LegacyUnit.equal(newArgs.parents.length, 1); }); suite.test('Selected style element text', function (editor) { editor.formatter.register('bold', { inline: 'b' }); editor.getBody().innerHTML = '<p><b>1234</b></p>'; var rng = editor.dom.createRng(); rng.setStart(editor.dom.select('b')[0].firstChild, 0); rng.setEnd(editor.dom.select('b')[0].firstChild, 4); editor.selection.setRng(rng); LegacyUnit.equal(editor.formatter.match('bold'), true, 'Selected style element text'); }); TinyLoader.setup(function (editor, onSuccess, onFailure) { Pipeline.async({}, suite.toSteps(editor), onSuccess, onFailure); }, { indent: false, extended_valid_elements: 'b,i,span[style|class|contenteditable]', entities: 'raw', convert_fonts_to_spans: false, forced_root_block: false, valid_styles: { '*': 'color,font-size,font-family,background-color,font-weight,font-style,text-decoration,float,' + 'margin,margin-top,margin-right,margin-bottom,margin-left,display,text-align' }, skin_url: '/project/src/skins/lightgray/dist/lightgray' }, success, failure); } );