8
0

elementreplacer.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /**
  2. * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
  3. * For licensing, see LICENSE.md.
  4. */
  5. /* globals document */
  6. /* bender-tags: browser-only */
  7. import ElementReplacer from 'ckeditor5/utils/elementreplacer.js';
  8. describe( 'ElementReplacer', () => {
  9. let replacer;
  10. let container, el1, el2, elNew1;
  11. beforeEach( () => {
  12. replacer = new ElementReplacer();
  13. container = document.createElement( 'div' );
  14. container.innerHTML = '<p>a</p><p>b</p>';
  15. el1 = container.firstChild;
  16. el2 = container.lastChild;
  17. elNew1 = document.createElement( 'h1' );
  18. } );
  19. describe( 'replace', () => {
  20. it( 'hides the given element', () => {
  21. replacer.replace( el1 );
  22. expect( el1.style.display ).to.equal( 'none' );
  23. } );
  24. it( 'replaces one element with another', () => {
  25. replacer.replace( el1, elNew1 );
  26. expect( el1.style.display ).to.equal( 'none' );
  27. expect( elNew1.previousSibling ).to.equal( el1 );
  28. } );
  29. } );
  30. describe( 'restore', () => {
  31. it( 'reverts all changes', () => {
  32. replacer.replace( el1, elNew1 );
  33. replacer.replace( el2 );
  34. replacer.restore();
  35. expect( el1.style.display ).to.equal( '' );
  36. expect( el2.style.display ).to.equal( '' );
  37. expect( elNew1.parentNode ).to.be.null;
  38. } );
  39. } );
  40. } );