8
0

uploadgatewaymock.js 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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. import mix from '@ckeditor/ckeditor5-utils/src/mix';
  6. import EmitterMixin from '@ckeditor/ckeditor5-utils/src/emittermixin';
  7. export default class UploadGatewayMock {
  8. constructor( token, uploadUrl ) {
  9. UploadGatewayMock.lastToken = token;
  10. UploadGatewayMock.lastUploadUrl = uploadUrl;
  11. }
  12. upload() {
  13. this.lastFileUploader = new FileUploader();
  14. return this.lastFileUploader;
  15. }
  16. resolveLastUpload() {
  17. this.lastFileUploader._resolve( { default: 'http://image.mock.url/' } );
  18. }
  19. }
  20. class FileUploader {
  21. onProgress( callback ) {
  22. this.on( 'progress', ( event, data ) => callback( data ) );
  23. return this;
  24. }
  25. onError( callback ) {
  26. this.once( 'error', ( event, data ) => callback( data ) );
  27. return this;
  28. }
  29. send() {
  30. return new Promise( resolve => {
  31. this._resolve = resolve;
  32. } );
  33. }
  34. abort() {
  35. this.aborted = true;
  36. }
  37. }
  38. mix( FileUploader, EmitterMixin );