Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions libs/ng2-file-upload/file-upload/file-drop.directive.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ export class FileDropDirective {
@Input() uploader?: FileUploader;
@Output() fileOver: EventEmitter<any> = new EventEmitter();
// eslint-disable-next-line @angular-eslint/no-output-on-prefix
@Output() onFileDrop: EventEmitter<File[]> = new EventEmitter<File[]>();
@Output() onFileDrop: EventEmitter<FileList> = new EventEmitter<FileList>();

protected element: ElementRef;

Expand Down Expand Up @@ -64,7 +64,7 @@ export class FileDropDirective {
this.fileOver.emit(false);
}

protected _getTransfer(event: any): any {
protected _getTransfer(event: any): DataTransfer {
return event.dataTransfer ? event.dataTransfer : event.originalEvent.dataTransfer; // jQuery fix;
}

Expand Down
9 changes: 6 additions & 3 deletions libs/ng2-file-upload/file-upload/file-uploader.class.ts
Original file line number Diff line number Diff line change
Expand Up @@ -96,12 +96,15 @@ export class FileUploader {
}
}

addToQueue(files: File[], _options?: FileUploaderOptions, filters?: [] | string): void {
addToQueue(files: FileList, _options?: FileUploaderOptions, filters?: [] | string): void {
let options = _options;
const list: File[] = [];
for (const file of files) {
list.push(file);
// fori loop since jest tests do not have the dom.iterable implementation ready
// see https://github.com/jsdom/jsdom/issues/1272
for (let i = 0; i < files.length; i++) {
list.push(files[i]);
}

const arrayOfFilters = this._getFilters(filters);
const count = this.queue.length;
const addedFileItems: FileItem[] = [];
Expand Down
24 changes: 12 additions & 12 deletions libs/ng2-file-upload/testing/spec/file-uploader.class.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ describe('FileUploader: onWhenAddingFileFailed', () => {
const uploader = new FileUploader({ url: '', maxFileSize: filterFileSize });
const onWhenAddingFileFailed = jest.spyOn(uploader, 'onWhenAddingFileFailed');

uploader.addToQueue([file]);
uploader.addToQueue([file] as unknown as FileList);

expect(filterFileSize).toBeGreaterThan(file.size);
expect(onWhenAddingFileFailed).toBeCalledTimes(0);
Expand All @@ -28,7 +28,7 @@ describe('FileUploader: onWhenAddingFileFailed', () => {
const uploader = new FileUploader({ url: '', maxFileSize: filterFileSize });
const onWhenAddingFileFailed = jest.spyOn(uploader, 'onWhenAddingFileFailed');

uploader.addToQueue([file]);
uploader.addToQueue([file] as unknown as FileList);

expect(filterFileSize).toBeLessThan(file.size);
expect(onWhenAddingFileFailed).toBeCalledTimes(1);
Expand All @@ -40,7 +40,7 @@ describe('FileUploader: onWhenAddingFileFailed', () => {
const onWhenAddingFileFailed = jest.spyOn(uploader, 'onWhenAddingFileFailed');
const files = [file, file];

uploader.addToQueue([file, file]);
uploader.addToQueue([file, file] as unknown as FileList);

expect(files.length).toBeLessThanOrEqual(queueLimit);
expect(onWhenAddingFileFailed).toBeCalledTimes(0);
Expand All @@ -52,7 +52,7 @@ describe('FileUploader: onWhenAddingFileFailed', () => {
const onWhenAddingFileFailed = jest.spyOn(uploader, 'onWhenAddingFileFailed');
const files = [file, file];

uploader.addToQueue([file, file]);
uploader.addToQueue([file, file] as unknown as FileList);

expect(files.length).toBeGreaterThan(queueLimit);
expect(onWhenAddingFileFailed).toBeCalledTimes(1);
Expand All @@ -62,7 +62,7 @@ describe('FileUploader: onWhenAddingFileFailed', () => {
const uploader = new FileUploader({ url: '', allowedFileType: ["image"] });
const onWhenAddingFileFailed = jest.spyOn(uploader, 'onWhenAddingFileFailed');

uploader.addToQueue([file]);
uploader.addToQueue([file] as unknown as FileList);

expect(onWhenAddingFileFailed).toBeCalledTimes(0);
});
Expand All @@ -71,7 +71,7 @@ describe('FileUploader: onWhenAddingFileFailed', () => {
const uploader = new FileUploader({ url: '', allowedFileType: ["doc"] });
const onWhenAddingFileFailed = jest.spyOn(uploader, 'onWhenAddingFileFailed');

uploader.addToQueue([file]);
uploader.addToQueue([file] as unknown as FileList);

expect(onWhenAddingFileFailed).toBeCalledTimes(1);
});
Expand All @@ -81,7 +81,7 @@ describe('FileUploader: onWhenAddingFileFailed', () => {
const uploader = new FileUploader({ url: '', allowedMimeType: [filterMimeType] });
const onWhenAddingFileFailed = jest.spyOn(uploader, 'onWhenAddingFileFailed');

uploader.addToQueue([file]);
uploader.addToQueue([file] as unknown as FileList);

expect(file.type).toBe(filterMimeType);
expect(onWhenAddingFileFailed).toBeCalledTimes(0);
Expand All @@ -92,7 +92,7 @@ describe('FileUploader: onWhenAddingFileFailed', () => {
const uploader = new FileUploader({ url: '', allowedMimeType: [filterMimeType] });
const onWhenAddingFileFailed = jest.spyOn(uploader, 'onWhenAddingFileFailed');

uploader.addToQueue([file]);
uploader.addToQueue([file] as unknown as FileList);

expect(file.type).not.toBe(filterMimeType);
expect(onWhenAddingFileFailed).toBeCalledTimes(1);
Expand All @@ -103,7 +103,7 @@ describe('FileUploader: onWhenAddingFileFailed', () => {
const uploader = new FileUploader({ url: '', filters: [positiveFilter] });
const onWhenAddingFileFailed = jest.spyOn(uploader, 'onWhenAddingFileFailed');

uploader.addToQueue([file]);
uploader.addToQueue([file] as unknown as FileList);

expect(positiveFilter.fn(new FileLikeObject(file))).toBe(true);
expect(onWhenAddingFileFailed).toBeCalledTimes(0);
Expand All @@ -114,7 +114,7 @@ describe('FileUploader: onWhenAddingFileFailed', () => {
const uploader = new FileUploader({ url: '', filters: [negativeFilter] });
const onWhenAddingFileFailed = jest.spyOn(uploader, 'onWhenAddingFileFailed');

uploader.addToQueue([file]);
uploader.addToQueue([file] as unknown as FileList);

expect(negativeFilter.fn(new FileLikeObject(file))).toBe(false);
expect(onWhenAddingFileFailed).toBeCalledTimes(1);
Expand All @@ -134,8 +134,8 @@ describe('FileUploader: onWhenAddingFileFailed', () => {
const onWhenAddingFileFailed = jest.spyOn(uploader, 'onWhenAddingFileFailed');
const files = [file, file];

uploader.addToQueue(files);
uploader.addToQueue(files as unknown as FileList);

expect(onWhenAddingFileFailed).toBeCalledTimes(files.length);
});
});
});