Additional tests (#13051)

This commit is contained in:
Christof Marti
2016-09-29 21:42:45 -07:00
parent 0bd444927d
commit 17b0c8d028
2 changed files with 27 additions and 3 deletions

View File

@@ -147,7 +147,7 @@ export class ConfigurationResolverService implements IConfigurationResolverServi
}
config = config[key];
}
newValue = config ? config[keys[0]] : '';
newValue = config && config.hasOwnProperty(keys[0]) ? config[keys[0]] : '';
} catch (e) {
return '';
}

View File

@@ -244,12 +244,36 @@ suite('Configuration Resolver Service', () => {
let configurationService: IConfigurationService;
configurationService = new MockConfigurationService({
editor: {
a: 'foo'
abc: 'foo'
}
});
let service = new ConfigurationResolverService(uri.parse('file:///VSCode/workspaceLocation'), envVariables, new TestEditorService(), TestEnvironmentService, configurationService, mockCommandService);
assert.strictEqual(service.resolve("abc ${config.editor['abc'.substr(0)]} xyz"), 'abc undefined xyz');
assert.strictEqual(service.resolve("abc ${config.editor['abc'.substr(0)]} xyz"), 'abc xyz');
});
test('uses empty string as fallback', () => {
let configurationService: IConfigurationService;
configurationService = new MockConfigurationService({
editor: {}
});
let service = new ConfigurationResolverService(uri.parse('file:///VSCode/workspaceLocation'), envVariables, new TestEditorService(), TestEnvironmentService, configurationService, mockCommandService);
assert.strictEqual(service.resolve("abc ${config.editor.abc} xyz"), 'abc xyz');
assert.strictEqual(service.resolve("abc ${config.editor.abc.def} xyz"), 'abc xyz');
assert.strictEqual(service.resolve("abc ${config.panel} xyz"), 'abc xyz');
assert.strictEqual(service.resolve("abc ${config.panel.abc} xyz"), 'abc xyz');
});
test('is restricted to own properties', () => {
let configurationService: IConfigurationService;
configurationService = new MockConfigurationService({
editor: {}
});
let service = new ConfigurationResolverService(uri.parse('file:///VSCode/workspaceLocation'), envVariables, new TestEditorService(), TestEnvironmentService, configurationService, mockCommandService);
assert.strictEqual(service.resolve("abc ${config.editor.__proto__} xyz"), 'abc xyz');
assert.strictEqual(service.resolve("abc ${config.editor.toString} xyz"), 'abc xyz');
});
test('interactive variable simple', () => {