From 96efd683bb32cdff7e39a524941ca060aa023365 Mon Sep 17 00:00:00 2001 From: Lucas Di Pentima Date: Wed, 23 Sep 2020 18:14:24 -0300 Subject: [PATCH] 16592: Adds tests exposing the bug. Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima --- src/common/webdav.test.ts | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/src/common/webdav.test.ts b/src/common/webdav.test.ts index c85f30e7..b928f82a 100644 --- a/src/common/webdav.test.ts +++ b/src/common/webdav.test.ts @@ -62,7 +62,7 @@ describe('WebDAV', () => { expect(request).toBeInstanceOf(XMLHttpRequest); }); - it('COPY - adds baseURL to Destination header', async () => { + it('COPY - adds baseURL with trailing slash to Destination header', async () => { const { open, setRequestHeader, load, createRequest } = mockCreateRequest(); const webdav = new WebDAV(undefined, createRequest); webdav.defaults.baseURL = 'base/'; @@ -74,18 +74,30 @@ describe('WebDAV', () => { expect(request).toBeInstanceOf(XMLHttpRequest); }); + it('COPY - adds baseURL without trailing slash to Destination header', async () => { + const { open, setRequestHeader, load, createRequest } = mockCreateRequest(); + const webdav = new WebDAV(undefined, createRequest); + webdav.defaults.baseURL = 'base'; + const promise = webdav.copy('foo', 'foo-copy'); + load(); + const request = await promise; + expect(open).toHaveBeenCalledWith('COPY', 'base/foo'); + expect(setRequestHeader).toHaveBeenCalledWith('Destination', 'base/foo-copy'); + expect(request).toBeInstanceOf(XMLHttpRequest); + }); + it('MOVE', async () => { const { open, setRequestHeader, load, createRequest } = mockCreateRequest(); const webdav = new WebDAV(undefined, createRequest); - const promise = webdav.move('foo', 'foo-copy'); + const promise = webdav.move('foo', 'foo-moved'); load(); const request = await promise; expect(open).toHaveBeenCalledWith('MOVE', 'foo'); - expect(setRequestHeader).toHaveBeenCalledWith('Destination', 'foo-copy'); + expect(setRequestHeader).toHaveBeenCalledWith('Destination', 'foo-moved'); expect(request).toBeInstanceOf(XMLHttpRequest); }); - it('MOVE - adds baseURL to Destination header', async () => { + it('MOVE - adds baseURL with trailing slash to Destination header', async () => { const { open, setRequestHeader, load, createRequest } = mockCreateRequest(); const webdav = new WebDAV(undefined, createRequest); webdav.defaults.baseURL = 'base/'; @@ -97,6 +109,18 @@ describe('WebDAV', () => { expect(request).toBeInstanceOf(XMLHttpRequest); }); + it('MOVE - adds baseURL without trailing slash to Destination header', async () => { + const { open, setRequestHeader, load, createRequest } = mockCreateRequest(); + const webdav = new WebDAV(undefined, createRequest); + webdav.defaults.baseURL = 'base'; + const promise = webdav.move('foo', 'foo-moved'); + load(); + const request = await promise; + expect(open).toHaveBeenCalledWith('MOVE', 'base/foo'); + expect(setRequestHeader).toHaveBeenCalledWith('Destination', 'base/foo-moved'); + expect(request).toBeInstanceOf(XMLHttpRequest); + }); + it('DELETE', async () => { const { open, load, createRequest } = mockCreateRequest(); const webdav = new WebDAV(undefined, createRequest); -- 2.30.2