diff --git a/extensions/vscode-api-tests/src/singlefolder-tests/window.test.ts b/extensions/vscode-api-tests/src/singlefolder-tests/window.test.ts index 61fd71db1ef..b9556197469 100644 --- a/extensions/vscode-api-tests/src/singlefolder-tests/window.test.ts +++ b/extensions/vscode-api-tests/src/singlefolder-tests/window.test.ts @@ -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('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('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(); + }); }); });