Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/base/test/browser/actionbar.test.ts
3296 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import assert from 'assert';
7
import { ActionBar, prepareActions } from '../../browser/ui/actionbar/actionbar.js';
8
import { Action, Separator } from '../../common/actions.js';
9
import { ensureNoDisposablesAreLeakedInTestSuite } from '../common/utils.js';
10
11
suite('Actionbar', () => {
12
13
const store = ensureNoDisposablesAreLeakedInTestSuite();
14
15
test('prepareActions()', function () {
16
const a1 = new Separator();
17
const a2 = new Separator();
18
const a3 = store.add(new Action('a3'));
19
const a4 = new Separator();
20
const a5 = new Separator();
21
const a6 = store.add(new Action('a6'));
22
const a7 = new Separator();
23
24
const actions = prepareActions([a1, a2, a3, a4, a5, a6, a7]);
25
assert.strictEqual(actions.length, 3); // duplicate separators get removed
26
assert(actions[0] === a3);
27
assert(actions[1] === a5);
28
assert(actions[2] === a6);
29
});
30
31
test('hasAction()', function () {
32
const container = document.createElement('div');
33
const actionbar = store.add(new ActionBar(container));
34
35
const a1 = store.add(new Action('a1'));
36
const a2 = store.add(new Action('a2'));
37
38
actionbar.push(a1);
39
assert.strictEqual(actionbar.hasAction(a1), true);
40
assert.strictEqual(actionbar.hasAction(a2), false);
41
42
actionbar.pull(0);
43
assert.strictEqual(actionbar.hasAction(a1), false);
44
45
actionbar.push(a1, { index: 1 });
46
actionbar.push(a2, { index: 0 });
47
assert.strictEqual(actionbar.hasAction(a1), true);
48
assert.strictEqual(actionbar.hasAction(a2), true);
49
50
actionbar.pull(0);
51
assert.strictEqual(actionbar.hasAction(a1), true);
52
assert.strictEqual(actionbar.hasAction(a2), false);
53
54
actionbar.pull(0);
55
assert.strictEqual(actionbar.hasAction(a1), false);
56
assert.strictEqual(actionbar.hasAction(a2), false);
57
58
actionbar.push(a1);
59
assert.strictEqual(actionbar.hasAction(a1), true);
60
actionbar.clear();
61
assert.strictEqual(actionbar.hasAction(a1), false);
62
});
63
});
64
65