Path: blob/main/src/vs/base/test/browser/actionbar.test.ts
3296 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import assert from 'assert';6import { ActionBar, prepareActions } from '../../browser/ui/actionbar/actionbar.js';7import { Action, Separator } from '../../common/actions.js';8import { ensureNoDisposablesAreLeakedInTestSuite } from '../common/utils.js';910suite('Actionbar', () => {1112const store = ensureNoDisposablesAreLeakedInTestSuite();1314test('prepareActions()', function () {15const a1 = new Separator();16const a2 = new Separator();17const a3 = store.add(new Action('a3'));18const a4 = new Separator();19const a5 = new Separator();20const a6 = store.add(new Action('a6'));21const a7 = new Separator();2223const actions = prepareActions([a1, a2, a3, a4, a5, a6, a7]);24assert.strictEqual(actions.length, 3); // duplicate separators get removed25assert(actions[0] === a3);26assert(actions[1] === a5);27assert(actions[2] === a6);28});2930test('hasAction()', function () {31const container = document.createElement('div');32const actionbar = store.add(new ActionBar(container));3334const a1 = store.add(new Action('a1'));35const a2 = store.add(new Action('a2'));3637actionbar.push(a1);38assert.strictEqual(actionbar.hasAction(a1), true);39assert.strictEqual(actionbar.hasAction(a2), false);4041actionbar.pull(0);42assert.strictEqual(actionbar.hasAction(a1), false);4344actionbar.push(a1, { index: 1 });45actionbar.push(a2, { index: 0 });46assert.strictEqual(actionbar.hasAction(a1), true);47assert.strictEqual(actionbar.hasAction(a2), true);4849actionbar.pull(0);50assert.strictEqual(actionbar.hasAction(a1), true);51assert.strictEqual(actionbar.hasAction(a2), false);5253actionbar.pull(0);54assert.strictEqual(actionbar.hasAction(a1), false);55assert.strictEqual(actionbar.hasAction(a2), false);5657actionbar.push(a1);58assert.strictEqual(actionbar.hasAction(a1), true);59actionbar.clear();60assert.strictEqual(actionbar.hasAction(a1), false);61});62});636465