debugViewModel.test.ts 2.3 KB
Newer Older
I
isidor 已提交
1 2 3 4 5
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

I
isidor 已提交
6
import * as assert from 'assert';
J
Johannes Rieken 已提交
7
import { ViewModel } from 'vs/workbench/parts/debug/common/debugViewModel';
8 9
import { StackFrame, Expression, Thread, Process } from 'vs/workbench/parts/debug/common/debugModel';
import { MockSession } from 'vs/workbench/parts/debug/test/common/mockDebug';
I
isidor 已提交
10 11

suite('Debug - View Model', () => {
I
isidor 已提交
12
	let model: ViewModel;
I
isidor 已提交
13 14

	setup(() => {
15
		model = new ViewModel('mockconfiguration');
I
isidor 已提交
16 17 18 19 20 21 22
	});

	teardown(() => {
		model = null;
	});

	test('focused stack frame', () => {
23 24 25
		assert.equal(model.focusedStackFrame, null);
		assert.equal(model.focusedThread, null);
		const mockSession = new MockSession();
26
		const process = new Process({ name: 'mockProcess', type: 'node', request: 'launch' }, mockSession);
27
		const thread = new Thread(process, 'myThread', 1);
28
		const frame = new StackFrame(thread, 1, null, 'app.js', 'normal', { startColumn: 1, startLineNumber: 1, endColumn: undefined, endLineNumber: undefined }, 0);
29
		model.setFocusedStackFrame(frame, process);
I
isidor 已提交
30

I
isidor 已提交
31
		assert.equal(model.focusedStackFrame.getId(), frame.getId());
32
		assert.equal(model.focusedThread.threadId, 1);
I
isidor 已提交
33
		assert.equal(model.focusedProcess.getId(), process.getId());
I
isidor 已提交
34 35 36 37
	});

	test('selected expression', () => {
		assert.equal(model.getSelectedExpression(), null);
38
		const expression = new Expression('my expression');
I
isidor 已提交
39 40 41 42
		model.setSelectedExpression(expression);

		assert.equal(model.getSelectedExpression(), expression);
	});
I
isidor 已提交
43 44 45 46 47 48 49 50 51

	test('multi process view and changed workbench state', () => {
		assert.equal(model.changedWorkbenchViewState, false);
		assert.equal(model.isMultiProcessView(), false);
		model.setMultiProcessView(true);
		assert.equal(model.isMultiProcessView(), true);
	});

	test('selected configuration name', () => {
52
		model.onDidSelectConfiguration(name => {
I
isidor 已提交
53 54 55 56 57 58
			assert.equal(name, 'configName');
		});
		assert.equal(model.selectedConfigurationName, 'mockconfiguration');
		model.setSelectedConfigurationName('configName');
		assert.equal(model.selectedConfigurationName, 'configName');
	});
I
isidor 已提交
59
});