8
0
Pārlūkot izejas kodu

Tests: Code coverage increase.

Marek Lewandowski 5 gadi atpakaļ
vecāks
revīzija
0c62d6ed0c
1 mainītis faili ar 79 papildinājumiem un 26 dzēšanām
  1. 79 26
      packages/ckeditor5-widget/tests/widgetresize.js

+ 79 - 26
packages/ckeditor5-widget/tests/widgetresize.js

@@ -399,6 +399,60 @@ describe( 'WidgetResize', () => {
 		} );
 	} );
 
+	describe( 'attachTo()', () => {
+		it( 'works without WidgetToolbarRepository plugin', async () => {
+			const localEditorElement = createEditorElement();
+			const localEditor = await ClassicEditor.create( localEditorElement, {
+				plugins: [
+					WidgetResize, simpleWidgetPlugin
+				]
+			} );
+
+			setModelData( localEditor.model, '[<widget></widget>]' );
+
+			const resizerOptions = {
+				modelElement: localEditor.model.document.getRoot().getChild( 0 ),
+				viewElement: localEditor.editing.view.document.getRoot().getChild( 0 ),
+				editor: localEditor,
+
+				isCentered: () => false,
+				getHandleHost( domWidgetElement ) {
+					return domWidgetElement;
+				},
+				getResizeHost( domWidgetElement ) {
+					return domWidgetElement;
+				},
+
+				onCommit: commitStub
+			};
+
+			localEditor.plugins.get( WidgetResize ).attachTo( resizerOptions );
+			// Nothing should be thrown.
+			// And clean up.
+			localEditorElement.remove();
+			return localEditor.destroy();
+		} );
+	} );
+
+	describe( 'init()', () => {
+		it( 'adds listener to redraw resizer on visible resizer change', async () => {
+			setModelData( editor.model, '<widget></widget><paragraph>[]</paragraph>' );
+			widget = editor.editing.view.document.getRoot().getChild( 0 );
+
+			const resizer = createResizer();
+			const redrawSpy = sinon.spy( resizer, 'redraw' );
+
+			focusEditor( editor );
+
+			editor.model.change( writer => {
+				const widgetModel = editor.model.document.getRoot().getChild( 0 );
+				writer.setSelection( widgetModel, 'on' );
+			} );
+
+			expect( redrawSpy.callCount ).to.be.equal( 1 );
+		} );
+	} );
+
 	describe( '_getResizerByHandle()', () => {
 		it( 'returns properly in case of invalid handle element', () => {
 			const randomElement = document.createElement( 'span' );
@@ -440,34 +494,33 @@ describe( 'WidgetResize', () => {
 					ArticlePluginSet, WidgetResize, simpleWidgetPlugin
 				]
 			} );
+	}
+	function simpleWidgetPlugin( editor ) {
+		editor.model.schema.register( 'widget', {
+			inheritAllFrom: '$block',
+			isObject: true
+		} );
 
-		function simpleWidgetPlugin( editor ) {
-			editor.model.schema.register( 'widget', {
-				inheritAllFrom: '$block',
-				isObject: true
+		editor.conversion.for( 'downcast' )
+			.elementToElement( {
+				model: 'widget',
+				view: ( modelItem, viewWriter ) => {
+					const parentDiv = viewWriter.createContainerElement( 'div' );
+					viewWriter.setStyle( 'height', '50px', parentDiv );
+					viewWriter.setStyle( 'width', '25%', parentDiv ); // It evaluates to 100px.
+
+					const subDiv = viewWriter.createContainerElement( 'div' );
+					viewWriter.insert( viewWriter.createPositionAt( subDiv, 'start' ), viewWriter.createText( 'foo' ) );
+					viewWriter.addClass( 'sub-div', subDiv );
+					viewWriter.setStyle( 'height', '20px', subDiv );
+					viewWriter.setStyle( 'width', '50px', subDiv );
+					viewWriter.insert( viewWriter.createPositionAt( parentDiv, 'start' ), subDiv );
+
+					return toWidget( parentDiv, viewWriter, {
+						label: 'element label'
+					} );
+				}
 			} );
-
-			editor.conversion.for( 'downcast' )
-				.elementToElement( {
-					model: 'widget',
-					view: ( modelItem, viewWriter ) => {
-						const parentDiv = viewWriter.createContainerElement( 'div' );
-						viewWriter.setStyle( 'height', '50px', parentDiv );
-						viewWriter.setStyle( 'width', '25%', parentDiv ); // It evaluates to 100px.
-
-						const subDiv = viewWriter.createContainerElement( 'div' );
-						viewWriter.insert( viewWriter.createPositionAt( subDiv, 'start' ), viewWriter.createText( 'foo' ) );
-						viewWriter.addClass( 'sub-div', subDiv );
-						viewWriter.setStyle( 'height', '20px', subDiv );
-						viewWriter.setStyle( 'width', '50px', subDiv );
-						viewWriter.insert( viewWriter.createPositionAt( parentDiv, 'start' ), subDiv );
-
-						return toWidget( parentDiv, viewWriter, {
-							label: 'element label'
-						} );
-					}
-				} );
-		}
 	}
 
 	function createEditorElement() {