Browse Source

Merge pull request #220 from ckeditor/t/ckeditor5/1066

Fix: Complete upload icon should not be rendered in Edge. Closes ckeditor/ckeditor5/issues/1066.
Oskar Wróbel 7 years ago
parent
commit
2fe152cb4b

+ 3 - 1
packages/ckeditor5-image/src/imageupload/imageuploadprogress.js

@@ -15,6 +15,7 @@ import uploadingPlaceholder from '../../theme/icons/image_placeholder.svg';
 import UIElement from '@ckeditor/ckeditor5-engine/src/view/uielement';
 import ViewPosition from '@ckeditor/ckeditor5-engine/src/view/position';
 import ViewRange from '@ckeditor/ckeditor5-engine/src/view/range';
+import env from '@ckeditor/ckeditor5-utils/src/env';
 
 import '../../theme/imageuploadprogress.css';
 import '../../theme/imageuploadicon.css';
@@ -104,7 +105,8 @@ export default class ImageUploadProgress extends Plugin {
 			return;
 		}
 
-		if ( status == 'complete' && fileRepository.loaders.get( uploadId ) ) {
+		// Because in Edge there is no way to show fancy animation of completeIcon we need to skip it.
+		if ( status == 'complete' && fileRepository.loaders.get( uploadId ) && !env.isEdge ) {
 			_showCompleteIcon( viewFigure, viewWriter, editor.editing.view );
 		}
 

+ 24 - 0
packages/ckeditor5-image/tests/imageupload/imageuploadprogress.js

@@ -19,6 +19,7 @@ import { setData as setModelData } from '@ckeditor/ckeditor5-engine/src/dev-util
 import { getData as getViewData } from '@ckeditor/ckeditor5-engine/src/dev-utils/view';
 import testUtils from '@ckeditor/ckeditor5-core/tests/_utils/utils';
 import svgPlaceholder from '../../theme/icons/image_placeholder.svg';
+import env from '@ckeditor/ckeditor5-utils/src/env';
 
 describe( 'ImageUploadProgress', () => {
 	const imagePlaceholder = encodeURIComponent( svgPlaceholder );
@@ -263,4 +264,27 @@ describe( 'ImageUploadProgress', () => {
 			'</figure>]'
 		);
 	} );
+
+	it( 'should not create completeIcon element when browser is Microsoft Edge', done => {
+		testUtils.sinon.stub( env, 'isEdge' ).get( () => true );
+
+		setModelData( model, '<paragraph>[]foo</paragraph>' );
+		editor.execute( 'imageUpload', { file: createNativeFileMock() } );
+
+		model.document.once( 'change', () => {
+			model.document.once( 'change', () => {
+				expect( getViewData( view ) ).to.equal(
+					'[<figure class="ck-widget image">' +
+						'<img src="image.png"></img>' +
+					'</figure>]<p>foo</p>'
+				);
+
+				done();
+			}, { priority: 'lowest' } );
+
+			adapterMock.mockSuccess( { default: 'image.png' } );
+		} );
+
+		nativeReaderMock.mockSuccess( base64Sample );
+	} );
 } );