Browse Source

Tests: Added unit test coverage.

Marek Lewandowski 6 years ago
parent
commit
c6271efc3a
1 changed files with 75 additions and 0 deletions
  1. 75 0
      packages/ckeditor5-image/tests/imageresize.js

+ 75 - 0
packages/ckeditor5-image/tests/imageresize.js

@@ -13,6 +13,8 @@ import Image from '../src/image';
 import ImageResize from '../src/imageresize';
 import ImageResizeCommand from '../src/imageresize/imageresizecommand';
 import ImageStyle from '../src/imagestyle';
+import ImageToolbar from '../src/imagetoolbar';
+import ImageTextAlternative from '../src/imagetextalternative';
 import Undo from '@ckeditor/ckeditor5-undo/src/undo';
 import Table from '@ckeditor/ckeditor5-table/src/table';
 
@@ -705,6 +707,79 @@ describe( 'ImageResize', () => {
 		} );
 	} );
 
+	describe( 'widget toolbar integration', () => {
+		let widgetToolbarRepository;
+
+		beforeEach( () => createEditor( {
+			plugins: [ Image, ImageStyle, Paragraph, Undo, Table, ImageResize, ImageToolbar, ImageTextAlternative ],
+			image: {
+				toolbar: [ 'imageTextAlternative' ],
+				resizeUnit: 'px'
+			}
+		} ) );
+
+		beforeEach( async () => {
+			setData( editor.model, `<paragraph>foo</paragraph>[<image src="${ IMAGE_SRC_FIXTURE }"></image>]` );
+
+			widget = viewDocument.getRoot().getChild( 1 );
+
+			widgetToolbarRepository = editor.plugins.get( 'WidgetToolbarRepository' );
+		} );
+
+		it( 'visibility during resize', async () => {
+			expect( widgetToolbarRepository.isEnabled ).to.be.true;
+
+			await generateResizeTest( {
+				expectedWidth: 100,
+				modelRegExp: /.+/,
+				pointerOffset: {
+					x: 0,
+					y: 0
+				},
+				resizerPosition: 'bottom-right',
+				checkBeforeMouseUp: () => {
+					expect( widgetToolbarRepository.isEnabled ).to.be.false;
+				}
+			} )();
+		} );
+
+		it( 'visibility after the resize', async () => {
+			expect( widgetToolbarRepository.isEnabled ).to.be.true;
+
+			await generateResizeTest( {
+				expectedWidth: 100,
+				modelRegExp: /.+/,
+				pointerOffset: {
+					x: 0,
+					y: 0
+				},
+				resizerPosition: 'bottom-right'
+			} )();
+
+			expect( widgetToolbarRepository.isEnabled ).to.be.true;
+		} );
+
+		it( 'visibility after resize was canceled', async () => {
+			expect( widgetToolbarRepository.isEnabled ).to.be.true;
+
+			const resizer = getSelectedImageResizer( editor );
+
+			await generateResizeTest( {
+				expectedWidth: 100,
+				modelRegExp: /.+/,
+				pointerOffset: {
+					x: 0,
+					y: 0
+				},
+				resizerPosition: 'bottom-right',
+				checkBeforeMouseUp: () => {
+					resizer.cancel();
+					expect( widgetToolbarRepository.isEnabled ).to.be.true;
+				}
+			} )();
+		} );
+	} );
+
 	function isVisible( element ) {
 		// Checks if the DOM element is visible to the end user.
 		return element.offsetParent !== null && !element.classList.contains( 'ck-hidden' );