UNPKG

chrome-devtools-frontend

Version:
64 lines (54 loc) 2.43 kB
// 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. import type * as Platform from '../../core/platform/platform.js'; import {describeWithEnvironment} from '../../testing/EnvironmentHelpers.js'; import * as UI from './legacy.js'; describe('View', () => { describeWithEnvironment('TabbedViewLocation', () => { let tabbedLocation: UI.View.TabbedViewLocation; let viewManager: UI.ViewManager.ViewManager; before(async () => { ['first', 'second', 'third', 'fourth'].forEach(title => { UI.ViewManager.registerViewExtension({ // @ts-expect-error location: 'mock-location', id: title as Lowercase<string>, 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', () => { void viewManager.showView('first'); void viewManager.showView('second'); void 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', () => { void 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']); }); }); });