| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- /**
- * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
- */
- import VirtualTestEditor from '@ckeditor/ckeditor5-core/tests/_utils/virtualtesteditor';
- import Input from '../../src/input';
- import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph';
- import BoldEditing from '@ckeditor/ckeditor5-basic-styles/src/bold/boldediting';
- import { getData } from '@ckeditor/ckeditor5-engine/src/dev-utils/view';
- describe( 'Bug ckeditor5-typing#188', () => {
- let editor;
- beforeEach( () => {
- return VirtualTestEditor.create( {
- plugins: [ Input, Paragraph, BoldEditing ]
- } ).then( newEditor => {
- editor = newEditor;
- } );
- } );
- afterEach( () => {
- return editor.destroy();
- } );
- it( 'should not lost attributes while typing - IME', () => {
- const view = editor.editing.view;
- const p = view.document.getRoot().getChild( 0 );
- editor.execute( 'bold' );
- simulateMutation( view, p, 0, 0, '', 'u' );
- expect( getData( view, { withoutSelection: true } ) ).to.equal( '<p><strong>u</strong></p>' );
- simulateMutation( view, p, 0, 1, 'u', 'ü' );
- expect( getData( view, { withoutSelection: true } ) ).to.equal( '<p><strong>ü</strong></p>' );
- } );
- } );
- function simulateMutation( view, node, startOffset, endOffset, oldText, newText ) {
- const viewSelection = view.createSelection();
- viewSelection.setTo( view.createRange(
- view.createPositionAt( node, startOffset ),
- view.createPositionAt( node, endOffset )
- ) );
- view.document.fire( 'mutations',
- [
- {
- type: 'text',
- oldText,
- newText,
- node
- }
- ],
- viewSelection
- );
- }
|