fix workspace.test for windows
This commit is contained in:
parent
eacb2d85df
commit
23240b6d49
1 changed files with 50 additions and 37 deletions
|
@ -4,17 +4,30 @@
|
|||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import * as assert from 'assert';
|
||||
import * as path from 'vs/base/common/path';
|
||||
import { Workspace, toWorkspaceFolders, WorkspaceFolder } from 'vs/platform/workspace/common/workspace';
|
||||
import { URI } from 'vs/base/common/uri';
|
||||
import { IRawFileWorkspaceFolder } from 'vs/platform/workspaces/common/workspaces';
|
||||
import { isWindows } from 'vs/base/common/platform';
|
||||
|
||||
suite('Workspace', () => {
|
||||
|
||||
const workspaceConfigPath = URI.file('/src/test.code-workspace');
|
||||
const fileFolder = isWindows ? 'c:\\src' : '/src';
|
||||
const abcFolder = isWindows ? 'c:\\abc' : '/abc';
|
||||
|
||||
const testFolderUri = URI.file(path.join(fileFolder, 'test'));
|
||||
const mainFolderUri = URI.file(path.join(fileFolder, 'main'));
|
||||
const test1FolderUri = URI.file(path.join(fileFolder, 'test1'));
|
||||
const test2FolderUri = URI.file(path.join(fileFolder, 'test2'));
|
||||
const test3FolderUri = URI.file(path.join(fileFolder, 'test3'));
|
||||
const abcTest1FolderUri = URI.file(path.join(abcFolder, 'test1'));
|
||||
const abcTest3FolderUri = URI.file(path.join(abcFolder, 'test3'));
|
||||
|
||||
const workspaceConfigUri = URI.file(path.join(fileFolder, 'test.code-workspace'));
|
||||
|
||||
test('getFolder returns the folder with given uri', () => {
|
||||
const expected = new WorkspaceFolder({ uri: URI.file('/src/test'), name: '', index: 2 });
|
||||
let testObject = new Workspace('', [new WorkspaceFolder({ uri: URI.file('/src/main'), name: '', index: 0 }), expected, new WorkspaceFolder({ uri: URI.file('/src/code'), name: '', index: 2 })]);
|
||||
const expected = new WorkspaceFolder({ uri: testFolderUri, name: '', index: 2 });
|
||||
let testObject = new Workspace('', [new WorkspaceFolder({ uri: mainFolderUri, name: '', index: 0 }), expected, new WorkspaceFolder({ uri: URI.file('/src/code'), name: '', index: 2 })]);
|
||||
|
||||
const actual = testObject.getFolder(expected.uri);
|
||||
|
||||
|
@ -22,8 +35,8 @@ suite('Workspace', () => {
|
|||
});
|
||||
|
||||
test('getFolder returns the folder if the uri is sub', () => {
|
||||
const expected = new WorkspaceFolder({ uri: URI.file('/src/test'), name: '', index: 0 });
|
||||
let testObject = new Workspace('', [expected, new WorkspaceFolder({ uri: URI.file('/src/main'), name: '', index: 1 }), new WorkspaceFolder({ uri: URI.file('/src/code'), name: '', index: 2 })]);
|
||||
const expected = new WorkspaceFolder({ uri: testFolderUri, name: '', index: 0 });
|
||||
let testObject = new Workspace('', [expected, new WorkspaceFolder({ uri: mainFolderUri, name: '', index: 1 }), new WorkspaceFolder({ uri: URI.file('/src/code'), name: '', index: 2 })]);
|
||||
|
||||
const actual = testObject.getFolder(URI.file('/src/test/a'));
|
||||
|
||||
|
@ -31,8 +44,8 @@ suite('Workspace', () => {
|
|||
});
|
||||
|
||||
test('getFolder returns the closest folder if the uri is sub', () => {
|
||||
const expected = new WorkspaceFolder({ uri: URI.file('/src/test'), name: '', index: 2 });
|
||||
let testObject = new Workspace('', [new WorkspaceFolder({ uri: URI.file('/src/main'), name: '', index: 0 }), new WorkspaceFolder({ uri: URI.file('/src/code'), name: '', index: 1 }), expected]);
|
||||
const expected = new WorkspaceFolder({ uri: testFolderUri, name: '', index: 2 });
|
||||
let testObject = new Workspace('', [new WorkspaceFolder({ uri: mainFolderUri, name: '', index: 0 }), new WorkspaceFolder({ uri: URI.file('/src/code'), name: '', index: 1 }), expected]);
|
||||
|
||||
const actual = testObject.getFolder(URI.file('/src/test/a'));
|
||||
|
||||
|
@ -40,7 +53,7 @@ suite('Workspace', () => {
|
|||
});
|
||||
|
||||
test('getFolder returns null if the uri is not sub', () => {
|
||||
let testObject = new Workspace('', [new WorkspaceFolder({ uri: URI.file('/src/test'), name: '', index: 0 }), new WorkspaceFolder({ uri: URI.file('/src/code'), name: '', index: 1 })]);
|
||||
let testObject = new Workspace('', [new WorkspaceFolder({ uri: testFolderUri, name: '', index: 0 }), new WorkspaceFolder({ uri: URI.file('/src/code'), name: '', index: 1 })]);
|
||||
|
||||
const actual = testObject.getFolder(URI.file('/src/main/a'));
|
||||
|
||||
|
@ -48,146 +61,146 @@ suite('Workspace', () => {
|
|||
});
|
||||
|
||||
test('toWorkspaceFolders with single absolute folder', () => {
|
||||
const actual = toWorkspaceFolders([{ path: '/src/test' }], workspaceConfigPath);
|
||||
const actual = toWorkspaceFolders([{ path: '/src/test' }], workspaceConfigUri);
|
||||
|
||||
assert.equal(actual.length, 1);
|
||||
assert.equal(actual[0].uri.fsPath, URI.file('/src/test').fsPath);
|
||||
assert.equal(actual[0].uri.fsPath, testFolderUri.fsPath);
|
||||
assert.equal((<IRawFileWorkspaceFolder>actual[0].raw).path, '/src/test');
|
||||
assert.equal(actual[0].index, 0);
|
||||
assert.equal(actual[0].name, 'test');
|
||||
});
|
||||
|
||||
test('toWorkspaceFolders with single relative folder', () => {
|
||||
const actual = toWorkspaceFolders([{ path: './test' }], workspaceConfigPath);
|
||||
const actual = toWorkspaceFolders([{ path: './test' }], workspaceConfigUri);
|
||||
|
||||
assert.equal(actual.length, 1);
|
||||
assert.equal(actual[0].uri.fsPath, URI.file('/src/test').fsPath);
|
||||
assert.equal(actual[0].uri.fsPath, testFolderUri.fsPath);
|
||||
assert.equal((<IRawFileWorkspaceFolder>actual[0].raw).path, './test');
|
||||
assert.equal(actual[0].index, 0);
|
||||
assert.equal(actual[0].name, 'test');
|
||||
});
|
||||
|
||||
test('toWorkspaceFolders with single absolute folder with name', () => {
|
||||
const actual = toWorkspaceFolders([{ path: '/src/test', name: 'hello' }], workspaceConfigPath);
|
||||
const actual = toWorkspaceFolders([{ path: '/src/test', name: 'hello' }], workspaceConfigUri);
|
||||
|
||||
assert.equal(actual.length, 1);
|
||||
|
||||
assert.equal(actual[0].uri.fsPath, URI.file('/src/test').fsPath);
|
||||
assert.equal(actual[0].uri.fsPath, testFolderUri.fsPath);
|
||||
assert.equal((<IRawFileWorkspaceFolder>actual[0].raw).path, '/src/test');
|
||||
assert.equal(actual[0].index, 0);
|
||||
assert.equal(actual[0].name, 'hello');
|
||||
});
|
||||
|
||||
test('toWorkspaceFolders with multiple unique absolute folders', () => {
|
||||
const actual = toWorkspaceFolders([{ path: '/src/test2' }, { path: '/src/test3' }, { path: '/src/test1' }], workspaceConfigPath);
|
||||
const actual = toWorkspaceFolders([{ path: '/src/test2' }, { path: '/src/test3' }, { path: '/src/test1' }], workspaceConfigUri);
|
||||
|
||||
assert.equal(actual.length, 3);
|
||||
assert.equal(actual[0].uri.fsPath, URI.file('/src/test2').fsPath);
|
||||
assert.equal(actual[0].uri.fsPath, test2FolderUri.fsPath);
|
||||
assert.equal((<IRawFileWorkspaceFolder>actual[0].raw).path, '/src/test2');
|
||||
assert.equal(actual[0].index, 0);
|
||||
assert.equal(actual[0].name, 'test2');
|
||||
|
||||
assert.equal(actual[1].uri.fsPath, URI.file('/src/test3').fsPath);
|
||||
assert.equal(actual[1].uri.fsPath, test3FolderUri.fsPath);
|
||||
assert.equal((<IRawFileWorkspaceFolder>actual[1].raw).path, '/src/test3');
|
||||
assert.equal(actual[1].index, 1);
|
||||
assert.equal(actual[1].name, 'test3');
|
||||
|
||||
assert.equal(actual[2].uri.fsPath, URI.file('/src/test1').fsPath);
|
||||
assert.equal(actual[2].uri.fsPath, test1FolderUri.fsPath);
|
||||
assert.equal((<IRawFileWorkspaceFolder>actual[2].raw).path, '/src/test1');
|
||||
assert.equal(actual[2].index, 2);
|
||||
assert.equal(actual[2].name, 'test1');
|
||||
});
|
||||
|
||||
test('toWorkspaceFolders with multiple unique absolute folders with names', () => {
|
||||
const actual = toWorkspaceFolders([{ path: '/src/test2' }, { path: '/src/test3', name: 'noName' }, { path: '/src/test1' }], workspaceConfigPath);
|
||||
const actual = toWorkspaceFolders([{ path: '/src/test2' }, { path: '/src/test3', name: 'noName' }, { path: '/src/test1' }], workspaceConfigUri);
|
||||
|
||||
assert.equal(actual.length, 3);
|
||||
assert.equal(actual[0].uri.fsPath, URI.file('/src/test2').fsPath);
|
||||
assert.equal(actual[0].uri.fsPath, test2FolderUri.fsPath);
|
||||
assert.equal((<IRawFileWorkspaceFolder>actual[0].raw).path, '/src/test2');
|
||||
assert.equal(actual[0].index, 0);
|
||||
assert.equal(actual[0].name, 'test2');
|
||||
|
||||
assert.equal(actual[1].uri.fsPath, URI.file('/src/test3').fsPath);
|
||||
assert.equal(actual[1].uri.fsPath, test3FolderUri.fsPath);
|
||||
assert.equal((<IRawFileWorkspaceFolder>actual[1].raw).path, '/src/test3');
|
||||
assert.equal(actual[1].index, 1);
|
||||
assert.equal(actual[1].name, 'noName');
|
||||
|
||||
assert.equal(actual[2].uri.fsPath, URI.file('/src/test1').fsPath);
|
||||
assert.equal(actual[2].uri.fsPath, test1FolderUri.fsPath);
|
||||
assert.equal((<IRawFileWorkspaceFolder>actual[2].raw).path, '/src/test1');
|
||||
assert.equal(actual[2].index, 2);
|
||||
assert.equal(actual[2].name, 'test1');
|
||||
});
|
||||
|
||||
test('toWorkspaceFolders with multiple unique absolute and relative folders', () => {
|
||||
const actual = toWorkspaceFolders([{ path: '/src/test2' }, { path: '/abc/test3', name: 'noName' }, { path: './test1' }], workspaceConfigPath);
|
||||
const actual = toWorkspaceFolders([{ path: '/src/test2' }, { path: '/abc/test3', name: 'noName' }, { path: './test1' }], workspaceConfigUri);
|
||||
|
||||
assert.equal(actual.length, 3);
|
||||
assert.equal(actual[0].uri.fsPath, URI.file('/src/test2').fsPath);
|
||||
assert.equal(actual[0].uri.fsPath, test2FolderUri.fsPath);
|
||||
assert.equal((<IRawFileWorkspaceFolder>actual[0].raw).path, '/src/test2');
|
||||
assert.equal(actual[0].index, 0);
|
||||
assert.equal(actual[0].name, 'test2');
|
||||
|
||||
assert.equal(actual[1].uri.fsPath, URI.file('/abc/test3').fsPath);
|
||||
assert.equal(actual[1].uri.fsPath, abcTest3FolderUri.fsPath);
|
||||
assert.equal((<IRawFileWorkspaceFolder>actual[1].raw).path, '/abc/test3');
|
||||
assert.equal(actual[1].index, 1);
|
||||
assert.equal(actual[1].name, 'noName');
|
||||
|
||||
assert.equal(actual[2].uri.fsPath, URI.file('/src/test1').fsPath);
|
||||
assert.equal(actual[2].uri.fsPath, test1FolderUri.fsPath);
|
||||
assert.equal((<IRawFileWorkspaceFolder>actual[2].raw).path, './test1');
|
||||
assert.equal(actual[2].index, 2);
|
||||
assert.equal(actual[2].name, 'test1');
|
||||
});
|
||||
|
||||
test('toWorkspaceFolders with multiple absolute folders with duplicates', () => {
|
||||
const actual = toWorkspaceFolders([{ path: '/src/test2' }, { path: '/src/test2', name: 'noName' }, { path: '/src/test1' }], workspaceConfigPath);
|
||||
const actual = toWorkspaceFolders([{ path: '/src/test2' }, { path: '/src/test2', name: 'noName' }, { path: '/src/test1' }], workspaceConfigUri);
|
||||
|
||||
assert.equal(actual.length, 2);
|
||||
assert.equal(actual[0].uri.fsPath, URI.file('/src/test2').fsPath);
|
||||
assert.equal(actual[0].uri.fsPath, test2FolderUri.fsPath);
|
||||
assert.equal((<IRawFileWorkspaceFolder>actual[0].raw).path, '/src/test2');
|
||||
assert.equal(actual[0].index, 0);
|
||||
assert.equal(actual[0].name, 'test2');
|
||||
|
||||
assert.equal(actual[1].uri.fsPath, URI.file('/src/test1').fsPath);
|
||||
assert.equal(actual[1].uri.fsPath, test1FolderUri.fsPath);
|
||||
assert.equal((<IRawFileWorkspaceFolder>actual[1].raw).path, '/src/test1');
|
||||
assert.equal(actual[1].index, 1);
|
||||
assert.equal(actual[1].name, 'test1');
|
||||
});
|
||||
|
||||
test('toWorkspaceFolders with multiple absolute and relative folders with duplicates', () => {
|
||||
const actual = toWorkspaceFolders([{ path: '/src/test2' }, { path: '/src/test3', name: 'noName' }, { path: './test3' }, { path: '/abc/test1' }], workspaceConfigPath);
|
||||
const actual = toWorkspaceFolders([{ path: '/src/test2' }, { path: '/src/test3', name: 'noName' }, { path: './test3' }, { path: '/abc/test1' }], workspaceConfigUri);
|
||||
|
||||
assert.equal(actual.length, 3);
|
||||
assert.equal(actual[0].uri.fsPath, URI.file('/src/test2').fsPath);
|
||||
assert.equal(actual[0].uri.fsPath, test2FolderUri.fsPath);
|
||||
assert.equal((<IRawFileWorkspaceFolder>actual[0].raw).path, '/src/test2');
|
||||
assert.equal(actual[0].index, 0);
|
||||
assert.equal(actual[0].name, 'test2');
|
||||
|
||||
assert.equal(actual[1].uri.fsPath, URI.file('/src/test3').fsPath);
|
||||
assert.equal(actual[1].uri.fsPath, test3FolderUri.fsPath);
|
||||
assert.equal((<IRawFileWorkspaceFolder>actual[1].raw).path, '/src/test3');
|
||||
assert.equal(actual[1].index, 1);
|
||||
assert.equal(actual[1].name, 'noName');
|
||||
|
||||
assert.equal(actual[2].uri.fsPath, URI.file('/abc/test1').fsPath);
|
||||
assert.equal(actual[2].uri.fsPath, abcTest1FolderUri.fsPath);
|
||||
assert.equal((<IRawFileWorkspaceFolder>actual[2].raw).path, '/abc/test1');
|
||||
assert.equal(actual[2].index, 2);
|
||||
assert.equal(actual[2].name, 'test1');
|
||||
});
|
||||
|
||||
test('toWorkspaceFolders with multiple absolute and relative folders with invalid paths', () => {
|
||||
const actual = toWorkspaceFolders([{ path: '/src/test2' }, { path: '', name: 'noName' }, { path: './test3' }, { path: '/abc/test1' }], workspaceConfigPath);
|
||||
const actual = toWorkspaceFolders([{ path: '/src/test2' }, { path: '', name: 'noName' }, { path: './test3' }, { path: '/abc/test1' }], workspaceConfigUri);
|
||||
|
||||
assert.equal(actual.length, 3);
|
||||
assert.equal(actual[0].uri.fsPath, URI.file('/src/test2').fsPath);
|
||||
assert.equal(actual[0].uri.fsPath, test2FolderUri.fsPath);
|
||||
assert.equal((<IRawFileWorkspaceFolder>actual[0].raw).path, '/src/test2');
|
||||
assert.equal(actual[0].index, 0);
|
||||
assert.equal(actual[0].name, 'test2');
|
||||
|
||||
assert.equal(actual[1].uri.fsPath, URI.file('/src/test3').fsPath);
|
||||
assert.equal(actual[1].uri.fsPath, test3FolderUri.fsPath);
|
||||
assert.equal((<IRawFileWorkspaceFolder>actual[1].raw).path, './test3');
|
||||
assert.equal(actual[1].index, 1);
|
||||
assert.equal(actual[1].name, 'test3');
|
||||
|
||||
assert.equal(actual[2].uri.fsPath, URI.file('/abc/test1').fsPath);
|
||||
assert.equal(actual[2].uri.fsPath, abcTest1FolderUri.fsPath);
|
||||
assert.equal((<IRawFileWorkspaceFolder>actual[2].raw).path, '/abc/test1');
|
||||
assert.equal(actual[2].index, 2);
|
||||
assert.equal(actual[2].name, 'test1');
|
||||
|
|
Loading…
Reference in a new issue