widgetresize-integration.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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. /* global document, Event */
  6. import ClassicEditor from '@ckeditor/ckeditor5-editor-classic/src/classiceditor';
  7. import { setData as setModelData } from '@ckeditor/ckeditor5-engine/src/dev-utils/model';
  8. import testUtils from '@ckeditor/ckeditor5-core/tests/_utils/utils';
  9. import Image from '@ckeditor/ckeditor5-image/src/image';
  10. import ImageResize from '@ckeditor/ckeditor5-image/src/imageresize';
  11. import { waitForAllImagesLoaded } from '@ckeditor/ckeditor5-image/tests/imageresize/_utils/utils';
  12. describe( 'WidgetResize - integration', () => {
  13. let editor, model, view, viewDocument, editorElement;
  14. testUtils.createSinonSandbox();
  15. beforeEach( () => {
  16. editorElement = document.createElement( 'div' );
  17. document.body.appendChild( editorElement );
  18. return ClassicEditor.create( editorElement, { plugins: [ Image, ImageResize ] } )
  19. .then( newEditor => {
  20. editor = newEditor;
  21. model = editor.model;
  22. view = editor.editing.view;
  23. viewDocument = view.document;
  24. } );
  25. } );
  26. afterEach( () => {
  27. editorElement.remove();
  28. return editor.destroy();
  29. } );
  30. it( 'should not fire viewDocument#mousedown events after starting resizing', async () => {
  31. const eventSpy = sinon.spy().named( 'ViewDocument#mousedown' );
  32. setModelData( model, '[<image src="/assets/sample.png"></image>]' );
  33. await waitForAllImagesLoaded( editor );
  34. const resizeSquareUI = [ ...viewDocument.getRoot().getChild( 0 ).getChildren() ]
  35. .find( element => element.hasClass( 'ck-widget__resizer' ) );
  36. const squareDomElement = view.domConverter.mapViewToDom( resizeSquareUI ).querySelector( '.ck-widget__resizer__handle-top-left' );
  37. viewDocument.on( 'mousedown', eventSpy );
  38. squareDomElement.dispatchEvent( new Event( 'mousedown' ) );
  39. expect( eventSpy.called ).to.equal( false );
  40. } );
  41. } );