Skip to content

Commit d895732

Browse files
committed
Added tests for the MKCOL method
1 parent 056df31 commit d895732

File tree

4 files changed

+89
-0
lines changed

4 files changed

+89
-0
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import { TestCallback, TestInfo } from '../Type'
2+
import { v2 } from '../../../../lib/index.js'
3+
4+
export function starter(server : v2.WebDAVServer, info : TestInfo, isValid : TestCallback, name : string, expectedStatusCode : number, callback ?: (server : v2.WebDAVServer) => void) : void
5+
{
6+
server.rootFileSystem().addSubTree(v2.RequestContext.createExternal(server), {
7+
'emptyFolder1': v2.ResourceType.Directory,
8+
'folder1': {
9+
'emptyFolder2': v2.ResourceType.Directory,
10+
'file2': v2.ResourceType.File,
11+
'folder2': {
12+
'emptyFolder3': v2.ResourceType.Directory,
13+
'file3': v2.ResourceType.File
14+
}
15+
},
16+
'file1': v2.ResourceType.File
17+
}, (e) => {
18+
if(e) return isValid(false, 'Cannot call "addSubTree(...)".', e);
19+
20+
info.req({
21+
url: 'http://localhost:' + server.options.port + '/' + name,
22+
method: 'MKCOL'
23+
}, expectedStatusCode, () => {
24+
if(!callback)
25+
isValid(true);
26+
else
27+
callback(server);
28+
})
29+
})
30+
}

test/v2/tests.ts/mkcol/mkcolOnFile.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { Test } from '../Type'
2+
import { v2 } from '../../../../lib/index.js'
3+
import { starter } from './.createFiles'
4+
5+
export default ((info, isValid) =>
6+
{
7+
const server1 = info.init(3);
8+
9+
starter(info.startServer(), info, isValid, 'file1', v2.HTTPCodes.MethodNotAllowed);
10+
starter(info.startServer(), info, isValid, 'file1/folder', v2.HTTPCodes.Forbidden);
11+
starter(info.startServer(), info, isValid, 'file1/unmapped/folder', v2.HTTPCodes.Conflict);
12+
13+
}) as Test;
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { Test } from '../Type'
2+
import { v2 } from '../../../../lib/index.js'
3+
import { starter } from './.createFiles'
4+
5+
export default ((info, isValid) =>
6+
{
7+
const server1 = info.init(3);
8+
9+
starter(info.startServer(), info, isValid, 'folder1', v2.HTTPCodes.MethodNotAllowed);
10+
starter(info.startServer(), info, isValid, 'folder1/unmapped/folder', v2.HTTPCodes.Conflict);
11+
starter(info.startServer(), info, isValid, 'folder1/folder', v2.HTTPCodes.Created, (server) => {
12+
info.req({
13+
url: 'http://localhost:' + server.options.port + '/folder1/folder',
14+
method: 'PROPFIND',
15+
headers: {
16+
Depth: 0
17+
}
18+
}, v2.HTTPCodes.MultiStatus, () => {
19+
isValid(true);
20+
})
21+
});
22+
23+
}) as Test;
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { Test } from '../Type'
2+
import { v2 } from '../../../../lib/index.js'
3+
import { starter } from './.createFiles'
4+
5+
export default ((info, isValid) =>
6+
{
7+
const server1 = info.init(3);
8+
9+
starter(info.startServer(), info, isValid, 'unmapped/folder', v2.HTTPCodes.Conflict);
10+
starter(info.startServer(), info, isValid, 'unmapped/unmapped/folder', v2.HTTPCodes.Conflict);
11+
starter(info.startServer(), info, isValid, 'unmapped', v2.HTTPCodes.Created, (server) => {
12+
info.req({
13+
url: 'http://localhost:' + server.options.port + '/unmapped',
14+
method: 'PROPFIND',
15+
headers: {
16+
Depth: 0
17+
}
18+
}, v2.HTTPCodes.MultiStatus, () => {
19+
isValid(true);
20+
})
21+
});
22+
23+
}) as Test;

0 commit comments

Comments
 (0)