8
0

elementreplacer.js 1.3 KB

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