From de126670eed85fad5852185f0b479a68afd9b505 Mon Sep 17 00:00:00 2001 From: Vito Date: Mon, 2 Jul 2018 19:15:52 +0100 Subject: [PATCH] [ADF-3294] fixed drag and drop folder to onto a folder (#3550) --- .../upload-drag-area.component.spec.ts | 31 ++++++++++++++++++- .../components/upload-drag-area.component.ts | 2 +- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/lib/content-services/upload/components/upload-drag-area.component.spec.ts b/lib/content-services/upload/components/upload-drag-area.component.spec.ts index 4452476825..bb58846a7b 100644 --- a/lib/content-services/upload/components/upload-drag-area.component.spec.ts +++ b/lib/content-services/upload/components/upload-drag-area.component.spec.ts @@ -367,7 +367,36 @@ describe('UploadDragAreaComponent', () => { addToQueueSpy.and.callFake((fileList) => { expect(fileList.name).toBe('file'); - expect(fileList.options.path).toBe('/pippo'); + expect(fileList.options.path).toBe('pippo/'); + }); + + let fakeCustomEvent: CustomEvent = new CustomEvent('CustomEvent', { + detail: { + data: getFakeShareDataRow(), + files: [fakeItem] + } + }); + + component.onUploadFiles(fakeCustomEvent); + })); + + it('should upload a folder to a specific target folder when dropped onto one', async(() => { + + let fakeItem = { + fullPath: '/folder-fake/file-fake.png', + isDirectory: false, + isFile: true, + name: 'file-fake.png', + relativeFolder: '/super', + file: (callbackFile) => { + let fileFake = new File(['fakefake'], 'file-fake.png', { type: 'image/png' }); + callbackFile(fileFake); + } + }; + + addToQueueSpy.and.callFake((fileList) => { + expect(fileList.name).toBe('file'); + expect(fileList.options.path).toBe('pippo/super'); }); let fakeCustomEvent: CustomEvent = new CustomEvent('CustomEvent', { diff --git a/lib/content-services/upload/components/upload-drag-area.component.ts b/lib/content-services/upload/components/upload-drag-area.component.ts index fc14ae112b..421b7a556d 100644 --- a/lib/content-services/upload/components/upload-drag-area.component.ts +++ b/lib/content-services/upload/components/upload-drag-area.component.ts @@ -121,7 +121,7 @@ export class UploadDragAreaComponent extends UploadBase implements NodePermissio let fileInfo: FileInfo[] = event.detail.files; if (this.isTargetNodeFolder(event)) { const destinationFolderName = event.detail.data.obj.entry.name; - fileInfo.map((file) => file.relativeFolder = file.relativeFolder.concat(destinationFolderName)); + fileInfo.map((file) => file.relativeFolder = destinationFolderName ? destinationFolderName.concat(file.relativeFolder) : file.relativeFolder); } if (fileInfo && fileInfo.length > 0) { this.uploadFilesInfo(fileInfo);