8
0

domconverter.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /**
  2. * @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
  3. * For licensing, see LICENSE.md.
  4. */
  5. /* bender-tags: view, domconverter */
  6. 'use strict';
  7. import DomConverter from '/ckeditor5/engine/view/domconverter.js';
  8. import ViewEditable from '/ckeditor5/engine/view/editableelement.js';
  9. import ViewDocument from '/ckeditor5/engine/view/document.js';
  10. import { BR_FILLER, NBSP_FILLER } from '/ckeditor5/engine/view/filler.js';
  11. import testUtils from '/tests/ckeditor5/_utils/utils.js';
  12. testUtils.createSinonSandbox();
  13. describe( 'DomConverter', () => {
  14. let converter;
  15. beforeEach( () => {
  16. converter = new DomConverter();
  17. } );
  18. describe( 'constructor', () => {
  19. it( 'should create converter with BR block filler by default', () => {
  20. expect( converter.blockFiller ).to.equal( BR_FILLER );
  21. } );
  22. it( 'should create converter with defined block filler', () => {
  23. converter = new DomConverter( { blockFiller: NBSP_FILLER } );
  24. expect( converter.blockFiller ).to.equal( NBSP_FILLER );
  25. } );
  26. } );
  27. describe( 'focus', () => {
  28. let viewEditable, domEditable;
  29. beforeEach( () => {
  30. viewEditable = new ViewEditable( new ViewDocument(), 'div' );
  31. domEditable = document.createElement( 'div' );
  32. converter.bindElements( domEditable, viewEditable );
  33. domEditable.setAttribute( 'contenteditable', 'true' );
  34. document.body.appendChild( domEditable );
  35. } );
  36. afterEach( () => {
  37. document.body.removeChild( domEditable );
  38. } );
  39. it( 'should call focus on corresponding DOM editable', () => {
  40. const focusSpy = testUtils.sinon.spy( domEditable, 'focus' );
  41. converter.focus( viewEditable );
  42. expect( focusSpy.calledOnce ).to.be.true;
  43. } );
  44. it( 'should not focus already focused editable', () => {
  45. const focusSpy = testUtils.sinon.spy( domEditable, 'focus' );
  46. converter.focus( viewEditable );
  47. converter.focus( viewEditable );
  48. expect( focusSpy.calledOnce ).to.be.true;
  49. } );
  50. } );
  51. } );