/** * @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 + '[]' ); } ); } } ); } );