未验证 提交 9d9f90dd 编写于 作者: D Daniel Imms 提交者: GitHub

Merge pull request #72508 from Microsoft/tyriar/72465

Re-enable terminal tests
......@@ -4,7 +4,7 @@
*--------------------------------------------------------------------------------------------*/
import * as assert from 'assert';
import { workspace, window, commands, ViewColumn, TextEditorViewColumnChangeEvent, Uri, Selection, Position, CancellationTokenSource, TextEditorSelectionChangeKind, Terminal } from 'vscode';
import { workspace, window, commands, ViewColumn, TextEditorViewColumnChangeEvent, Uri, Selection, Position, CancellationTokenSource, TextEditorSelectionChangeKind, Terminal, TerminalDimensionsChangeEvent } from 'vscode';
import { join } from 'path';
import { closeAllEditors, pathEquals, createRandomFile } from '../utils';
......@@ -585,14 +585,14 @@ suite('window namespace tests', () => {
terminal.dispose();
});
// test('processId immediately after createTerminal should fetch the pid', (done) => {
// const terminal = window.createTerminal();
// terminal.processId.then(id => {
// assert.ok(id > 0);
// terminal.dispose();
// done();
// });
// });
test('processId immediately after createTerminal should fetch the pid', (done) => {
const terminal = window.createTerminal();
terminal.processId.then(id => {
assert.ok(id > 0);
terminal.dispose();
done();
});
});
test('name in constructor should set terminal.name', () => {
const terminal = window.createTerminal('a');
......@@ -680,62 +680,62 @@ suite('window namespace tests', () => {
const renderer = window.createTerminalRenderer('foo');
});
// test('onDidChangeActiveTerminal should fire when new terminals are created', (done) => {
// const reg1 = window.onDidChangeActiveTerminal((active: Terminal | undefined) => {
// assert.equal(active, terminal);
// assert.equal(active, window.activeTerminal);
// reg1.dispose();
// const reg2 = window.onDidChangeActiveTerminal((active: Terminal | undefined) => {
// assert.equal(active, undefined);
// assert.equal(active, window.activeTerminal);
// reg2.dispose();
// done();
// });
// terminal.dispose();
// });
// const terminal = window.createTerminal();
// terminal.show();
// });
// test('onDidChangeTerminalDimensions should fire when new terminals are created', (done) => {
// const reg1 = window.onDidChangeTerminalDimensions(async (event: TerminalDimensionsChangeEvent) => {
// assert.equal(event.terminal, terminal1);
// assert.equal(typeof event.dimensions.columns, 'number');
// assert.equal(typeof event.dimensions.rows, 'number');
// assert.ok(event.dimensions.columns > 0);
// assert.ok(event.dimensions.rows > 0);
// reg1.dispose();
// let terminal2: Terminal;
// const reg2 = window.onDidOpenTerminal((newTerminal) => {
// // This is guarantees to fire before dimensions change event
// if (newTerminal !== terminal1) {
// terminal2 = newTerminal;
// reg2.dispose();
// }
// });
// let firstCalled = false;
// let secondCalled = false;
// const reg3 = window.onDidChangeTerminalDimensions((event: TerminalDimensionsChangeEvent) => {
// if (event.terminal === terminal1) {
// // The original terminal should fire dimension change after a split
// firstCalled = true;
// } else if (event.terminal !== terminal1) {
// // The new split terminal should fire dimension change
// secondCalled = true;
// }
// if (firstCalled && secondCalled) {
// terminal1.dispose();
// terminal2.dispose();
// reg3.dispose();
// done();
// }
// });
// await timeout(500);
// commands.executeCommand('workbench.action.terminal.split');
// });
// const terminal1 = window.createTerminal({ name: 'test' });
// terminal1.show();
// });
test('onDidChangeActiveTerminal should fire when new terminals are created', (done) => {
const reg1 = window.onDidChangeActiveTerminal((active: Terminal | undefined) => {
assert.equal(active, terminal);
assert.equal(active, window.activeTerminal);
reg1.dispose();
const reg2 = window.onDidChangeActiveTerminal((active: Terminal | undefined) => {
assert.equal(active, undefined);
assert.equal(active, window.activeTerminal);
reg2.dispose();
done();
});
terminal.dispose();
});
const terminal = window.createTerminal();
terminal.show();
});
test('onDidChangeTerminalDimensions should fire when new terminals are created', (done) => {
const reg1 = window.onDidChangeTerminalDimensions(async (event: TerminalDimensionsChangeEvent) => {
assert.equal(event.terminal, terminal1);
assert.equal(typeof event.dimensions.columns, 'number');
assert.equal(typeof event.dimensions.rows, 'number');
assert.ok(event.dimensions.columns > 0);
assert.ok(event.dimensions.rows > 0);
reg1.dispose();
let terminal2: Terminal;
const reg2 = window.onDidOpenTerminal((newTerminal) => {
// This is guarantees to fire before dimensions change event
if (newTerminal !== terminal1) {
terminal2 = newTerminal;
reg2.dispose();
}
});
let firstCalled = false;
let secondCalled = false;
const reg3 = window.onDidChangeTerminalDimensions((event: TerminalDimensionsChangeEvent) => {
if (event.terminal === terminal1) {
// The original terminal should fire dimension change after a split
firstCalled = true;
} else if (event.terminal !== terminal1) {
// The new split terminal should fire dimension change
secondCalled = true;
}
if (firstCalled && secondCalled) {
terminal1.dispose();
terminal2.dispose();
reg3.dispose();
done();
}
});
await timeout(500);
commands.executeCommand('workbench.action.terminal.split');
});
const terminal1 = window.createTerminal({ name: 'test' });
terminal1.show();
});
});
});
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册