mirror of
https://github.com/microsoft/vscode.git
synced 2025-12-20 02:08:47 +00:00
adopt ensureNoDisposablesAreLeakedInTestSuite (#193803)
#190503 adopt ensureNoDisposablesAreLeakedInTestSuite
This commit is contained in:
committed by
GitHub
parent
2a691f77e4
commit
e88e309ab5
@@ -446,8 +446,8 @@ class FileServiceBasedRemoteUserConfiguration extends Disposable {
|
||||
protected readonly _onDidChangeConfiguration: Emitter<ConfigurationModel> = this._register(new Emitter<ConfigurationModel>());
|
||||
readonly onDidChangeConfiguration: Event<ConfigurationModel> = this._onDidChangeConfiguration.event;
|
||||
|
||||
private fileWatcherDisposable: IDisposable = Disposable.None;
|
||||
private directoryWatcherDisposable: IDisposable = Disposable.None;
|
||||
private readonly fileWatcherDisposable = this._register(new MutableDisposable());
|
||||
private readonly directoryWatcherDisposable = this._register(new MutableDisposable());
|
||||
|
||||
constructor(
|
||||
private readonly configurationResource: URI,
|
||||
@@ -469,22 +469,20 @@ class FileServiceBasedRemoteUserConfiguration extends Disposable {
|
||||
}
|
||||
|
||||
private watchResource(): void {
|
||||
this.fileWatcherDisposable = this.fileService.watch(this.configurationResource);
|
||||
this.fileWatcherDisposable.value = this.fileService.watch(this.configurationResource);
|
||||
}
|
||||
|
||||
private stopWatchingResource(): void {
|
||||
this.fileWatcherDisposable.dispose();
|
||||
this.fileWatcherDisposable = Disposable.None;
|
||||
this.fileWatcherDisposable.value = undefined;
|
||||
}
|
||||
|
||||
private watchDirectory(): void {
|
||||
const directory = this.uriIdentityService.extUri.dirname(this.configurationResource);
|
||||
this.directoryWatcherDisposable = this.fileService.watch(directory);
|
||||
this.directoryWatcherDisposable.value = this.fileService.watch(directory);
|
||||
}
|
||||
|
||||
private stopWatchingDirectory(): void {
|
||||
this.directoryWatcherDisposable.dispose();
|
||||
this.directoryWatcherDisposable = Disposable.None;
|
||||
this.directoryWatcherDisposable.value = undefined;
|
||||
}
|
||||
|
||||
async initialize(): Promise<ConfigurationModel> {
|
||||
|
||||
@@ -33,7 +33,7 @@ import { IFileService } from 'vs/platform/files/common/files';
|
||||
import { KeybindingsEditingService, IKeybindingEditingService } from 'vs/workbench/services/keybinding/common/keybindingEditing';
|
||||
import { FileUserDataProvider } from 'vs/platform/userData/common/fileUserDataProvider';
|
||||
import { UriIdentityService } from 'vs/platform/uriIdentity/common/uriIdentityService';
|
||||
import { DisposableStore, toDisposable } from 'vs/base/common/lifecycle';
|
||||
import { toDisposable } from 'vs/base/common/lifecycle';
|
||||
import { InMemoryFileSystemProvider } from 'vs/platform/files/common/inMemoryFilesystemProvider';
|
||||
import { joinPath } from 'vs/base/common/resources';
|
||||
import { VSBuffer } from 'vs/base/common/buffer';
|
||||
@@ -46,6 +46,7 @@ import { runWithFakedTimers } from 'vs/base/test/common/timeTravelScheduler';
|
||||
import { UserDataProfileService } from 'vs/workbench/services/userDataProfile/common/userDataProfileService';
|
||||
import { IUserDataProfileService } from 'vs/workbench/services/userDataProfile/common/userDataProfile';
|
||||
import { IBrowserWorkbenchEnvironmentService } from 'vs/workbench/services/environment/browser/environmentService';
|
||||
import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils';
|
||||
|
||||
const ROOT = URI.file('tests').with({ scheme: 'vscode-tests' });
|
||||
|
||||
@@ -65,8 +66,6 @@ suite('ConfigurationEditing', () => {
|
||||
let workspaceService: WorkspaceService;
|
||||
let testObject: ConfigurationEditing;
|
||||
|
||||
const disposables = new DisposableStore();
|
||||
|
||||
suiteSetup(() => {
|
||||
const configurationRegistry = Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Configuration);
|
||||
configurationRegistry.registerConfiguration({
|
||||
@@ -97,6 +96,8 @@ suite('ConfigurationEditing', () => {
|
||||
});
|
||||
});
|
||||
|
||||
const disposables = ensureNoDisposablesAreLeakedInTestSuite();
|
||||
|
||||
setup(async () => {
|
||||
disposables.add(toDisposable(() => sinon.restore()));
|
||||
const logService = new NullLogService();
|
||||
@@ -111,14 +112,14 @@ suite('ConfigurationEditing', () => {
|
||||
environmentService = TestEnvironmentService;
|
||||
environmentService.policyFile = joinPath(workspaceFolder, 'policies.json');
|
||||
instantiationService.stub(IEnvironmentService, environmentService);
|
||||
const uriIdentityService = new UriIdentityService(fileService);
|
||||
const userDataProfilesService = instantiationService.stub(IUserDataProfilesService, new UserDataProfilesService(environmentService, fileService, uriIdentityService, logService));
|
||||
userDataProfileService = new UserDataProfileService(userDataProfilesService.defaultProfile);
|
||||
const uriIdentityService = disposables.add(new UriIdentityService(fileService));
|
||||
const userDataProfilesService = instantiationService.stub(IUserDataProfilesService, disposables.add(new UserDataProfilesService(environmentService, fileService, uriIdentityService, logService)));
|
||||
userDataProfileService = disposables.add(new UserDataProfileService(userDataProfilesService.defaultProfile));
|
||||
const remoteAgentService = disposables.add(instantiationService.createInstance(RemoteAgentService));
|
||||
disposables.add(fileService.registerProvider(Schemas.vscodeUserData, disposables.add(new FileUserDataProvider(ROOT.scheme, fileSystemProvider, Schemas.vscodeUserData, userDataProfilesService, uriIdentityService, logService))));
|
||||
instantiationService.stub(IFileService, fileService);
|
||||
instantiationService.stub(IRemoteAgentService, remoteAgentService);
|
||||
workspaceService = disposables.add(new WorkspaceService({ configurationCache: new ConfigurationCache() }, environmentService, userDataProfileService, userDataProfilesService, fileService, remoteAgentService, uriIdentityService, new NullLogService(), new FilePolicyService(environmentService.policyFile, fileService, logService)));
|
||||
workspaceService = disposables.add(new WorkspaceService({ configurationCache: new ConfigurationCache() }, environmentService, userDataProfileService, userDataProfilesService, fileService, remoteAgentService, uriIdentityService, new NullLogService(), disposables.add(new FilePolicyService(environmentService.policyFile, fileService, logService))));
|
||||
await workspaceService.initialize({
|
||||
id: hash(workspaceFolder.toString()).toString(16),
|
||||
uri: workspaceFolder
|
||||
@@ -134,8 +135,6 @@ suite('ConfigurationEditing', () => {
|
||||
testObject = instantiationService.createInstance(ConfigurationEditing, null);
|
||||
});
|
||||
|
||||
teardown(() => disposables.clear());
|
||||
|
||||
test('errors cases - invalid key', async () => {
|
||||
try {
|
||||
await testObject.writeConfiguration(EditableConfigurationTarget.WORKSPACE, { key: 'unknown.key', value: 'value' }, { donotNotifyError: true });
|
||||
|
||||
@@ -35,7 +35,6 @@ import { IKeybindingEditingService, KeybindingsEditingService } from 'vs/workben
|
||||
import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService';
|
||||
import { timeout } from 'vs/base/common/async';
|
||||
import { VSBuffer } from 'vs/base/common/buffer';
|
||||
import { DisposableStore } from 'vs/base/common/lifecycle';
|
||||
import { Event } from 'vs/base/common/event';
|
||||
import { UriIdentityService } from 'vs/platform/uriIdentity/common/uriIdentityService';
|
||||
import { InMemoryFileSystemProvider } from 'vs/platform/files/common/inMemoryFilesystemProvider';
|
||||
@@ -52,6 +51,7 @@ import { UserDataProfileService } from 'vs/workbench/services/userDataProfile/co
|
||||
import { IUserDataProfileService } from 'vs/workbench/services/userDataProfile/common/userDataProfile';
|
||||
import { TasksSchemaProperties } from 'vs/workbench/contrib/tasks/common/tasks';
|
||||
import { RemoteSocketFactoryService } from 'vs/platform/remote/common/remoteSocketFactoryService';
|
||||
import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils';
|
||||
|
||||
function convertToWorkspacePayload(folder: URI): ISingleFolderWorkspaceIdentifier {
|
||||
return {
|
||||
@@ -74,28 +74,41 @@ suite('WorkspaceContextService - Folder', () => {
|
||||
const folderName = 'Folder A';
|
||||
let folder: URI;
|
||||
let testObject: WorkspaceService;
|
||||
const disposables = new DisposableStore();
|
||||
const disposables = ensureNoDisposablesAreLeakedInTestSuite();
|
||||
|
||||
setup(async () => {
|
||||
const logService = new NullLogService();
|
||||
const fileService = disposables.add(new FileService(logService));
|
||||
const fileSystemProvider = disposables.add(new InMemoryFileSystemProvider());
|
||||
fileService.registerProvider(ROOT.scheme, fileSystemProvider);
|
||||
disposables.add(fileService.registerProvider(ROOT.scheme, fileSystemProvider));
|
||||
|
||||
folder = joinPath(ROOT, folderName);
|
||||
await fileService.createFolder(folder);
|
||||
|
||||
const environmentService = TestEnvironmentService;
|
||||
const uriIdentityService = new UriIdentityService(fileService);
|
||||
const userDataProfilesService = new UserDataProfilesService(environmentService, fileService, uriIdentityService, logService);
|
||||
fileService.registerProvider(Schemas.vscodeUserData, disposables.add(new FileUserDataProvider(ROOT.scheme, fileSystemProvider, Schemas.vscodeUserData, userDataProfilesService, uriIdentityService, new NullLogService())));
|
||||
const userDataProfileService = new UserDataProfileService(userDataProfilesService.defaultProfile);
|
||||
testObject = disposables.add(new WorkspaceService({ configurationCache: new ConfigurationCache() }, environmentService, userDataProfileService, userDataProfilesService, fileService, new RemoteAgentService(new RemoteSocketFactoryService(), userDataProfileService, environmentService, TestProductService, new RemoteAuthorityResolverService(false, undefined, undefined, TestProductService, logService), new SignService(TestProductService), new NullLogService()), uriIdentityService, new NullLogService(), new NullPolicyService()));
|
||||
const uriIdentityService = disposables.add(new UriIdentityService(fileService));
|
||||
const userDataProfilesService = disposables.add(new UserDataProfilesService(environmentService, fileService, uriIdentityService, logService));
|
||||
disposables.add(fileService.registerProvider(Schemas.vscodeUserData, disposables.add(new FileUserDataProvider(ROOT.scheme, fileSystemProvider, Schemas.vscodeUserData, userDataProfilesService, uriIdentityService, new NullLogService()))));
|
||||
const userDataProfileService = disposables.add(new UserDataProfileService(userDataProfilesService.defaultProfile));
|
||||
testObject = disposables.add(new WorkspaceService(
|
||||
{ configurationCache: new ConfigurationCache() },
|
||||
environmentService,
|
||||
userDataProfileService,
|
||||
userDataProfilesService,
|
||||
fileService,
|
||||
disposables.add(new RemoteAgentService(
|
||||
new RemoteSocketFactoryService(),
|
||||
userDataProfileService,
|
||||
environmentService,
|
||||
TestProductService,
|
||||
disposables.add(new RemoteAuthorityResolverService(false, undefined, undefined, TestProductService, logService)),
|
||||
new SignService(TestProductService), new NullLogService())),
|
||||
uriIdentityService,
|
||||
new NullLogService(),
|
||||
new NullPolicyService()));
|
||||
await (<WorkspaceService>testObject).initialize(convertToWorkspacePayload(folder));
|
||||
});
|
||||
|
||||
teardown(() => disposables.clear());
|
||||
|
||||
test('getWorkspace()', () => {
|
||||
const actual = testObject.getWorkspace();
|
||||
|
||||
@@ -123,17 +136,26 @@ suite('WorkspaceContextService - Folder', () => {
|
||||
const logService = new NullLogService();
|
||||
const fileService = disposables.add(new FileService(logService));
|
||||
const fileSystemProvider = disposables.add(new InMemoryFileSystemProvider());
|
||||
fileService.registerProvider(ROOT.scheme, fileSystemProvider);
|
||||
disposables.add(fileService.registerProvider(ROOT.scheme, fileSystemProvider));
|
||||
|
||||
const folder = joinPath(ROOT, folderName).with({ query: 'myquery=1' });
|
||||
await fileService.createFolder(folder);
|
||||
|
||||
const environmentService = TestEnvironmentService;
|
||||
const uriIdentityService = new UriIdentityService(fileService);
|
||||
const userDataProfilesService = new UserDataProfilesService(environmentService, fileService, uriIdentityService, logService);
|
||||
fileService.registerProvider(Schemas.vscodeUserData, disposables.add(new FileUserDataProvider(ROOT.scheme, fileSystemProvider, Schemas.vscodeUserData, userDataProfilesService, uriIdentityService, new NullLogService())));
|
||||
const userDataProfileService = new UserDataProfileService(userDataProfilesService.defaultProfile);
|
||||
const testObject = disposables.add(new WorkspaceService({ configurationCache: new ConfigurationCache() }, environmentService, userDataProfileService, userDataProfilesService, fileService, new RemoteAgentService(new RemoteSocketFactoryService(), userDataProfileService, environmentService, TestProductService, new RemoteAuthorityResolverService(false, undefined, undefined, TestProductService, logService), new SignService(TestProductService), new NullLogService()), uriIdentityService, new NullLogService(), new NullPolicyService()));
|
||||
const uriIdentityService = disposables.add(new UriIdentityService(fileService));
|
||||
const userDataProfilesService = disposables.add(new UserDataProfilesService(environmentService, fileService, uriIdentityService, logService));
|
||||
disposables.add(fileService.registerProvider(Schemas.vscodeUserData, disposables.add(new FileUserDataProvider(ROOT.scheme, fileSystemProvider, Schemas.vscodeUserData, userDataProfilesService, uriIdentityService, new NullLogService()))));
|
||||
const userDataProfileService = disposables.add(new UserDataProfileService(userDataProfilesService.defaultProfile));
|
||||
const testObject = disposables.add(new WorkspaceService(
|
||||
{ configurationCache: new ConfigurationCache() },
|
||||
environmentService,
|
||||
userDataProfileService,
|
||||
userDataProfilesService,
|
||||
fileService,
|
||||
disposables.add(new RemoteAgentService(new RemoteSocketFactoryService(), userDataProfileService, environmentService, TestProductService, disposables.add(new RemoteAuthorityResolverService(false, undefined, undefined, TestProductService, logService)), new SignService(TestProductService), new NullLogService())),
|
||||
uriIdentityService,
|
||||
new NullLogService(),
|
||||
new NullPolicyService()));
|
||||
await (<WorkspaceService>testObject).initialize(convertToWorkspacePayload(folder));
|
||||
|
||||
const actual = testObject.getWorkspaceFolder(joinPath(folder, 'a'));
|
||||
@@ -146,20 +168,28 @@ suite('WorkspaceContextService - Folder', () => {
|
||||
const logService = new NullLogService();
|
||||
const fileService = disposables.add(new FileService(logService));
|
||||
const fileSystemProvider = disposables.add(new InMemoryFileSystemProvider());
|
||||
fileService.registerProvider(ROOT.scheme, fileSystemProvider);
|
||||
disposables.add(fileService.registerProvider(ROOT.scheme, fileSystemProvider));
|
||||
|
||||
const folder = joinPath(ROOT, folderName);
|
||||
await fileService.createFolder(folder);
|
||||
|
||||
const environmentService = TestEnvironmentService;
|
||||
const uriIdentityService = new UriIdentityService(fileService);
|
||||
const userDataProfilesService = new UserDataProfilesService(environmentService, fileService, uriIdentityService, logService);
|
||||
fileService.registerProvider(Schemas.vscodeUserData, disposables.add(new FileUserDataProvider(ROOT.scheme, fileSystemProvider, Schemas.vscodeUserData, userDataProfilesService, uriIdentityService, new NullLogService())));
|
||||
const userDataProfileService = new UserDataProfileService(userDataProfilesService.defaultProfile);
|
||||
const testObject = disposables.add(new WorkspaceService({ configurationCache: new ConfigurationCache() }, environmentService, userDataProfileService, userDataProfilesService, fileService, new RemoteAgentService(new RemoteSocketFactoryService(), userDataProfileService, environmentService, TestProductService, new RemoteAuthorityResolverService(false, undefined, undefined, TestProductService, logService), new SignService(TestProductService), new NullLogService()), uriIdentityService, new NullLogService(), new NullPolicyService()));
|
||||
const uriIdentityService = disposables.add(new UriIdentityService(fileService));
|
||||
const userDataProfilesService = disposables.add(new UserDataProfilesService(environmentService, fileService, uriIdentityService, logService));
|
||||
disposables.add(fileService.registerProvider(Schemas.vscodeUserData, disposables.add(new FileUserDataProvider(ROOT.scheme, fileSystemProvider, Schemas.vscodeUserData, userDataProfilesService, uriIdentityService, new NullLogService()))));
|
||||
const userDataProfileService = disposables.add(new UserDataProfileService(userDataProfilesService.defaultProfile));
|
||||
const testObject = disposables.add(new WorkspaceService(
|
||||
{ configurationCache: new ConfigurationCache() },
|
||||
environmentService,
|
||||
userDataProfileService,
|
||||
userDataProfilesService,
|
||||
fileService,
|
||||
disposables.add(new RemoteAgentService(new RemoteSocketFactoryService(), userDataProfileService, environmentService, TestProductService, disposables.add(new RemoteAuthorityResolverService(false, undefined, undefined, TestProductService, logService)), new SignService(TestProductService), new NullLogService())),
|
||||
uriIdentityService,
|
||||
new NullLogService(),
|
||||
new NullPolicyService()));
|
||||
await (<WorkspaceService>testObject).initialize(convertToWorkspacePayload(folder));
|
||||
|
||||
|
||||
const actual = testObject.getWorkspaceFolder(joinPath(folder, 'a').with({ query: 'myquery=1' }));
|
||||
|
||||
assert.strictEqual(actual, testObject.getWorkspace().folders[0]);
|
||||
@@ -179,13 +209,13 @@ suite('WorkspaceContextService - Folder', () => {
|
||||
suite('WorkspaceContextService - Workspace', () => {
|
||||
|
||||
let testObject: WorkspaceService;
|
||||
const disposables = new DisposableStore();
|
||||
const disposables = ensureNoDisposablesAreLeakedInTestSuite();
|
||||
|
||||
setup(async () => {
|
||||
const logService = new NullLogService();
|
||||
const fileService = disposables.add(new FileService(logService));
|
||||
const fileSystemProvider = disposables.add(new InMemoryFileSystemProvider());
|
||||
fileService.registerProvider(ROOT.scheme, fileSystemProvider);
|
||||
disposables.add(fileService.registerProvider(ROOT.scheme, fileSystemProvider));
|
||||
|
||||
const appSettingsHome = joinPath(ROOT, 'user');
|
||||
const folderA = joinPath(ROOT, 'a');
|
||||
@@ -200,12 +230,16 @@ suite('WorkspaceContextService - Workspace', () => {
|
||||
|
||||
const instantiationService = <TestInstantiationService>workbenchInstantiationService(undefined, disposables);
|
||||
const environmentService = TestEnvironmentService;
|
||||
const remoteAgentService = disposables.add(instantiationService.createInstance(RemoteAgentService));
|
||||
const remoteAgentService = disposables.add(disposables.add(instantiationService.createInstance(RemoteAgentService)));
|
||||
instantiationService.stub(IRemoteAgentService, remoteAgentService);
|
||||
const uriIdentityService = new UriIdentityService(fileService);
|
||||
const userDataProfilesService = instantiationService.stub(IUserDataProfilesService, new UserDataProfilesService(environmentService, fileService, uriIdentityService, logService));
|
||||
fileService.registerProvider(Schemas.vscodeUserData, disposables.add(new FileUserDataProvider(ROOT.scheme, fileSystemProvider, Schemas.vscodeUserData, userDataProfilesService, uriIdentityService, new NullLogService())));
|
||||
testObject = disposables.add(new WorkspaceService({ configurationCache: new ConfigurationCache() }, environmentService, new UserDataProfileService(userDataProfilesService.defaultProfile), userDataProfilesService, fileService, remoteAgentService, uriIdentityService, new NullLogService(), new NullPolicyService()));
|
||||
const uriIdentityService = disposables.add(new UriIdentityService(fileService));
|
||||
const userDataProfilesService = instantiationService.stub(IUserDataProfilesService, disposables.add(new UserDataProfilesService(environmentService, fileService, uriIdentityService, logService)));
|
||||
disposables.add(fileService.registerProvider(Schemas.vscodeUserData, disposables.add(new FileUserDataProvider(ROOT.scheme, fileSystemProvider, Schemas.vscodeUserData, userDataProfilesService, uriIdentityService, new NullLogService()))));
|
||||
testObject = disposables.add(new WorkspaceService(
|
||||
{ configurationCache: new ConfigurationCache() },
|
||||
environmentService,
|
||||
disposables.add(new UserDataProfileService(userDataProfilesService.defaultProfile)),
|
||||
userDataProfilesService, fileService, remoteAgentService, uriIdentityService, new NullLogService(), new NullPolicyService()));
|
||||
|
||||
instantiationService.stub(IWorkspaceContextService, testObject);
|
||||
instantiationService.stub(IConfigurationService, testObject);
|
||||
@@ -215,8 +249,6 @@ suite('WorkspaceContextService - Workspace', () => {
|
||||
testObject.acquireInstantiationService(instantiationService);
|
||||
});
|
||||
|
||||
teardown(() => disposables.clear());
|
||||
|
||||
test('workspace folders', () => {
|
||||
const actual = testObject.getWorkspace().folders;
|
||||
|
||||
@@ -239,13 +271,13 @@ suite('WorkspaceContextService - Workspace', () => {
|
||||
suite('WorkspaceContextService - Workspace Editing', () => {
|
||||
|
||||
let testObject: WorkspaceService, fileService: IFileService;
|
||||
const disposables = new DisposableStore();
|
||||
const disposables = ensureNoDisposablesAreLeakedInTestSuite();
|
||||
|
||||
setup(async () => {
|
||||
const logService = new NullLogService();
|
||||
fileService = disposables.add(new FileService(logService));
|
||||
const fileSystemProvider = disposables.add(new InMemoryFileSystemProvider());
|
||||
fileService.registerProvider(ROOT.scheme, fileSystemProvider);
|
||||
disposables.add(fileService.registerProvider(ROOT.scheme, fileSystemProvider));
|
||||
|
||||
const appSettingsHome = joinPath(ROOT, 'user');
|
||||
const folderA = joinPath(ROOT, 'a');
|
||||
@@ -260,12 +292,16 @@ suite('WorkspaceContextService - Workspace Editing', () => {
|
||||
|
||||
const instantiationService = <TestInstantiationService>workbenchInstantiationService(undefined, disposables);
|
||||
const environmentService = TestEnvironmentService;
|
||||
const remoteAgentService = instantiationService.createInstance(RemoteAgentService);
|
||||
const remoteAgentService = disposables.add(instantiationService.createInstance(RemoteAgentService));
|
||||
instantiationService.stub(IRemoteAgentService, remoteAgentService);
|
||||
const uriIdentityService = new UriIdentityService(fileService);
|
||||
const userDataProfilesService = instantiationService.stub(IUserDataProfilesService, new UserDataProfilesService(environmentService, fileService, uriIdentityService, logService));
|
||||
fileService.registerProvider(Schemas.vscodeUserData, disposables.add(new FileUserDataProvider(ROOT.scheme, fileSystemProvider, Schemas.vscodeUserData, userDataProfilesService, uriIdentityService, new NullLogService())));
|
||||
testObject = disposables.add(new WorkspaceService({ configurationCache: new ConfigurationCache() }, environmentService, new UserDataProfileService(userDataProfilesService.defaultProfile), userDataProfilesService, fileService, remoteAgentService, uriIdentityService, new NullLogService(), new NullPolicyService()));
|
||||
const uriIdentityService = disposables.add(new UriIdentityService(fileService));
|
||||
const userDataProfilesService = instantiationService.stub(IUserDataProfilesService, disposables.add(new UserDataProfilesService(environmentService, fileService, uriIdentityService, logService)));
|
||||
disposables.add(fileService.registerProvider(Schemas.vscodeUserData, disposables.add(new FileUserDataProvider(ROOT.scheme, fileSystemProvider, Schemas.vscodeUserData, userDataProfilesService, uriIdentityService, new NullLogService()))));
|
||||
testObject = disposables.add(new WorkspaceService(
|
||||
{ configurationCache: new ConfigurationCache() },
|
||||
environmentService,
|
||||
disposables.add(new UserDataProfileService(userDataProfilesService.defaultProfile)),
|
||||
userDataProfilesService, fileService, remoteAgentService, uriIdentityService, new NullLogService(), new NullPolicyService()));
|
||||
|
||||
instantiationService.stub(IFileService, fileService);
|
||||
instantiationService.stub(IWorkspaceContextService, testObject);
|
||||
@@ -279,8 +315,6 @@ suite('WorkspaceContextService - Workspace Editing', () => {
|
||||
testObject.acquireInstantiationService(instantiationService);
|
||||
});
|
||||
|
||||
teardown(() => disposables.clear());
|
||||
|
||||
test('add folders', () => runWithFakedTimers<void>({ useFakeTimers: true }, async () => {
|
||||
await testObject.addFolders([{ uri: joinPath(ROOT, 'd') }, { uri: joinPath(ROOT, 'c') }]);
|
||||
const actual = testObject.getWorkspace().folders;
|
||||
@@ -329,8 +363,8 @@ suite('WorkspaceContextService - Workspace Editing', () => {
|
||||
|
||||
test('add folders triggers change event', () => runWithFakedTimers<void>({ useFakeTimers: true }, async () => {
|
||||
const target = sinon.spy();
|
||||
testObject.onWillChangeWorkspaceFolders(target);
|
||||
testObject.onDidChangeWorkspaceFolders(target);
|
||||
disposables.add(testObject.onWillChangeWorkspaceFolders(target));
|
||||
disposables.add(testObject.onDidChangeWorkspaceFolders(target));
|
||||
|
||||
const addedFolders = [{ uri: joinPath(ROOT, 'd') }, { uri: joinPath(ROOT, 'c') }];
|
||||
await testObject.addFolders(addedFolders);
|
||||
@@ -352,8 +386,8 @@ suite('WorkspaceContextService - Workspace Editing', () => {
|
||||
|
||||
test('remove folders triggers change event', () => runWithFakedTimers<void>({ useFakeTimers: true }, async () => {
|
||||
const target = sinon.spy();
|
||||
testObject.onWillChangeWorkspaceFolders(target);
|
||||
testObject.onDidChangeWorkspaceFolders(target);
|
||||
disposables.add(testObject.onWillChangeWorkspaceFolders(target));
|
||||
disposables.add(testObject.onDidChangeWorkspaceFolders(target));
|
||||
const removedFolder = testObject.getWorkspace().folders[0];
|
||||
await testObject.removeFolders([removedFolder.uri]);
|
||||
|
||||
@@ -369,14 +403,14 @@ suite('WorkspaceContextService - Workspace Editing', () => {
|
||||
await testObject.removeFolders([folders[0].uri]);
|
||||
|
||||
const promise = new Promise<void>((resolve, reject) => {
|
||||
testObject.onDidChangeWorkspaceFolders(actual => {
|
||||
disposables.add(testObject.onDidChangeWorkspaceFolders(actual => {
|
||||
try {
|
||||
assert.deepStrictEqual(actual.added.map(r => r.uri.toString()), [folders[0].uri.toString()]);
|
||||
resolve();
|
||||
} catch (error) {
|
||||
reject(error);
|
||||
}
|
||||
});
|
||||
}));
|
||||
});
|
||||
|
||||
const workspace = { folders: [{ path: folders[0].uri.path }, { path: folders[1].uri.path }] };
|
||||
@@ -386,8 +420,8 @@ suite('WorkspaceContextService - Workspace Editing', () => {
|
||||
|
||||
test('update folders (remove last and add to end)', () => runWithFakedTimers<void>({ useFakeTimers: true }, async () => {
|
||||
const target = sinon.spy();
|
||||
testObject.onWillChangeWorkspaceFolders(target);
|
||||
testObject.onDidChangeWorkspaceFolders(target);
|
||||
disposables.add(testObject.onWillChangeWorkspaceFolders(target));
|
||||
disposables.add(testObject.onDidChangeWorkspaceFolders(target));
|
||||
const addedFolders = [{ uri: joinPath(ROOT, 'd') }, { uri: joinPath(ROOT, 'c') }];
|
||||
const removedFolders = [testObject.getWorkspace().folders[1]].map(f => f.uri);
|
||||
await testObject.updateFolders(addedFolders, removedFolders);
|
||||
@@ -401,8 +435,8 @@ suite('WorkspaceContextService - Workspace Editing', () => {
|
||||
|
||||
test('update folders (rename first via add and remove)', () => runWithFakedTimers<void>({ useFakeTimers: true }, async () => {
|
||||
const target = sinon.spy();
|
||||
testObject.onWillChangeWorkspaceFolders(target);
|
||||
testObject.onDidChangeWorkspaceFolders(target);
|
||||
disposables.add(testObject.onWillChangeWorkspaceFolders(target));
|
||||
disposables.add(testObject.onDidChangeWorkspaceFolders(target));
|
||||
const addedFolders = [{ uri: joinPath(ROOT, 'a'), name: 'The Folder' }];
|
||||
const removedFolders = [testObject.getWorkspace().folders[0]].map(f => f.uri);
|
||||
await testObject.updateFolders(addedFolders, removedFolders, 0);
|
||||
@@ -416,8 +450,8 @@ suite('WorkspaceContextService - Workspace Editing', () => {
|
||||
|
||||
test('update folders (remove first and add to end)', () => runWithFakedTimers<void>({ useFakeTimers: true }, async () => {
|
||||
const target = sinon.spy();
|
||||
testObject.onWillChangeWorkspaceFolders(target);
|
||||
testObject.onDidChangeWorkspaceFolders(target);
|
||||
disposables.add(testObject.onWillChangeWorkspaceFolders(target));
|
||||
disposables.add(testObject.onDidChangeWorkspaceFolders(target));
|
||||
const addedFolders = [{ uri: joinPath(ROOT, 'd') }, { uri: joinPath(ROOT, 'c') }];
|
||||
const removedFolders = [testObject.getWorkspace().folders[0]].map(f => f.uri);
|
||||
const changedFolders = [testObject.getWorkspace().folders[1]].map(f => f.uri);
|
||||
@@ -432,8 +466,8 @@ suite('WorkspaceContextService - Workspace Editing', () => {
|
||||
|
||||
test('reorder folders trigger change event', () => runWithFakedTimers<void>({ useFakeTimers: true }, async () => {
|
||||
const target = sinon.spy();
|
||||
testObject.onWillChangeWorkspaceFolders(target);
|
||||
testObject.onDidChangeWorkspaceFolders(target);
|
||||
disposables.add(testObject.onWillChangeWorkspaceFolders(target));
|
||||
disposables.add(testObject.onDidChangeWorkspaceFolders(target));
|
||||
const workspace = { folders: [{ path: testObject.getWorkspace().folders[1].uri.path }, { path: testObject.getWorkspace().folders[0].uri.path }] };
|
||||
await fileService.writeFile(testObject.getWorkspace().configuration!, VSBuffer.fromString(JSON.stringify(workspace, null, '\t')));
|
||||
await testObject.reloadConfiguration();
|
||||
@@ -447,8 +481,8 @@ suite('WorkspaceContextService - Workspace Editing', () => {
|
||||
|
||||
test('rename folders trigger change event', () => runWithFakedTimers<void>({ useFakeTimers: true }, async () => {
|
||||
const target = sinon.spy();
|
||||
testObject.onWillChangeWorkspaceFolders(target);
|
||||
testObject.onDidChangeWorkspaceFolders(target);
|
||||
disposables.add(testObject.onWillChangeWorkspaceFolders(target));
|
||||
disposables.add(testObject.onDidChangeWorkspaceFolders(target));
|
||||
const workspace = { folders: [{ path: testObject.getWorkspace().folders[0].uri.path, name: '1' }, { path: testObject.getWorkspace().folders[1].uri.path }] };
|
||||
fileService.writeFile(testObject.getWorkspace().configuration!, VSBuffer.fromString(JSON.stringify(workspace, null, '\t')));
|
||||
await testObject.reloadConfiguration();
|
||||
@@ -466,7 +500,7 @@ suite('WorkspaceService - Initialization', () => {
|
||||
|
||||
let configResource: URI, testObject: WorkspaceService, fileService: IFileService, environmentService: BrowserWorkbenchEnvironmentService, userDataProfileService: IUserDataProfileService;
|
||||
const configurationRegistry = Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Configuration);
|
||||
const disposables = new DisposableStore();
|
||||
const disposables = ensureNoDisposablesAreLeakedInTestSuite();
|
||||
|
||||
suiteSetup(() => {
|
||||
configurationRegistry.registerConfiguration({
|
||||
@@ -491,7 +525,7 @@ suite('WorkspaceService - Initialization', () => {
|
||||
const logService = new NullLogService();
|
||||
fileService = disposables.add(new FileService(logService));
|
||||
const fileSystemProvider = disposables.add(new InMemoryFileSystemProvider());
|
||||
fileService.registerProvider(ROOT.scheme, fileSystemProvider);
|
||||
disposables.add(fileService.registerProvider(ROOT.scheme, fileSystemProvider));
|
||||
|
||||
const appSettingsHome = joinPath(ROOT, 'user');
|
||||
const folderA = joinPath(ROOT, 'a');
|
||||
@@ -506,37 +540,39 @@ suite('WorkspaceService - Initialization', () => {
|
||||
|
||||
const instantiationService = <TestInstantiationService>workbenchInstantiationService(undefined, disposables);
|
||||
environmentService = TestEnvironmentService;
|
||||
const remoteAgentService = instantiationService.createInstance(RemoteAgentService);
|
||||
const remoteAgentService = disposables.add(instantiationService.createInstance(RemoteAgentService));
|
||||
instantiationService.stub(IRemoteAgentService, remoteAgentService);
|
||||
const uriIdentityService = new UriIdentityService(fileService);
|
||||
const userDataProfilesService = instantiationService.stub(IUserDataProfilesService, new UserDataProfilesService(environmentService, fileService, uriIdentityService, logService));
|
||||
fileService.registerProvider(Schemas.vscodeUserData, disposables.add(new FileUserDataProvider(ROOT.scheme, fileSystemProvider, Schemas.vscodeUserData, userDataProfilesService, uriIdentityService, new NullLogService())));
|
||||
userDataProfileService = instantiationService.stub(IUserDataProfileService, new UserDataProfileService(userDataProfilesService.defaultProfile));
|
||||
testObject = disposables.add(new WorkspaceService({ configurationCache: new ConfigurationCache() }, environmentService, userDataProfileService, userDataProfilesService, fileService, remoteAgentService, uriIdentityService, new NullLogService(), new NullPolicyService()));
|
||||
const uriIdentityService = disposables.add(new UriIdentityService(fileService));
|
||||
const userDataProfilesService = instantiationService.stub(IUserDataProfilesService, disposables.add(new UserDataProfilesService(environmentService, fileService, uriIdentityService, logService)));
|
||||
disposables.add(fileService.registerProvider(Schemas.vscodeUserData, disposables.add(new FileUserDataProvider(ROOT.scheme, fileSystemProvider, Schemas.vscodeUserData, userDataProfilesService, uriIdentityService, new NullLogService()))));
|
||||
userDataProfileService = instantiationService.stub(IUserDataProfileService, disposables.add(new UserDataProfileService(userDataProfilesService.defaultProfile)));
|
||||
testObject = disposables.add(new WorkspaceService(
|
||||
{ configurationCache: new ConfigurationCache() },
|
||||
environmentService,
|
||||
userDataProfileService,
|
||||
userDataProfilesService, fileService, remoteAgentService, uriIdentityService, new NullLogService(), new NullPolicyService()));
|
||||
instantiationService.stub(IFileService, fileService);
|
||||
instantiationService.stub(IWorkspaceContextService, testObject);
|
||||
instantiationService.stub(IConfigurationService, testObject);
|
||||
instantiationService.stub(IEnvironmentService, environmentService);
|
||||
|
||||
await testObject.initialize({ id: '' });
|
||||
instantiationService.stub(ITextFileService, instantiationService.createInstance(TestTextFileService));
|
||||
instantiationService.stub(ITextModelService, <ITextModelService>instantiationService.createInstance(TextModelResolverService));
|
||||
instantiationService.stub(ITextFileService, disposables.add(instantiationService.createInstance(TestTextFileService)));
|
||||
instantiationService.stub(ITextModelService, <ITextModelService>disposables.add(instantiationService.createInstance(TextModelResolverService)));
|
||||
testObject.acquireInstantiationService(instantiationService);
|
||||
});
|
||||
|
||||
teardown(() => disposables.clear());
|
||||
|
||||
(isMacintosh ? test.skip : test)('initialize a folder workspace from an empty workspace with no configuration changes', () => runWithFakedTimers<void>({ useFakeTimers: true }, async () => {
|
||||
|
||||
await fileService.writeFile(userDataProfileService.currentProfile.settingsResource, VSBuffer.fromString('{ "initialization.testSetting1": "userValue" }'));
|
||||
|
||||
await testObject.reloadConfiguration();
|
||||
const target = sinon.spy();
|
||||
testObject.onDidChangeWorkbenchState(target);
|
||||
testObject.onDidChangeWorkspaceName(target);
|
||||
testObject.onWillChangeWorkspaceFolders(target);
|
||||
testObject.onDidChangeWorkspaceFolders(target);
|
||||
testObject.onDidChangeConfiguration(target);
|
||||
disposables.add(testObject.onDidChangeWorkbenchState(target));
|
||||
disposables.add(testObject.onDidChangeWorkspaceName(target));
|
||||
disposables.add(testObject.onWillChangeWorkspaceFolders(target));
|
||||
disposables.add(testObject.onDidChangeWorkspaceFolders(target));
|
||||
disposables.add(testObject.onDidChangeConfiguration(target));
|
||||
|
||||
const folder = joinPath(ROOT, 'a');
|
||||
await testObject.initialize(convertToWorkspacePayload(folder));
|
||||
@@ -557,11 +593,11 @@ suite('WorkspaceService - Initialization', () => {
|
||||
|
||||
await testObject.reloadConfiguration();
|
||||
const target = sinon.spy();
|
||||
testObject.onDidChangeWorkbenchState(target);
|
||||
testObject.onDidChangeWorkspaceName(target);
|
||||
testObject.onWillChangeWorkspaceFolders(target);
|
||||
testObject.onDidChangeWorkspaceFolders(target);
|
||||
testObject.onDidChangeConfiguration(target);
|
||||
disposables.add(testObject.onDidChangeWorkbenchState(target));
|
||||
disposables.add(testObject.onDidChangeWorkspaceName(target));
|
||||
disposables.add(testObject.onWillChangeWorkspaceFolders(target));
|
||||
disposables.add(testObject.onDidChangeWorkspaceFolders(target));
|
||||
disposables.add(testObject.onDidChangeConfiguration(target));
|
||||
|
||||
const folder = joinPath(ROOT, 'a');
|
||||
await fileService.writeFile(joinPath(folder, '.vscode', 'settings.json'), VSBuffer.fromString('{ "initialization.testSetting1": "workspaceValue" }'));
|
||||
@@ -584,11 +620,11 @@ suite('WorkspaceService - Initialization', () => {
|
||||
|
||||
await testObject.reloadConfiguration();
|
||||
const target = sinon.spy();
|
||||
testObject.onDidChangeWorkbenchState(target);
|
||||
testObject.onDidChangeWorkspaceName(target);
|
||||
testObject.onWillChangeWorkspaceFolders(target);
|
||||
testObject.onDidChangeWorkspaceFolders(target);
|
||||
testObject.onDidChangeConfiguration(target);
|
||||
disposables.add(testObject.onDidChangeWorkbenchState(target));
|
||||
disposables.add(testObject.onDidChangeWorkspaceName(target));
|
||||
disposables.add(testObject.onWillChangeWorkspaceFolders(target));
|
||||
disposables.add(testObject.onDidChangeWorkspaceFolders(target));
|
||||
disposables.add(testObject.onDidChangeConfiguration(target));
|
||||
|
||||
await testObject.initialize(getWorkspaceIdentifier(configResource));
|
||||
|
||||
@@ -607,11 +643,11 @@ suite('WorkspaceService - Initialization', () => {
|
||||
|
||||
await testObject.reloadConfiguration();
|
||||
const target = sinon.spy();
|
||||
testObject.onDidChangeWorkbenchState(target);
|
||||
testObject.onDidChangeWorkspaceName(target);
|
||||
testObject.onWillChangeWorkspaceFolders(target);
|
||||
testObject.onDidChangeWorkspaceFolders(target);
|
||||
testObject.onDidChangeConfiguration(target);
|
||||
disposables.add(testObject.onDidChangeWorkbenchState(target));
|
||||
disposables.add(testObject.onDidChangeWorkspaceName(target));
|
||||
disposables.add(testObject.onWillChangeWorkspaceFolders(target));
|
||||
disposables.add(testObject.onDidChangeWorkspaceFolders(target));
|
||||
disposables.add(testObject.onDidChangeConfiguration(target));
|
||||
|
||||
await fileService.writeFile(joinPath(ROOT, 'a', '.vscode', 'settings.json'), VSBuffer.fromString('{ "initialization.testSetting1": "workspaceValue1" }'));
|
||||
await fileService.writeFile(joinPath(ROOT, 'b', '.vscode', 'settings.json'), VSBuffer.fromString('{ "initialization.testSetting2": "workspaceValue2" }'));
|
||||
@@ -633,11 +669,11 @@ suite('WorkspaceService - Initialization', () => {
|
||||
await fileService.writeFile(userDataProfileService.currentProfile.settingsResource, VSBuffer.fromString('{ "initialization.testSetting1": "userValue" }'));
|
||||
await testObject.reloadConfiguration();
|
||||
const target = sinon.spy();
|
||||
testObject.onDidChangeWorkbenchState(target);
|
||||
testObject.onDidChangeWorkspaceName(target);
|
||||
testObject.onWillChangeWorkspaceFolders(target);
|
||||
testObject.onDidChangeWorkspaceFolders(target);
|
||||
testObject.onDidChangeConfiguration(target);
|
||||
disposables.add(testObject.onDidChangeWorkbenchState(target));
|
||||
disposables.add(testObject.onDidChangeWorkspaceName(target));
|
||||
disposables.add(testObject.onWillChangeWorkspaceFolders(target));
|
||||
disposables.add(testObject.onDidChangeWorkspaceFolders(target));
|
||||
disposables.add(testObject.onDidChangeConfiguration(target));
|
||||
|
||||
await testObject.initialize(convertToWorkspacePayload(joinPath(ROOT, 'b')));
|
||||
|
||||
@@ -653,11 +689,11 @@ suite('WorkspaceService - Initialization', () => {
|
||||
|
||||
await testObject.initialize(convertToWorkspacePayload(joinPath(ROOT, 'a')));
|
||||
const target = sinon.spy();
|
||||
testObject.onDidChangeWorkbenchState(target);
|
||||
testObject.onDidChangeWorkspaceName(target);
|
||||
testObject.onWillChangeWorkspaceFolders(target);
|
||||
testObject.onDidChangeWorkspaceFolders(target);
|
||||
testObject.onDidChangeConfiguration(target);
|
||||
disposables.add(testObject.onDidChangeWorkbenchState(target));
|
||||
disposables.add(testObject.onDidChangeWorkspaceName(target));
|
||||
disposables.add(testObject.onWillChangeWorkspaceFolders(target));
|
||||
disposables.add(testObject.onDidChangeWorkspaceFolders(target));
|
||||
disposables.add(testObject.onDidChangeConfiguration(target));
|
||||
|
||||
await fileService.writeFile(joinPath(ROOT, 'b', '.vscode', 'settings.json'), VSBuffer.fromString('{ "initialization.testSetting1": "workspaceValue2" }'));
|
||||
await testObject.initialize(convertToWorkspacePayload(joinPath(ROOT, 'b')));
|
||||
@@ -674,11 +710,11 @@ suite('WorkspaceService - Initialization', () => {
|
||||
(isMacintosh ? test.skip : test)('initialize a multi folder workspace from a folder workspacce triggers change events in the right order', () => runWithFakedTimers<void>({ useFakeTimers: true }, async () => {
|
||||
await testObject.initialize(convertToWorkspacePayload(joinPath(ROOT, 'a')));
|
||||
const target = sinon.spy();
|
||||
testObject.onDidChangeWorkbenchState(target);
|
||||
testObject.onDidChangeWorkspaceName(target);
|
||||
testObject.onWillChangeWorkspaceFolders(target);
|
||||
testObject.onDidChangeWorkspaceFolders(target);
|
||||
testObject.onDidChangeConfiguration(target);
|
||||
disposables.add(testObject.onDidChangeWorkbenchState(target));
|
||||
disposables.add(testObject.onDidChangeWorkspaceName(target));
|
||||
disposables.add(testObject.onWillChangeWorkspaceFolders(target));
|
||||
disposables.add(testObject.onDidChangeWorkspaceFolders(target));
|
||||
disposables.add(testObject.onDidChangeConfiguration(target));
|
||||
|
||||
await fileService.writeFile(joinPath(ROOT, 'a', '.vscode', 'settings.json'), VSBuffer.fromString('{ "initialization.testSetting1": "workspaceValue2" }'));
|
||||
await testObject.initialize(getWorkspaceIdentifier(configResource));
|
||||
@@ -698,7 +734,7 @@ suite('WorkspaceConfigurationService - Folder', () => {
|
||||
|
||||
let testObject: WorkspaceService, workspaceService: WorkspaceService, fileService: IFileService, environmentService: IBrowserWorkbenchEnvironmentService, userDataProfileService: IUserDataProfileService, instantiationService: TestInstantiationService;
|
||||
const configurationRegistry = Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Configuration);
|
||||
const disposables: DisposableStore = new DisposableStore();
|
||||
const disposables = ensureNoDisposablesAreLeakedInTestSuite();
|
||||
|
||||
suiteSetup(() => {
|
||||
configurationRegistry.registerConfiguration({
|
||||
@@ -759,7 +795,7 @@ suite('WorkspaceConfigurationService - Folder', () => {
|
||||
const logService = new NullLogService();
|
||||
fileService = disposables.add(new FileService(logService));
|
||||
const fileSystemProvider = disposables.add(new InMemoryFileSystemProvider());
|
||||
fileService.registerProvider(ROOT.scheme, fileSystemProvider);
|
||||
disposables.add(fileService.registerProvider(ROOT.scheme, fileSystemProvider));
|
||||
|
||||
const folder = joinPath(ROOT, 'a');
|
||||
await fileService.createFolder(folder);
|
||||
@@ -767,27 +803,29 @@ suite('WorkspaceConfigurationService - Folder', () => {
|
||||
instantiationService = <TestInstantiationService>workbenchInstantiationService(undefined, disposables);
|
||||
environmentService = TestEnvironmentService;
|
||||
environmentService.policyFile = joinPath(folder, 'policies.json');
|
||||
const remoteAgentService = instantiationService.createInstance(RemoteAgentService);
|
||||
const remoteAgentService = disposables.add(instantiationService.createInstance(RemoteAgentService));
|
||||
instantiationService.stub(IRemoteAgentService, remoteAgentService);
|
||||
const uriIdentityService = new UriIdentityService(fileService);
|
||||
const userDataProfilesService = instantiationService.stub(IUserDataProfilesService, new UserDataProfilesService(environmentService, fileService, uriIdentityService, logService));
|
||||
fileService.registerProvider(Schemas.vscodeUserData, disposables.add(new FileUserDataProvider(ROOT.scheme, fileSystemProvider, Schemas.vscodeUserData, userDataProfilesService, uriIdentityService, new NullLogService())));
|
||||
userDataProfileService = instantiationService.stub(IUserDataProfileService, new UserDataProfileService(userDataProfilesService.defaultProfile));
|
||||
workspaceService = testObject = disposables.add(new WorkspaceService({ configurationCache: new ConfigurationCache() }, environmentService, userDataProfileService, userDataProfilesService, fileService, remoteAgentService, uriIdentityService, new NullLogService(), new FilePolicyService(environmentService.policyFile, fileService, logService)));
|
||||
const uriIdentityService = disposables.add(new UriIdentityService(fileService));
|
||||
const userDataProfilesService = instantiationService.stub(IUserDataProfilesService, disposables.add(new UserDataProfilesService(environmentService, fileService, uriIdentityService, logService)));
|
||||
disposables.add(fileService.registerProvider(Schemas.vscodeUserData, disposables.add(new FileUserDataProvider(ROOT.scheme, fileSystemProvider, Schemas.vscodeUserData, userDataProfilesService, uriIdentityService, new NullLogService()))));
|
||||
userDataProfileService = instantiationService.stub(IUserDataProfileService, disposables.add(new UserDataProfileService(userDataProfilesService.defaultProfile)));
|
||||
workspaceService = testObject = disposables.add(new WorkspaceService(
|
||||
{ configurationCache: new ConfigurationCache() },
|
||||
environmentService, userDataProfileService, userDataProfilesService,
|
||||
fileService, remoteAgentService, uriIdentityService, new NullLogService(),
|
||||
disposables.add(new FilePolicyService(environmentService.policyFile, fileService, logService))));
|
||||
instantiationService.stub(IFileService, fileService);
|
||||
instantiationService.stub(IWorkspaceContextService, testObject);
|
||||
instantiationService.stub(IConfigurationService, testObject);
|
||||
instantiationService.stub(IEnvironmentService, environmentService);
|
||||
|
||||
await workspaceService.initialize(convertToWorkspacePayload(folder));
|
||||
instantiationService.stub(IKeybindingEditingService, instantiationService.createInstance(KeybindingsEditingService));
|
||||
instantiationService.stub(ITextFileService, instantiationService.createInstance(TestTextFileService));
|
||||
instantiationService.stub(ITextModelService, <ITextModelService>instantiationService.createInstance(TextModelResolverService));
|
||||
instantiationService.stub(IKeybindingEditingService, disposables.add(instantiationService.createInstance(KeybindingsEditingService)));
|
||||
instantiationService.stub(ITextFileService, disposables.add(instantiationService.createInstance(TestTextFileService)));
|
||||
instantiationService.stub(ITextModelService, <ITextModelService>disposables.add(instantiationService.createInstance(TextModelResolverService)));
|
||||
workspaceService.acquireInstantiationService(instantiationService);
|
||||
});
|
||||
|
||||
teardown(() => disposables.clear());
|
||||
|
||||
test('defaults', () => {
|
||||
assert.deepStrictEqual(testObject.getValue('configurationService'), { 'folder': { 'applicationSetting': 'isSet', 'machineSetting': 'isSet', 'machineOverridableSetting': 'isSet', 'testSetting': 'isSet', 'languageSetting': 'isSet', 'restrictedSetting': 'isSet', 'policySetting': 'isSet' } });
|
||||
});
|
||||
@@ -1017,7 +1055,7 @@ suite('WorkspaceConfigurationService - Folder', () => {
|
||||
test('reload configuration emits events after global configuraiton changes', () => runWithFakedTimers<void>({ useFakeTimers: true }, async () => {
|
||||
await fileService.writeFile(userDataProfileService.currentProfile.settingsResource, VSBuffer.fromString('{ "testworkbench.editor.tabs": true }'));
|
||||
const target = sinon.spy();
|
||||
testObject.onDidChangeConfiguration(target);
|
||||
disposables.add(testObject.onDidChangeConfiguration(target));
|
||||
await testObject.reloadConfiguration();
|
||||
assert.ok(target.called);
|
||||
}));
|
||||
@@ -1025,7 +1063,7 @@ suite('WorkspaceConfigurationService - Folder', () => {
|
||||
test('reload configuration emits events after workspace configuraiton changes', () => runWithFakedTimers<void>({ useFakeTimers: true }, async () => {
|
||||
await fileService.writeFile(joinPath(workspaceService.getWorkspace().folders[0].uri, '.vscode', 'settings.json'), VSBuffer.fromString('{ "configurationService.folder.testSetting": "workspaceValue" }'));
|
||||
const target = sinon.spy();
|
||||
testObject.onDidChangeConfiguration(target);
|
||||
disposables.add(testObject.onDidChangeConfiguration(target));
|
||||
await testObject.reloadConfiguration();
|
||||
assert.ok(target.called);
|
||||
}));
|
||||
@@ -1035,7 +1073,7 @@ suite('WorkspaceConfigurationService - Folder', () => {
|
||||
await fileService.writeFile(joinPath(workspaceService.getWorkspace().folders[0].uri, '.vscode', 'settings.json'), VSBuffer.fromString('{ "configurationService.folder.testSetting": "workspaceValue" }'));
|
||||
await testObject.reloadConfiguration();
|
||||
const target = sinon.spy();
|
||||
testObject.onDidChangeConfiguration(() => { target(); });
|
||||
disposables.add(testObject.onDidChangeConfiguration(() => { target(); }));
|
||||
await testObject.reloadConfiguration();
|
||||
assert.ok(!target.called);
|
||||
}));
|
||||
@@ -1297,14 +1335,14 @@ suite('WorkspaceConfigurationService - Folder', () => {
|
||||
|
||||
test('update user configuration should trigger change event before promise is resolve', () => {
|
||||
const target = sinon.spy();
|
||||
testObject.onDidChangeConfiguration(target);
|
||||
disposables.add(testObject.onDidChangeConfiguration(target));
|
||||
return testObject.updateValue('configurationService.folder.testSetting', 'value', ConfigurationTarget.USER)
|
||||
.then(() => assert.ok(target.called));
|
||||
});
|
||||
|
||||
test('update workspace configuration should trigger change event before promise is resolve', () => {
|
||||
const target = sinon.spy();
|
||||
testObject.onDidChangeConfiguration(target);
|
||||
disposables.add(testObject.onDidChangeConfiguration(target));
|
||||
return testObject.updateValue('configurationService.folder.testSetting', 'value', ConfigurationTarget.WORKSPACE)
|
||||
.then(() => assert.ok(target.called));
|
||||
});
|
||||
@@ -1316,7 +1354,7 @@ suite('WorkspaceConfigurationService - Folder', () => {
|
||||
|
||||
test('update memory configuration should trigger change event before promise is resolve', () => {
|
||||
const target = sinon.spy();
|
||||
testObject.onDidChangeConfiguration(target);
|
||||
disposables.add(testObject.onDidChangeConfiguration(target));
|
||||
return testObject.updateValue('configurationService.folder.testSetting', 'memoryValue', ConfigurationTarget.MEMORY)
|
||||
.then(() => assert.ok(target.called));
|
||||
});
|
||||
@@ -1349,14 +1387,14 @@ suite('WorkspaceConfigurationService - Folder', () => {
|
||||
|
||||
test('update task configuration should trigger change event before promise is resolve', () => {
|
||||
const target = sinon.spy();
|
||||
testObject.onDidChangeConfiguration(target);
|
||||
disposables.add(testObject.onDidChangeConfiguration(target));
|
||||
return testObject.updateValue('tasks', { 'version': '1.0.0', tasks: [{ 'taskName': 'myTask' }] }, ConfigurationTarget.WORKSPACE)
|
||||
.then(() => assert.ok(target.called));
|
||||
});
|
||||
|
||||
test('no change event when there are no global tasks', () => runWithFakedTimers<void>({ useFakeTimers: true }, async () => {
|
||||
const target = sinon.spy();
|
||||
testObject.onDidChangeConfiguration(target);
|
||||
disposables.add(testObject.onDidChangeConfiguration(target));
|
||||
await timeout(5);
|
||||
assert.ok(target.notCalled);
|
||||
}));
|
||||
@@ -1522,7 +1560,7 @@ suite('WorkspaceConfigurationService - Profiles', () => {
|
||||
|
||||
let testObject: WorkspaceService, workspaceService: WorkspaceService, fileService: IFileService, environmentService: IBrowserWorkbenchEnvironmentService, userDataProfileService: IUserDataProfileService, instantiationService: TestInstantiationService;
|
||||
const configurationRegistry = Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Configuration);
|
||||
const disposables: DisposableStore = new DisposableStore();
|
||||
const disposables = ensureNoDisposablesAreLeakedInTestSuite();
|
||||
|
||||
suiteSetup(() => {
|
||||
configurationRegistry.registerConfiguration({
|
||||
@@ -1560,7 +1598,7 @@ suite('WorkspaceConfigurationService - Profiles', () => {
|
||||
const logService = new NullLogService();
|
||||
fileService = disposables.add(new FileService(logService));
|
||||
const fileSystemProvider = disposables.add(new InMemoryFileSystemProvider());
|
||||
fileService.registerProvider(ROOT.scheme, fileSystemProvider);
|
||||
disposables.add(fileService.registerProvider(ROOT.scheme, fileSystemProvider));
|
||||
|
||||
const folder = joinPath(ROOT, 'a');
|
||||
await fileService.createFolder(folder);
|
||||
@@ -1568,13 +1606,17 @@ suite('WorkspaceConfigurationService - Profiles', () => {
|
||||
instantiationService = <TestInstantiationService>workbenchInstantiationService(undefined, disposables);
|
||||
environmentService = TestEnvironmentService;
|
||||
environmentService.policyFile = joinPath(folder, 'policies.json');
|
||||
const remoteAgentService = instantiationService.createInstance(RemoteAgentService);
|
||||
const remoteAgentService = disposables.add(instantiationService.createInstance(RemoteAgentService));
|
||||
instantiationService.stub(IRemoteAgentService, remoteAgentService);
|
||||
const uriIdentityService = new UriIdentityService(fileService);
|
||||
const userDataProfilesService = instantiationService.stub(IUserDataProfilesService, new UserDataProfilesService(environmentService, fileService, uriIdentityService, logService));
|
||||
fileService.registerProvider(Schemas.vscodeUserData, disposables.add(new FileUserDataProvider(ROOT.scheme, fileSystemProvider, Schemas.vscodeUserData, userDataProfilesService, uriIdentityService, new NullLogService())));
|
||||
userDataProfileService = instantiationService.stub(IUserDataProfileService, new UserDataProfileService(toUserDataProfile('custom', 'custom', joinPath(environmentService.userRoamingDataHome, 'profiles', 'temp'), joinPath(environmentService.cacheHome, 'profilesCache'))));
|
||||
workspaceService = testObject = disposables.add(new WorkspaceService({ configurationCache: new ConfigurationCache() }, environmentService, userDataProfileService, userDataProfilesService, fileService, remoteAgentService, uriIdentityService, new NullLogService(), new FilePolicyService(environmentService.policyFile, fileService, logService)));
|
||||
const uriIdentityService = disposables.add(new UriIdentityService(fileService));
|
||||
const userDataProfilesService = instantiationService.stub(IUserDataProfilesService, disposables.add(new UserDataProfilesService(environmentService, fileService, uriIdentityService, logService)));
|
||||
disposables.add(fileService.registerProvider(Schemas.vscodeUserData, disposables.add(new FileUserDataProvider(ROOT.scheme, fileSystemProvider, Schemas.vscodeUserData, userDataProfilesService, uriIdentityService, new NullLogService()))));
|
||||
userDataProfileService = instantiationService.stub(IUserDataProfileService, disposables.add(new UserDataProfileService(toUserDataProfile('custom', 'custom', joinPath(environmentService.userRoamingDataHome, 'profiles', 'temp'), joinPath(environmentService.cacheHome, 'profilesCache')))));
|
||||
workspaceService = testObject = disposables.add(new WorkspaceService(
|
||||
{ configurationCache: new ConfigurationCache() },
|
||||
environmentService, userDataProfileService, userDataProfilesService,
|
||||
fileService, remoteAgentService, uriIdentityService, new NullLogService(),
|
||||
disposables.add(new FilePolicyService(environmentService.policyFile, fileService, logService))));
|
||||
instantiationService.stub(IFileService, fileService);
|
||||
instantiationService.stub(IWorkspaceContextService, testObject);
|
||||
instantiationService.stub(IConfigurationService, testObject);
|
||||
@@ -1583,14 +1625,12 @@ suite('WorkspaceConfigurationService - Profiles', () => {
|
||||
await fileService.writeFile(userDataProfilesService.defaultProfile.settingsResource, VSBuffer.fromString('{ "configurationService.profiles.applicationSetting2": "applicationValue", "configurationService.profiles.testSetting2": "userValue" }'));
|
||||
await fileService.writeFile(userDataProfileService.currentProfile.settingsResource, VSBuffer.fromString('{ "configurationService.profiles.applicationSetting2": "profileValue", "configurationService.profiles.testSetting2": "profileValue" }'));
|
||||
await workspaceService.initialize(convertToWorkspacePayload(folder));
|
||||
instantiationService.stub(IKeybindingEditingService, instantiationService.createInstance(KeybindingsEditingService));
|
||||
instantiationService.stub(ITextFileService, instantiationService.createInstance(TestTextFileService));
|
||||
instantiationService.stub(ITextModelService, <ITextModelService>instantiationService.createInstance(TextModelResolverService));
|
||||
instantiationService.stub(IKeybindingEditingService, disposables.add(instantiationService.createInstance(KeybindingsEditingService)));
|
||||
instantiationService.stub(ITextFileService, disposables.add(instantiationService.createInstance(TestTextFileService)));
|
||||
instantiationService.stub(ITextModelService, <ITextModelService>disposables.add(instantiationService.createInstance(TextModelResolverService)));
|
||||
workspaceService.acquireInstantiationService(instantiationService);
|
||||
});
|
||||
|
||||
teardown(() => disposables.clear());
|
||||
|
||||
test('initialize', () => runWithFakedTimers<void>({ useFakeTimers: true }, async () => {
|
||||
assert.strictEqual(testObject.getValue('configurationService.profiles.applicationSetting2'), 'applicationValue');
|
||||
assert.strictEqual(testObject.getValue('configurationService.profiles.testSetting2'), 'profileValue');
|
||||
@@ -1849,7 +1889,7 @@ suite('WorkspaceConfigurationService-Multiroot', () => {
|
||||
|
||||
let workspaceContextService: IWorkspaceContextService, jsonEditingServce: IJSONEditingService, testObject: WorkspaceService, fileService: IFileService, environmentService: BrowserWorkbenchEnvironmentService, userDataProfileService: IUserDataProfileService;
|
||||
const configurationRegistry = Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Configuration);
|
||||
const disposables = new DisposableStore();
|
||||
const disposables = ensureNoDisposablesAreLeakedInTestSuite();
|
||||
|
||||
suiteSetup(() => {
|
||||
configurationRegistry.registerConfiguration({
|
||||
@@ -1905,7 +1945,7 @@ suite('WorkspaceConfigurationService-Multiroot', () => {
|
||||
const logService = new NullLogService();
|
||||
fileService = disposables.add(new FileService(logService));
|
||||
const fileSystemProvider = disposables.add(new InMemoryFileSystemProvider());
|
||||
fileService.registerProvider(ROOT.scheme, fileSystemProvider);
|
||||
disposables.add(fileService.registerProvider(ROOT.scheme, fileSystemProvider));
|
||||
|
||||
const appSettingsHome = joinPath(ROOT, 'user');
|
||||
const folderA = joinPath(ROOT, 'a');
|
||||
@@ -1920,13 +1960,16 @@ suite('WorkspaceConfigurationService-Multiroot', () => {
|
||||
|
||||
const instantiationService = <TestInstantiationService>workbenchInstantiationService(undefined, disposables);
|
||||
environmentService = TestEnvironmentService;
|
||||
const remoteAgentService = instantiationService.createInstance(RemoteAgentService);
|
||||
const remoteAgentService = disposables.add(instantiationService.createInstance(RemoteAgentService));
|
||||
instantiationService.stub(IRemoteAgentService, remoteAgentService);
|
||||
const uriIdentityService = new UriIdentityService(fileService);
|
||||
const userDataProfilesService = instantiationService.stub(IUserDataProfilesService, new UserDataProfilesService(environmentService, fileService, uriIdentityService, logService));
|
||||
fileService.registerProvider(Schemas.vscodeUserData, disposables.add(new FileUserDataProvider(ROOT.scheme, fileSystemProvider, Schemas.vscodeUserData, userDataProfilesService, uriIdentityService, new NullLogService())));
|
||||
userDataProfileService = instantiationService.stub(IUserDataProfileService, new UserDataProfileService(userDataProfilesService.defaultProfile));
|
||||
const workspaceService = disposables.add(new WorkspaceService({ configurationCache: new ConfigurationCache() }, environmentService, userDataProfileService, userDataProfilesService, fileService, remoteAgentService, uriIdentityService, new NullLogService(), new NullPolicyService()));
|
||||
const uriIdentityService = disposables.add(new UriIdentityService(fileService));
|
||||
const userDataProfilesService = instantiationService.stub(IUserDataProfilesService, disposables.add(new UserDataProfilesService(environmentService, fileService, uriIdentityService, logService)));
|
||||
disposables.add(fileService.registerProvider(Schemas.vscodeUserData, disposables.add(new FileUserDataProvider(ROOT.scheme, fileSystemProvider, Schemas.vscodeUserData, userDataProfilesService, uriIdentityService, new NullLogService()))));
|
||||
userDataProfileService = instantiationService.stub(IUserDataProfileService, disposables.add(new UserDataProfileService(userDataProfilesService.defaultProfile)));
|
||||
const workspaceService = disposables.add(new WorkspaceService(
|
||||
{ configurationCache: new ConfigurationCache() },
|
||||
environmentService, userDataProfileService, userDataProfilesService,
|
||||
fileService, remoteAgentService, uriIdentityService, new NullLogService(), new NullPolicyService()));
|
||||
|
||||
instantiationService.stub(IFileService, fileService);
|
||||
instantiationService.stub(IWorkspaceContextService, workspaceService);
|
||||
@@ -1935,9 +1978,9 @@ suite('WorkspaceConfigurationService-Multiroot', () => {
|
||||
instantiationService.stub(IEnvironmentService, environmentService);
|
||||
|
||||
await workspaceService.initialize(getWorkspaceIdentifier(configResource));
|
||||
instantiationService.stub(IKeybindingEditingService, instantiationService.createInstance(KeybindingsEditingService));
|
||||
instantiationService.stub(ITextFileService, instantiationService.createInstance(TestTextFileService));
|
||||
instantiationService.stub(ITextModelService, <ITextModelService>instantiationService.createInstance(TextModelResolverService));
|
||||
instantiationService.stub(IKeybindingEditingService, disposables.add(instantiationService.createInstance(KeybindingsEditingService)));
|
||||
instantiationService.stub(ITextFileService, disposables.add(instantiationService.createInstance(TestTextFileService)));
|
||||
instantiationService.stub(ITextModelService, <ITextModelService>disposables.add(instantiationService.createInstance(TextModelResolverService)));
|
||||
jsonEditingServce = instantiationService.createInstance(JSONEditingService);
|
||||
instantiationService.stub(IJSONEditingService, jsonEditingServce);
|
||||
workspaceService.acquireInstantiationService(instantiationService);
|
||||
@@ -1946,8 +1989,6 @@ suite('WorkspaceConfigurationService-Multiroot', () => {
|
||||
testObject = workspaceService;
|
||||
});
|
||||
|
||||
teardown(() => disposables.clear());
|
||||
|
||||
test('application settings are not read from workspace', () => runWithFakedTimers<void>({ useFakeTimers: true }, async () => {
|
||||
await fileService.writeFile(userDataProfileService.currentProfile.settingsResource, VSBuffer.fromString('{ "configurationService.folder.applicationSetting": "userValue" }'));
|
||||
await jsonEditingServce.write(workspaceContextService.getWorkspace().configuration!, [{ path: ['settings'], value: { 'configurationService.workspace.applicationSetting': 'workspaceValue' } }], true);
|
||||
@@ -2415,7 +2456,7 @@ suite('WorkspaceConfigurationService-Multiroot', () => {
|
||||
|
||||
test('update user configuration should trigger change event before promise is resolve', () => runWithFakedTimers<void>({ useFakeTimers: true }, async () => {
|
||||
const target = sinon.spy();
|
||||
testObject.onDidChangeConfiguration(target);
|
||||
disposables.add(testObject.onDidChangeConfiguration(target));
|
||||
await testObject.updateValue('configurationService.workspace.testSetting', 'userValue', ConfigurationTarget.USER);
|
||||
assert.ok(target.called);
|
||||
}));
|
||||
@@ -2427,7 +2468,7 @@ suite('WorkspaceConfigurationService-Multiroot', () => {
|
||||
|
||||
test('update workspace configuration should trigger change event before promise is resolve', () => runWithFakedTimers<void>({ useFakeTimers: true }, async () => {
|
||||
const target = sinon.spy();
|
||||
testObject.onDidChangeConfiguration(target);
|
||||
disposables.add(testObject.onDidChangeConfiguration(target));
|
||||
await testObject.updateValue('configurationService.workspace.testSetting', 'workspaceValue', ConfigurationTarget.WORKSPACE);
|
||||
assert.ok(target.called);
|
||||
}));
|
||||
@@ -2457,7 +2498,7 @@ suite('WorkspaceConfigurationService-Multiroot', () => {
|
||||
test('update workspace folder configuration should trigger change event before promise is resolve', () => runWithFakedTimers<void>({ useFakeTimers: true }, async () => {
|
||||
const workspace = workspaceContextService.getWorkspace();
|
||||
const target = sinon.spy();
|
||||
testObject.onDidChangeConfiguration(target);
|
||||
disposables.add(testObject.onDidChangeConfiguration(target));
|
||||
await testObject.updateValue('configurationService.workspace.testResourceSetting', 'workspaceFolderValue', { resource: workspace.folders[0].uri }, ConfigurationTarget.WORKSPACE_FOLDER);
|
||||
assert.ok(target.called);
|
||||
}));
|
||||
@@ -2466,7 +2507,7 @@ suite('WorkspaceConfigurationService-Multiroot', () => {
|
||||
const workspace = workspaceContextService.getWorkspace();
|
||||
await testObject.updateValue('configurationService.workspace.testResourceSetting', 'workspaceFolderValue', { resource: workspace.folders[0].uri }, ConfigurationTarget.WORKSPACE_FOLDER);
|
||||
const target = sinon.spy();
|
||||
testObject.onDidChangeConfiguration(target);
|
||||
disposables.add(testObject.onDidChangeConfiguration(target));
|
||||
await testObject.updateValue('configurationService.workspace.testResourceSetting', 'workspaceFolderValue2', { resource: workspace.folders[0].uri }, ConfigurationTarget.WORKSPACE_FOLDER);
|
||||
assert.ok(target.called);
|
||||
}));
|
||||
@@ -2484,7 +2525,7 @@ suite('WorkspaceConfigurationService-Multiroot', () => {
|
||||
|
||||
test('update memory configuration should trigger change event before promise is resolve', () => runWithFakedTimers<void>({ useFakeTimers: true }, async () => {
|
||||
const target = sinon.spy();
|
||||
testObject.onDidChangeConfiguration(target);
|
||||
disposables.add(testObject.onDidChangeConfiguration(target));
|
||||
await testObject.updateValue('configurationService.workspace.testSetting', 'memoryValue', ConfigurationTarget.MEMORY);
|
||||
assert.ok(target.called);
|
||||
}));
|
||||
@@ -2531,14 +2572,14 @@ suite('WorkspaceConfigurationService-Multiroot', () => {
|
||||
await fileService.writeFile(joinPath(uri, '.vscode', 'settings.json'), VSBuffer.fromString('{ "configurationService.workspace.testResourceSetting": "workspaceFolderValue" }'));
|
||||
|
||||
return new Promise<void>((c, e) => {
|
||||
testObject.onDidChangeConfiguration(() => {
|
||||
disposables.add(testObject.onDidChangeConfiguration(() => {
|
||||
try {
|
||||
assert.strictEqual(testObject.getValue('configurationService.workspace.testResourceSetting', { resource: uri }), 'workspaceFolderValue');
|
||||
c();
|
||||
} catch (error) {
|
||||
e(error);
|
||||
}
|
||||
});
|
||||
}));
|
||||
workspaceService.addFolders([{ uri }]);
|
||||
});
|
||||
}));
|
||||
@@ -2614,7 +2655,7 @@ suite('WorkspaceConfigurationService - Remote Folder', () => {
|
||||
instantiationService: TestInstantiationService, fileService: IFileService, environmentService: BrowserWorkbenchEnvironmentService, userDataProfileService: IUserDataProfileService;
|
||||
const remoteAuthority = 'configuraiton-tests';
|
||||
const configurationRegistry = Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Configuration);
|
||||
const disposables = new DisposableStore();
|
||||
const disposables = ensureNoDisposablesAreLeakedInTestSuite();
|
||||
|
||||
suiteSetup(() => {
|
||||
configurationRegistry.registerConfiguration({
|
||||
@@ -2649,7 +2690,7 @@ suite('WorkspaceConfigurationService - Remote Folder', () => {
|
||||
const logService = new NullLogService();
|
||||
fileService = disposables.add(new FileService(logService));
|
||||
fileSystemProvider = disposables.add(new InMemoryFileSystemProvider());
|
||||
fileService.registerProvider(ROOT.scheme, fileSystemProvider);
|
||||
disposables.add(fileService.registerProvider(ROOT.scheme, fileSystemProvider));
|
||||
|
||||
const appSettingsHome = joinPath(ROOT, 'user');
|
||||
folder = joinPath(ROOT, 'a');
|
||||
@@ -2663,10 +2704,10 @@ suite('WorkspaceConfigurationService - Remote Folder', () => {
|
||||
const remoteEnvironmentPromise = new Promise<Partial<IRemoteAgentEnvironment>>(c => resolveRemoteEnvironment = () => c({ settingsPath: remoteSettingsResource }));
|
||||
const remoteAgentService = instantiationService.stub(IRemoteAgentService, <Partial<IRemoteAgentService>>{ getEnvironment: () => remoteEnvironmentPromise });
|
||||
const configurationCache: IConfigurationCache = { read: () => Promise.resolve(''), write: () => Promise.resolve(), remove: () => Promise.resolve(), needsCaching: () => false };
|
||||
const uriIdentityService = new UriIdentityService(fileService);
|
||||
const userDataProfilesService = instantiationService.stub(IUserDataProfilesService, new UserDataProfilesService(environmentService, fileService, uriIdentityService, logService));
|
||||
fileService.registerProvider(Schemas.vscodeUserData, disposables.add(new FileUserDataProvider(ROOT.scheme, fileSystemProvider, Schemas.vscodeUserData, userDataProfilesService, uriIdentityService, new NullLogService())));
|
||||
userDataProfileService = instantiationService.stub(IUserDataProfileService, new UserDataProfileService(userDataProfilesService.defaultProfile));
|
||||
const uriIdentityService = disposables.add(new UriIdentityService(fileService));
|
||||
const userDataProfilesService = instantiationService.stub(IUserDataProfilesService, disposables.add(new UserDataProfilesService(environmentService, fileService, uriIdentityService, logService)));
|
||||
disposables.add(fileService.registerProvider(Schemas.vscodeUserData, disposables.add(new FileUserDataProvider(ROOT.scheme, fileSystemProvider, Schemas.vscodeUserData, userDataProfilesService, uriIdentityService, new NullLogService()))));
|
||||
userDataProfileService = instantiationService.stub(IUserDataProfileService, disposables.add(new UserDataProfileService(userDataProfilesService.defaultProfile)));
|
||||
testObject = disposables.add(new WorkspaceService({ configurationCache, remoteAuthority }, environmentService, userDataProfileService, userDataProfilesService, fileService, remoteAgentService, uriIdentityService, new NullLogService(), new NullPolicyService()));
|
||||
instantiationService.stub(IWorkspaceContextService, testObject);
|
||||
instantiationService.stub(IConfigurationService, testObject);
|
||||
@@ -2676,27 +2717,25 @@ suite('WorkspaceConfigurationService - Remote Folder', () => {
|
||||
|
||||
async function initialize(): Promise<void> {
|
||||
await testObject.initialize(convertToWorkspacePayload(folder));
|
||||
instantiationService.stub(ITextFileService, instantiationService.createInstance(TestTextFileService));
|
||||
instantiationService.stub(ITextModelService, <ITextModelService>instantiationService.createInstance(TextModelResolverService));
|
||||
instantiationService.stub(ITextFileService, disposables.add(instantiationService.createInstance(TestTextFileService)));
|
||||
instantiationService.stub(ITextModelService, <ITextModelService>disposables.add(instantiationService.createInstance(TextModelResolverService)));
|
||||
instantiationService.stub(IJSONEditingService, instantiationService.createInstance(JSONEditingService));
|
||||
testObject.acquireInstantiationService(instantiationService);
|
||||
}
|
||||
|
||||
function registerRemoteFileSystemProvider(): void {
|
||||
instantiationService.get(IFileService).registerProvider(Schemas.vscodeRemote, new RemoteFileSystemProvider(fileSystemProvider, remoteAuthority));
|
||||
disposables.add(instantiationService.get(IFileService).registerProvider(Schemas.vscodeRemote, new RemoteFileSystemProvider(fileSystemProvider, remoteAuthority)));
|
||||
}
|
||||
|
||||
function registerRemoteFileSystemProviderOnActivation(): void {
|
||||
const disposable = instantiationService.get(IFileService).onWillActivateFileSystemProvider(e => {
|
||||
const disposable = disposables.add(instantiationService.get(IFileService).onWillActivateFileSystemProvider(e => {
|
||||
if (e.scheme === Schemas.vscodeRemote) {
|
||||
disposable.dispose();
|
||||
e.join(Promise.resolve().then(() => registerRemoteFileSystemProvider()));
|
||||
}
|
||||
});
|
||||
}));
|
||||
}
|
||||
|
||||
teardown(() => disposables.clear());
|
||||
|
||||
test('remote settings override globals', () => runWithFakedTimers<void>({ useFakeTimers: true }, async () => {
|
||||
await fileService.writeFile(machineSettingsResource, VSBuffer.fromString('{ "configurationService.remote.machineSetting": "remoteValue" }'));
|
||||
registerRemoteFileSystemProvider();
|
||||
@@ -2718,7 +2757,7 @@ suite('WorkspaceConfigurationService - Remote Folder', () => {
|
||||
registerRemoteFileSystemProvider();
|
||||
await initialize();
|
||||
const promise = new Promise<void>((c, e) => {
|
||||
testObject.onDidChangeConfiguration(event => {
|
||||
disposables.add(testObject.onDidChangeConfiguration(event => {
|
||||
try {
|
||||
assert.strictEqual(event.source, ConfigurationTarget.USER);
|
||||
assert.deepStrictEqual([...event.affectedKeys], ['configurationService.remote.machineSetting']);
|
||||
@@ -2727,7 +2766,7 @@ suite('WorkspaceConfigurationService - Remote Folder', () => {
|
||||
} catch (error) {
|
||||
e(error);
|
||||
}
|
||||
});
|
||||
}));
|
||||
});
|
||||
resolveRemoteEnvironment();
|
||||
return promise;
|
||||
@@ -2738,7 +2777,7 @@ suite('WorkspaceConfigurationService - Remote Folder', () => {
|
||||
registerRemoteFileSystemProviderOnActivation();
|
||||
await initialize();
|
||||
const promise = new Promise<void>((c, e) => {
|
||||
testObject.onDidChangeConfiguration(event => {
|
||||
disposables.add(testObject.onDidChangeConfiguration(event => {
|
||||
try {
|
||||
assert.strictEqual(event.source, ConfigurationTarget.USER);
|
||||
assert.deepStrictEqual([...event.affectedKeys], ['configurationService.remote.machineSetting']);
|
||||
@@ -2747,7 +2786,7 @@ suite('WorkspaceConfigurationService - Remote Folder', () => {
|
||||
} catch (error) {
|
||||
e(error);
|
||||
}
|
||||
});
|
||||
}));
|
||||
});
|
||||
resolveRemoteEnvironment();
|
||||
return promise;
|
||||
|
||||
Reference in New Issue
Block a user