Przeglądaj źródła

Merge branch 'master' into t/ckeditor5/1791

Aleksander Nowodzinski 6 lat temu
rodzic
commit
ab79405a2f

+ 12 - 0
packages/ckeditor5-upload/CHANGELOG.md

@@ -1,6 +1,18 @@
 Changelog
 =========
 
+## [11.1.1](https://github.com/ckeditor/ckeditor5-upload/compare/v11.1.0...v11.1.1) (2019-07-10)
+
+Internal changes only (updated dependencies, documentation, etc.).
+
+
+## [11.1.0](https://github.com/ckeditor/ckeditor5-upload/compare/v11.0.2...v11.1.0) (2019-07-04)
+
+### Features
+
+* Introduced the Base64 image upload adapter. Closes [ckeditor/ckeditor5#1378](https://github.com/ckeditor/ckeditor5/issues/1378). ([938f0f7](https://github.com/ckeditor/ckeditor5-upload/commit/938f0f7))
+
+
 ## [11.0.2](https://github.com/ckeditor/ckeditor5-upload/compare/v11.0.1...v11.0.2) (2019-06-05)
 
 ### Other changes

+ 5 - 5
packages/ckeditor5-upload/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@ckeditor/ckeditor5-upload",
-  "version": "11.0.2",
+  "version": "11.1.1",
   "description": "Upload Feature for CKEditor 5.",
   "keywords": [
     "ckeditor",
@@ -9,13 +9,13 @@
     "ckeditor5-lib"
   ],
   "dependencies": {
-    "@ckeditor/ckeditor5-core": "^12.1.1",
-    "@ckeditor/ckeditor5-ui": "^13.0.0",
-    "@ckeditor/ckeditor5-utils": "^12.1.1"
+    "@ckeditor/ckeditor5-core": "^12.2.1",
+    "@ckeditor/ckeditor5-ui": "^13.0.2",
+    "@ckeditor/ckeditor5-utils": "^13.0.1"
   },
   "devDependencies": {
     "eslint": "^5.5.0",
-    "eslint-config-ckeditor5": "^1.0.11",
+    "eslint-config-ckeditor5": "^2.0.0",
     "husky": "^1.3.1",
     "lint-staged": "^7.0.0"
   },

+ 11 - 5
packages/ckeditor5-upload/src/filerepository.js

@@ -7,14 +7,15 @@
  * @module upload/filerepository
  */
 
+/* globals console */
+
 import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
 
 import PendingActions from '@ckeditor/ckeditor5-core/src/pendingactions';
-import CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';
+import CKEditorError, { attachLinkToDocumentation } from '@ckeditor/ckeditor5-utils/src/ckeditorerror';
 import ObservableMixin from '@ckeditor/ckeditor5-utils/src/observablemixin';
 import Collection from '@ckeditor/ckeditor5-utils/src/collection';
 import mix from '@ckeditor/ckeditor5-utils/src/mix';
-import log from '@ckeditor/ckeditor5-utils/src/log';
 
 import FileReader from './filereader.js';
 
@@ -171,7 +172,9 @@ export default class FileRepository extends Plugin {
 			 *
 			 * @error filerepository-no-upload-adapter
 			 */
-			log.error( 'filerepository-no-upload-adapter: Upload adapter is not defined.' );
+			console.warn( attachLinkToDocumentation(
+				'filerepository-no-upload-adapter: Upload adapter is not defined.'
+			) );
 
 			return null;
 		}
@@ -420,7 +423,7 @@ class FileLoader {
 	 */
 	read() {
 		if ( this.status != 'idle' ) {
-			throw new CKEditorError( 'filerepository-read-wrong-status: You cannot call read if the status is different than idle.' );
+			throw new CKEditorError( 'filerepository-read-wrong-status: You cannot call read if the status is different than idle.', this );
 		}
 
 		this.status = 'reading';
@@ -465,7 +468,10 @@ class FileLoader {
 	 */
 	upload() {
 		if ( this.status != 'idle' ) {
-			throw new CKEditorError( 'filerepository-upload-wrong-status: You cannot call upload if the status is different than idle.' );
+			throw new CKEditorError(
+				'filerepository-upload-wrong-status: You cannot call upload if the status is different than idle.',
+				this
+			);
 		}
 
 		this.status = 'uploading';

+ 16 - 18
packages/ckeditor5-upload/tests/filerepository.js

@@ -3,7 +3,7 @@
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
  */
 
-/* globals window */
+/* globals window, console */
 
 import VirtualTestEditor from '@ckeditor/ckeditor5-core/tests/_utils/virtualtesteditor';
 
@@ -13,15 +13,11 @@ import FileRepository from '../src/filerepository';
 
 import Collection from '@ckeditor/ckeditor5-utils/src/collection';
 import { createNativeFileMock, UploadAdapterMock, NativeFileReaderMock } from './_utils/mocks';
-import log from '@ckeditor/ckeditor5-utils/src/log';
-import testUtils from '@ckeditor/ckeditor5-core/tests/_utils/utils';
 import FileReader from '../src/filereader';
 
 describe( 'FileRepository', () => {
 	let editor, fileRepository, adapterMock;
 
-	testUtils.createSinonSandbox();
-
 	class UploadAdapterPluginMock extends Plugin {
 		init() {
 			fileRepository = this.editor.plugins.get( 'FileRepository' );
@@ -45,6 +41,8 @@ describe( 'FileRepository', () => {
 	} );
 
 	afterEach( () => {
+		sinon.restore();
+
 		return editor.destroy();
 	} );
 
@@ -171,16 +169,16 @@ describe( 'FileRepository', () => {
 
 	describe( 'createLoader()', () => {
 		it( 'should return null if adapter is not present', () => {
-			const stub = testUtils.sinon.stub( log, 'error' );
+			const consoleWarnStub = sinon.stub( console, 'warn' );
 
 			fileRepository.createUploadAdapter = undefined;
 
 			expect( fileRepository.createLoader( createNativeFileMock() ) ).to.be.null;
 
-			sinon.assert.calledOnce( stub );
+			sinon.assert.calledOnce( consoleWarnStub );
 			sinon.assert.calledWithExactly(
-				stub,
-				'filerepository-no-upload-adapter: Upload adapter is not defined.'
+				consoleWarnStub,
+				sinon.match( 'filerepository-no-upload-adapter: Upload adapter is not defined.' )
 			);
 		} );
 
@@ -202,7 +200,7 @@ describe( 'FileRepository', () => {
 		} );
 
 		it( 'should catch if file promise rejected (file)', () => {
-			const catchSpy = testUtils.sinon.spy( Promise.prototype, 'catch' );
+			const catchSpy = sinon.spy( Promise.prototype, 'catch' );
 
 			fileRepository.createLoader( createNativeFileMock() );
 
@@ -211,7 +209,7 @@ describe( 'FileRepository', () => {
 		} );
 
 		it( 'should catch if file promise rejected (promise)', () => {
-			const catchSpy = testUtils.sinon.spy( Promise.prototype, 'catch' );
+			const catchSpy = sinon.spy( Promise.prototype, 'catch' );
 
 			fileRepository.createLoader( new Promise( () => {} ) );
 
@@ -260,7 +258,7 @@ describe( 'FileRepository', () => {
 		beforeEach( () => {
 			file = createNativeFileMock();
 			loader = fileRepository.createLoader( file );
-			destroySpy = testUtils.sinon.spy( loader, '_destroy' );
+			destroySpy = sinon.spy( loader, '_destroy' );
 		} );
 
 		it( 'should destroy provided loader', () => {
@@ -287,7 +285,7 @@ describe( 'FileRepository', () => {
 			const promise = new Promise( resolve => resolve( createNativeFileMock() ) );
 			const newLoader = fileRepository.createLoader( promise );
 
-			destroySpy = testUtils.sinon.spy( newLoader, '_destroy' );
+			destroySpy = sinon.spy( newLoader, '_destroy' );
 
 			fileRepository.destroyLoader( promise );
 
@@ -303,7 +301,7 @@ describe( 'FileRepository', () => {
 			const promise = Promise.resolve( createNativeFileMock() );
 			const newLoader = fileRepository.createLoader( promise );
 
-			destroySpy = testUtils.sinon.spy( newLoader, '_destroy' );
+			destroySpy = sinon.spy( newLoader, '_destroy' );
 
 			return newLoader.file.then( fileInstance => {
 				expect( fileRepository.loaders.length ).to.equal( 1 );
@@ -324,7 +322,7 @@ describe( 'FileRepository', () => {
 		let loader, file, nativeReaderMock;
 
 		beforeEach( () => {
-			testUtils.sinon.stub( window, 'FileReader' ).callsFake( () => {
+			sinon.stub( window, 'FileReader' ).callsFake( () => {
 				nativeReaderMock = new NativeFileReaderMock();
 
 				return nativeReaderMock;
@@ -695,9 +693,9 @@ describe( 'FileRepository', () => {
 			let filePromiseRejecterSpy, readerAbortSpy, adapterAbortSpy;
 
 			beforeEach( () => {
-				filePromiseRejecterSpy = testUtils.sinon.spy( loader._filePromiseWrapper, 'rejecter' );
-				readerAbortSpy = testUtils.sinon.spy( loader._reader, 'abort' );
-				adapterAbortSpy = testUtils.sinon.spy( loader._adapter, 'abort' );
+				filePromiseRejecterSpy = sinon.spy( loader._filePromiseWrapper, 'rejecter' );
+				readerAbortSpy = sinon.spy( loader._reader, 'abort' );
+				adapterAbortSpy = sinon.spy( loader._adapter, 'abort' );
 			} );
 
 			it( 'should abort correctly before read/upload is called', () => {