/**
* @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
*/
import ClassicTestEditor from '@ckeditor/ckeditor5-core/tests/_utils/classictesteditor';
import global from '@ckeditor/ckeditor5-utils/src/dom/global';
import TextTransformation from '../src/texttransformation';
import { getData, setData } from '@ckeditor/ckeditor5-engine/src/dev-utils/model';
import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph';
describe( 'Text transformation feature', () => {
let editorElement, editor, model, doc;
beforeEach( () => {
editorElement = global.document.createElement( 'div' );
global.document.body.appendChild( editorElement );
return ClassicTestEditor
.create( editorElement, {
plugins: [ Paragraph, TextTransformation ]
} )
.then( newEditor => {
editor = newEditor;
model = editor.model;
doc = model.document;
} );
} );
afterEach( () => {
editorElement.remove();
return editor.destroy();
} );
it( 'should be loaded', () => {
expect( editor.plugins.get( TextTransformation ) ).to.instanceOf( TextTransformation );
} );
it( 'has proper name', () => {
expect( TextTransformation.pluginName ).to.equal( 'TextTransformation' );
} );
describe( 'transformations', () => {
testTransformation( '(c)', '©' );
testTransformation( '(tm)', '™' );
testTransformation( '1/2', '½' );
testTransformation( '<=', '≤' );
testTransformation( '"Foo bar baz"', '„Foo bar baz”' );
function testTransformation( transformFrom, transformTo ) {
it( `should transform ${ transformFrom } to ${ transformTo }`, () => {
setData( model, '[]' );
model.change( writer => {
writer.insertText( transformFrom, doc.selection.getFirstPosition() );
} );
expect( getData( model ) ).to.equal( '' + transformTo + '[]' );
} );
}
} );
} );