| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- /**
- * @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.md.
- */
- /* globals document */
- import RootEditableElement from '../../../src/view/rooteditableelement';
- import Document from '../../../src/view/document';
- import ViewElement from '../../../src/view/element';
- import { isBlockFiller, BR_FILLER } from '../../../src/view/filler';
- import createElement from '@ckeditor/ckeditor5-utils/src/dom/createelement';
- describe( 'Document integration', () => {
- it( 'should remove content of the DOM', () => {
- const domDiv = createElement( document, 'div', { id: 'editor' }, [
- createElement( document, 'p' ),
- createElement( document, 'p' )
- ] );
- const viewDocument = new Document();
- createRoot( 'div', 'main', viewDocument );
- viewDocument.attachDomRoot( domDiv );
- viewDocument.render();
- expect( domDiv.childNodes.length ).to.equal( 1 );
- expect( isBlockFiller( domDiv.childNodes[ 0 ], BR_FILLER ) ).to.be.true;
- viewDocument.destroy();
- } );
- it( 'should render changes in the Document', () => {
- const domDiv = document.createElement( 'div' );
- const viewDocument = new Document();
- createRoot( 'div', 'main', viewDocument );
- viewDocument.attachDomRoot( domDiv );
- viewDocument.getRoot().appendChildren( new ViewElement( 'p' ) );
- viewDocument.render();
- expect( domDiv.childNodes.length ).to.equal( 1 );
- expect( domDiv.childNodes[ 0 ].tagName ).to.equal( 'P' );
- viewDocument.destroy();
- } );
- it( 'should render attribute changes', () => {
- const domRoot = document.createElement( 'div' );
- const viewDocument = new Document();
- const viewRoot = createRoot( 'div', 'main', viewDocument );
- viewDocument.attachDomRoot( domRoot );
- const viewP = new ViewElement( 'p', { class: 'foo' } );
- viewRoot.appendChildren( viewP );
- viewDocument.render();
- expect( domRoot.childNodes.length ).to.equal( 1 );
- expect( domRoot.childNodes[ 0 ].getAttribute( 'class' ) ).to.equal( 'foo' );
- viewP.setAttribute( 'class', 'bar' );
- viewDocument.render();
- expect( domRoot.childNodes.length ).to.equal( 1 );
- expect( domRoot.childNodes[ 0 ].getAttribute( 'class' ) ).to.equal( 'bar' );
- viewDocument.destroy();
- } );
- } );
- function createRoot( name, rootName, viewDoc ) {
- const viewRoot = new RootEditableElement( name );
- viewRoot.rootName = rootName;
- viewRoot.document = viewDoc;
- viewDoc.roots.add( viewRoot );
- return viewRoot;
- }
|