[go: nahoru, domu]

blob: ec957365cfbdeacf04bafbe29d07fc2e4a7b52b1 [file] [log] [blame]
// Copyright 2021 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
const {assert} = chai;
import * as UI from '../../../../front_end/ui/legacy/legacy.js';
import type * as Platform from '../../../../front_end/core/platform/platform.js';
import {describeWithEnvironment} from '../helpers/EnvironmentHelpers.js';
describeWithEnvironment('ViewLocation', () => {
let tabbedLocation: UI.View.TabbedViewLocation;
let viewManager: UI.ViewManager.ViewManager;
before(async () => {
['first', 'second', 'third', 'fourth'].forEach(title => {
UI.ViewManager.registerViewExtension({
// @ts-ignore
location: 'mock-location',
id: title,
title: () => title as Platform.UIString.LocalizedString,
commandPrompt: () => title as Platform.UIString.LocalizedString,
persistence: UI.ViewManager.ViewPersistence.CLOSEABLE,
async loadView() {
return new UI.Widget.Widget();
},
});
});
viewManager = UI.ViewManager.ViewManager.instance({forceNew: true});
tabbedLocation = viewManager.createTabbedLocation(undefined, 'mock-location', true, true);
});
it('Creates an empty tabbed location', () => {
assert.deepEqual(tabbedLocation.tabbedPane().tabIds(), []);
});
it('Adds a tab for a selected view', () => {
viewManager.showView('first');
viewManager.showView('second');
viewManager.showView('third');
assert.deepEqual(tabbedLocation.tabbedPane().tabIds(), ['first', 'second', 'third']);
});
it('Prepends a tab correctly', () => {
const thirdTab = tabbedLocation.tabbedPane()._tabsById.get('third');
if (!thirdTab) {
throw new Error('Could not find a tab');
}
tabbedLocation.tabbedPane()._insertBefore(thirdTab, 0);
assert.deepEqual(tabbedLocation.tabbedPane().tabIds(), ['third', 'first', 'second']);
});
it('Appends a tab correctly', () => {
viewManager.showView('fourth');
assert.deepEqual(tabbedLocation.tabbedPane().tabIds(), ['third', 'first', 'second', 'fourth']);
});
it('Closes a tab correctly', () => {
tabbedLocation.tabbedPane().closeTab('second');
assert.deepEqual(tabbedLocation.tabbedPane().tabIds(), ['third', 'first', 'fourth']);
});
});