mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-22 17:48:56 +01:00
Editor is improperly marked isPreview in tabs api (fix #145755)
This commit is contained in:
@@ -5,8 +5,8 @@
|
||||
|
||||
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 { assertNoRpc, closeAllEditors, createRandomFile, pathEquals } from '../utils';
|
||||
import { CancellationTokenSource, commands, MarkdownString, TabKindNotebook, Position, QuickPickItem, Selection, StatusBarAlignment, TabKindTextDiff, TextEditor, TextEditorSelectionChangeKind, TextEditorViewColumnChangeEvent, TabKindText, Uri, ViewColumn, window, workspace, WorkspaceEdit } from 'vscode';
|
||||
import { asPromise, assertNoRpc, closeAllEditors, createRandomFile, pathEquals } from '../utils';
|
||||
|
||||
|
||||
suite('vscode API - window', () => {
|
||||
@@ -517,6 +517,114 @@ suite('vscode API - window', () => {
|
||||
assert.ok(!getActiveTabInActiveGroup());
|
||||
});
|
||||
|
||||
test('Tabs - verify pinned state', async () => {
|
||||
|
||||
const [docA] = await Promise.all([
|
||||
workspace.openTextDocument(await createRandomFile())
|
||||
]);
|
||||
|
||||
await window.showTextDocument(docA, { viewColumn: ViewColumn.One, preview: false });
|
||||
|
||||
const tab = window.tabGroups.activeTabGroup?.activeTab;
|
||||
assert.ok(tab);
|
||||
|
||||
assert.strictEqual(tab.isPinned, false);
|
||||
|
||||
let onDidChangeTab = asPromise(window.tabGroups.onDidChangeTab);
|
||||
|
||||
await commands.executeCommand('workbench.action.pinEditor');
|
||||
await onDidChangeTab;
|
||||
|
||||
assert.strictEqual(tab.isPinned, true);
|
||||
|
||||
onDidChangeTab = asPromise(window.tabGroups.onDidChangeTab);
|
||||
|
||||
await commands.executeCommand('workbench.action.unpinEditor');
|
||||
await onDidChangeTab;
|
||||
|
||||
assert.strictEqual(tab.isPinned, false);
|
||||
});
|
||||
|
||||
test('Tabs - verify preview state', async () => {
|
||||
|
||||
const [docA] = await Promise.all([
|
||||
workspace.openTextDocument(await createRandomFile())
|
||||
]);
|
||||
|
||||
await window.showTextDocument(docA, { viewColumn: ViewColumn.One, preview: true });
|
||||
|
||||
const tab = window.tabGroups.activeTabGroup?.activeTab;
|
||||
assert.ok(tab);
|
||||
|
||||
assert.strictEqual(tab.isPreview, true);
|
||||
|
||||
let onDidChangeTab = asPromise(window.tabGroups.onDidChangeTab);
|
||||
|
||||
await commands.executeCommand('workbench.action.keepEditor');
|
||||
await onDidChangeTab;
|
||||
|
||||
assert.strictEqual(tab.isPreview, false);
|
||||
});
|
||||
|
||||
test('Tabs - verify dirty state', async () => {
|
||||
|
||||
const [docA] = await Promise.all([
|
||||
workspace.openTextDocument(await createRandomFile())
|
||||
]);
|
||||
|
||||
await window.showTextDocument(docA, { viewColumn: ViewColumn.One, preview: true });
|
||||
|
||||
const tab = window.tabGroups.activeTabGroup?.activeTab;
|
||||
assert.ok(tab);
|
||||
|
||||
assert.strictEqual(tab.isDirty, false);
|
||||
assert.strictEqual(docA.isDirty, false);
|
||||
|
||||
let onDidChangeTab = asPromise(window.tabGroups.onDidChangeTab);
|
||||
|
||||
const edit = new WorkspaceEdit();
|
||||
edit.insert(docA.uri, new Position(0, 0), 'var abc = 0;');
|
||||
await workspace.applyEdit(edit);
|
||||
|
||||
await onDidChangeTab;
|
||||
|
||||
assert.strictEqual(tab.isDirty, true);
|
||||
|
||||
onDidChangeTab = asPromise(window.tabGroups.onDidChangeTab);
|
||||
|
||||
await commands.executeCommand('workbench.action.files.save');
|
||||
|
||||
await onDidChangeTab;
|
||||
|
||||
assert.strictEqual(tab.isDirty, false);
|
||||
});
|
||||
|
||||
test('Tabs - verify active state', async () => {
|
||||
|
||||
const [docA, docB] = await Promise.all([
|
||||
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 });
|
||||
|
||||
const tab = window.tabGroups.activeTabGroup?.tabs;
|
||||
assert.strictEqual(tab?.length, 2);
|
||||
|
||||
assert.strictEqual(tab[0].isActive, false);
|
||||
assert.strictEqual(tab[1].isActive, true);
|
||||
|
||||
let onDidChangeTab = asPromise(window.tabGroups.onDidChangeTab);
|
||||
|
||||
await window.showTextDocument(docA, { viewColumn: ViewColumn.One, preview: false });
|
||||
|
||||
await onDidChangeTab;
|
||||
|
||||
assert.strictEqual(tab[0].isActive, true);
|
||||
assert.strictEqual(tab[1].isActive, false);
|
||||
});
|
||||
|
||||
/*
|
||||
|
||||
test('Tabs - Move Tab', async () => {
|
||||
|
||||
Reference in New Issue
Block a user