mirror of
https://github.com/microsoft/vscode.git
synced 2025-12-24 12:19:20 +00:00
Fix #15178 Finalize tabs API 🎉
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
|
||||
import * as assert from 'assert';
|
||||
import { join } from 'path';
|
||||
import { CancellationTokenSource, commands, MarkdownString, TabKindNotebook, Position, QuickPickItem, Selection, StatusBarAlignment, TabKindTextDiff, TextEditor, TextEditorSelectionChangeKind, TextEditorViewColumnChangeEvent, TabKindText, Uri, ViewColumn, window, workspace } from 'vscode';
|
||||
import { CancellationTokenSource, commands, MarkdownString, TabInputNotebook, Position, QuickPickItem, Selection, StatusBarAlignment, TextEditor, TextEditorSelectionChangeKind, TextEditorViewColumnChangeEvent, TabInputText, Uri, ViewColumn, window, workspace, TabInputTextDiff } from 'vscode';
|
||||
import { assertNoRpc, closeAllEditors, createRandomFile, pathEquals } from '../utils';
|
||||
|
||||
|
||||
@@ -371,28 +371,28 @@ suite('vscode API - window', () => {
|
||||
});
|
||||
|
||||
//#region Tabs API tests
|
||||
test('Tabs - move tab', async function () {
|
||||
const [docA, docB, docC] = await Promise.all([
|
||||
workspace.openTextDocument(await createRandomFile()),
|
||||
workspace.openTextDocument(await createRandomFile()),
|
||||
workspace.openTextDocument(await createRandomFile())
|
||||
]);
|
||||
// test('Tabs - move tab', async function () {
|
||||
// const [docA, docB, docC] = await Promise.all([
|
||||
// workspace.openTextDocument(await createRandomFile()),
|
||||
// workspace.openTextDocument(await createRandomFile()),
|
||||
// workspace.openTextDocument(await createRandomFile())
|
||||
// ]);
|
||||
|
||||
await window.showTextDocument(docA, { viewColumn: ViewColumn.One, preview: false });
|
||||
await window.showTextDocument(docB, { viewColumn: ViewColumn.One, preview: false });
|
||||
await window.showTextDocument(docC, { viewColumn: ViewColumn.Two, preview: false });
|
||||
// await window.showTextDocument(docA, { viewColumn: ViewColumn.One, preview: false });
|
||||
// await window.showTextDocument(docB, { viewColumn: ViewColumn.One, preview: false });
|
||||
// await window.showTextDocument(docC, { viewColumn: ViewColumn.Two, preview: false });
|
||||
|
||||
const tabGroups = window.tabGroups;
|
||||
assert.strictEqual(tabGroups.all.length, 2);
|
||||
// const tabGroups = window.tabGroups;
|
||||
// assert.strictEqual(tabGroups.all.length, 2);
|
||||
|
||||
const group1Tabs = tabGroups.all[0].tabs;
|
||||
assert.strictEqual(group1Tabs.length, 2);
|
||||
// const group1Tabs = tabGroups.all[0].tabs;
|
||||
// assert.strictEqual(group1Tabs.length, 2);
|
||||
|
||||
const group2Tabs = tabGroups.all[1].tabs;
|
||||
assert.strictEqual(group2Tabs.length, 1);
|
||||
// const group2Tabs = tabGroups.all[1].tabs;
|
||||
// assert.strictEqual(group2Tabs.length, 1);
|
||||
|
||||
await tabGroups.move(group1Tabs[0], ViewColumn.One, 1);
|
||||
});
|
||||
// await tabGroups.move(group1Tabs[0], ViewColumn.One, 1);
|
||||
// });
|
||||
|
||||
// TODO @lramos15 re-enable these once shape is more stable
|
||||
test('Tabs - vscode.open & vscode.diff', async function () {
|
||||
@@ -423,14 +423,14 @@ suite('vscode API - window', () => {
|
||||
|
||||
const tabs = window.tabGroups.all.map(g => g.tabs).flat(1);
|
||||
assert.strictEqual(tabs.length, 5);
|
||||
assert.ok(tabs[0].kind instanceof TabKindText);
|
||||
assert.strictEqual(tabs[0].kind.uri.toString(), docA.uri.toString());
|
||||
assert.ok(tabs[1].kind instanceof TabKindText);
|
||||
assert.strictEqual(tabs[1].kind.uri.toString(), docB.uri.toString());
|
||||
assert.ok(tabs[2].kind instanceof TabKindText);
|
||||
assert.strictEqual(tabs[2].kind.uri.toString(), docC.uri.toString());
|
||||
assert.ok(tabs[3].kind instanceof TabKindText);
|
||||
assert.strictEqual(tabs[3].kind.uri.toString(), commandFile.toString());
|
||||
assert.ok(tabs[0].input instanceof TabInputText);
|
||||
assert.strictEqual(tabs[0].input.uri.toString(), docA.uri.toString());
|
||||
assert.ok(tabs[1].input instanceof TabInputText);
|
||||
assert.strictEqual(tabs[1].input.uri.toString(), docB.uri.toString());
|
||||
assert.ok(tabs[2].input instanceof TabInputText);
|
||||
assert.strictEqual(tabs[2].input.uri.toString(), docC.uri.toString());
|
||||
assert.ok(tabs[3].input instanceof TabInputText);
|
||||
assert.strictEqual(tabs[3].input.uri.toString(), commandFile.toString());
|
||||
});
|
||||
|
||||
test('Tabs - Ensure tabs getter is correct', async function () {
|
||||
@@ -459,17 +459,17 @@ suite('vscode API - window', () => {
|
||||
assert.strictEqual(tabs.length, 5);
|
||||
|
||||
// All resources should match the text documents as they're the only tabs currently open
|
||||
assert.ok(tabs[0].kind instanceof TabKindText);
|
||||
assert.strictEqual(tabs[0].kind.uri.toString(), docA.uri.toString());
|
||||
assert.ok(tabs[1].kind instanceof TabKindNotebook);
|
||||
assert.strictEqual(tabs[1].kind.uri.toString(), notebookDoc.uri.toString());
|
||||
assert.ok(tabs[2].kind instanceof TabKindText);
|
||||
assert.strictEqual(tabs[2].kind.uri.toString(), docB.uri.toString());
|
||||
assert.ok(tabs[3].kind instanceof TabKindText);
|
||||
assert.strictEqual(tabs[3].kind.uri.toString(), docC.uri.toString());
|
||||
assert.ok(tabs[0].input instanceof TabInputText);
|
||||
assert.strictEqual(tabs[0].input.uri.toString(), docA.uri.toString());
|
||||
assert.ok(tabs[1].input instanceof TabInputNotebook);
|
||||
assert.strictEqual(tabs[1].input.uri.toString(), notebookDoc.uri.toString());
|
||||
assert.ok(tabs[2].input instanceof TabInputText);
|
||||
assert.strictEqual(tabs[2].input.uri.toString(), docB.uri.toString());
|
||||
assert.ok(tabs[3].input instanceof TabInputText);
|
||||
assert.strictEqual(tabs[3].input.uri.toString(), docC.uri.toString());
|
||||
// Diff editor and side by side editor report the right side as the resource
|
||||
assert.ok(tabs[4].kind instanceof TabKindTextDiff);
|
||||
assert.strictEqual(tabs[4].kind.modified.toString(), rightDiff.toString());
|
||||
assert.ok(tabs[4].input instanceof TabInputTextDiff);
|
||||
assert.strictEqual(tabs[4].input.modified.toString(), rightDiff.toString());
|
||||
|
||||
assert.strictEqual(tabs[0].group.viewColumn, ViewColumn.One);
|
||||
assert.strictEqual(tabs[1].group.viewColumn, ViewColumn.One);
|
||||
@@ -495,20 +495,20 @@ suite('vscode API - window', () => {
|
||||
await window.showTextDocument(docA, { viewColumn: ViewColumn.One, preview: false });
|
||||
let activeTab = getActiveTabInActiveGroup();
|
||||
assert.ok(activeTab);
|
||||
assert.ok(activeTab.kind instanceof TabKindText);
|
||||
assert.strictEqual(activeTab.kind.uri.toString(), docA.uri.toString());
|
||||
assert.ok(activeTab.input instanceof TabInputText);
|
||||
assert.strictEqual(activeTab.input.uri.toString(), docA.uri.toString());
|
||||
|
||||
await window.showTextDocument(docB, { viewColumn: ViewColumn.Two, preview: false });
|
||||
activeTab = getActiveTabInActiveGroup();
|
||||
assert.ok(activeTab);
|
||||
assert.ok(activeTab.kind instanceof TabKindText);
|
||||
assert.strictEqual(activeTab.kind.uri.toString(), docB.uri.toString());
|
||||
assert.ok(activeTab.input instanceof TabInputText);
|
||||
assert.strictEqual(activeTab.input.uri.toString(), docB.uri.toString());
|
||||
|
||||
await window.showTextDocument(docC, { viewColumn: ViewColumn.Three, preview: false });
|
||||
activeTab = getActiveTabInActiveGroup();
|
||||
assert.ok(activeTab);
|
||||
assert.ok(activeTab.kind instanceof TabKindText);
|
||||
assert.strictEqual(activeTab.kind.uri.toString(), docC.uri.toString());
|
||||
assert.ok(activeTab.input instanceof TabInputText);
|
||||
assert.strictEqual(activeTab.input.uri.toString(), docC.uri.toString());
|
||||
|
||||
await commands.executeCommand('workbench.action.closeActiveEditor');
|
||||
await commands.executeCommand('workbench.action.closeActiveEditor');
|
||||
|
||||
Reference in New Issue
Block a user