From 22ca6611bdbf14bb342ee7ec683cf3cc16bff0b4 Mon Sep 17 00:00:00 2001 From: Logan Ramos Date: Fri, 3 Sep 2021 13:46:51 -0400 Subject: [PATCH] Add get tabs tests --- .../src/singlefolder-tests/window.test.ts | 33 +++++++++++++++++++ .../workbench/api/common/extHost.protocol.ts | 4 +-- .../workbench/api/common/extHostEditorTabs.ts | 3 +- 3 files changed, 37 insertions(+), 3 deletions(-) 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 4e7f38b994f..54b5f1a908a 100644 --- a/extensions/vscode-api-tests/src/singlefolder-tests/window.test.ts +++ b/extensions/vscode-api-tests/src/singlefolder-tests/window.test.ts @@ -347,6 +347,39 @@ suite('vscode API - window', () => { }).then(passOncePlease, failOncePlease); }); + //#region Tabs API tests + test.only('Tabs - Ensure tabs getter is correct', async () => { + assert.ok(workspace.workspaceFolders); + const workspaceRoot = workspace.workspaceFolders[0].uri; + const [docA, docB, docC, notebookDoc] = await Promise.all([ + workspace.openTextDocument(await createRandomFile()), + workspace.openTextDocument(await createRandomFile()), + workspace.openTextDocument(await createRandomFile()), + workspace.openNotebookDocument(Uri.joinPath(workspaceRoot, 'test.ipynb')) + ]); + + await window.showTextDocument(docA, { viewColumn: ViewColumn.One, preview: false }); + await window.showTextDocument(docB, { viewColumn: ViewColumn.Two, preview: false }); + await window.showTextDocument(docC, { viewColumn: ViewColumn.Three, preview: false }); + await window.showNotebookDocument(notebookDoc, { viewColumn: ViewColumn.One, preview: false }); + + const tabs = window.tabs; + assert.strictEqual(tabs.length, 4); + + // All resources should match the text documents as they're the only tabs currently open + assert.strictEqual(tabs[0].resource?.toString(), docA.uri.toString()); + assert.strictEqual(tabs[1].resource?.toString(), notebookDoc.uri.toString()); + assert.strictEqual(tabs[2].resource?.toString(), docB.uri.toString()); + assert.strictEqual(tabs[3].resource?.toString(), docC.uri.toString()); + + assert.strictEqual(tabs[0].viewColumn, ViewColumn.One); + assert.strictEqual(tabs[1].viewColumn, ViewColumn.One); + assert.strictEqual(tabs[2].viewColumn, ViewColumn.Two); + assert.strictEqual(tabs[3].viewColumn, ViewColumn.Three); + }); + + //#endregion + test('#7013 - input without options', function () { const source = new CancellationTokenSource(); let p = window.showInputBox(undefined, source.token); diff --git a/src/vs/workbench/api/common/extHost.protocol.ts b/src/vs/workbench/api/common/extHost.protocol.ts index d8389754095..ebd05448324 100644 --- a/src/vs/workbench/api/common/extHost.protocol.ts +++ b/src/vs/workbench/api/common/extHost.protocol.ts @@ -46,7 +46,7 @@ import { WorkspaceTrustRequestOptions } from 'vs/platform/workspace/common/works import { ExtensionActivationReason } from 'vs/workbench/api/common/extHostExtensionActivator'; import { ExtHostInteractive } from 'vs/workbench/api/common/extHostInteractive'; import { TunnelDto } from 'vs/workbench/api/common/extHostTunnelService'; -import { DebugConfigurationProviderTriggerKind, ViewColumn } from 'vs/workbench/api/common/extHostTypes'; +import { DebugConfigurationProviderTriggerKind } from 'vs/workbench/api/common/extHostTypes'; import * as tasks from 'vs/workbench/api/common/shared/tasks'; import { TreeDataTransferDTO } from 'vs/workbench/api/common/shared/treeDataTransfer'; import { SaveReason } from 'vs/workbench/common/editor'; @@ -640,7 +640,7 @@ export interface MainThreadEditorTabsShape extends IDisposable { } export interface IEditorTabDto { - viewColumn: ViewColumn; + viewColumn: EditorGroupColumn; label: string; resource?: UriComponents | { primary?: UriComponents, secondary?: UriComponents }; editorId?: string; diff --git a/src/vs/workbench/api/common/extHostEditorTabs.ts b/src/vs/workbench/api/common/extHostEditorTabs.ts index e3f4a536540..9df055a29ec 100644 --- a/src/vs/workbench/api/common/extHostEditorTabs.ts +++ b/src/vs/workbench/api/common/extHostEditorTabs.ts @@ -4,6 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import type * as vscode from 'vscode'; +import * as typeConverters from 'vs/workbench/api/common/extHostTypeConverters'; import { IEditorTabDto, IExtHostEditorTabsShape } from 'vs/workbench/api/common/extHost.protocol'; import { URI, UriComponents } from 'vs/base/common/uri'; import { Emitter, Event } from 'vs/base/common/event'; @@ -69,7 +70,7 @@ export class ExtHostEditorTabs implements IExtHostEditorTabs { } return Object.freeze({ label: dto.label, - viewColumn: dto.viewColumn, + viewColumn: typeConverters.ViewColumn.to(dto.viewColumn), resource, editorId: dto.editorId, isActive: dto.isActive