8
0

integration.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /**
  2. * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  3. * For licensing, see LICENSE.md.
  4. */
  5. /* globals document */
  6. import Document from '../../../src/view/document';
  7. import ViewElement from '../../../src/view/element';
  8. import { isBlockFiller, BR_FILLER } from '../../../src/view/filler';
  9. import createElement from '@ckeditor/ckeditor5-utils/src/dom/createelement';
  10. describe( 'Document integration', () => {
  11. it( 'should remove content of the DOM', () => {
  12. const domDiv = createElement( document, 'div', { id: 'editor' }, [
  13. createElement( document, 'p' ),
  14. createElement( document, 'p' )
  15. ] );
  16. const viewDocument = new Document();
  17. viewDocument.createRoot( domDiv );
  18. viewDocument.render();
  19. expect( domDiv.childNodes.length ).to.equal( 1 );
  20. expect( isBlockFiller( domDiv.childNodes[ 0 ], BR_FILLER ) ).to.be.true;
  21. viewDocument.destroy();
  22. } );
  23. it( 'should render changes in the Document', () => {
  24. const domDiv = document.createElement( 'div' );
  25. const viewDocument = new Document();
  26. viewDocument.createRoot( domDiv );
  27. viewDocument.getRoot().appendChildren( new ViewElement( 'p' ) );
  28. viewDocument.render();
  29. expect( domDiv.childNodes.length ).to.equal( 1 );
  30. expect( domDiv.childNodes[ 0 ].tagName ).to.equal( 'P' );
  31. viewDocument.destroy();
  32. } );
  33. it( 'should render attribute changes', () => {
  34. const domRoot = document.createElement( 'div' );
  35. const viewDocument = new Document();
  36. const viewRoot = viewDocument.createRoot( domRoot );
  37. const viewP = new ViewElement( 'p', { class: 'foo' } );
  38. viewRoot.appendChildren( viewP );
  39. viewDocument.render();
  40. expect( domRoot.childNodes.length ).to.equal( 1 );
  41. expect( domRoot.childNodes[ 0 ].getAttribute( 'class' ) ).to.equal( 'foo' );
  42. viewP.setAttribute( 'class', 'bar' );
  43. viewDocument.render();
  44. expect( domRoot.childNodes.length ).to.equal( 1 );
  45. expect( domRoot.childNodes[ 0 ].getAttribute( 'class' ) ).to.equal( 'bar' );
  46. viewDocument.destroy();
  47. } );
  48. } );