Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/editor/contrib/hover/test/browser/hoverUtils.test.ts
4780 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 { ensureNoDisposablesAreLeakedInTestSuite } from '../../../../../base/test/common/utils.js';
8
import { shouldShowHover } from '../../browser/hoverUtils.js';
9
import { IEditorMouseEvent } from '../../../../browser/editorBrowser.js';
10
11
suite('Hover Utils', () => {
12
13
ensureNoDisposablesAreLeakedInTestSuite();
14
15
suite('shouldShowHover', () => {
16
17
function createMockMouseEvent(ctrlKey: boolean, altKey: boolean, metaKey: boolean): IEditorMouseEvent {
18
return {
19
event: {
20
ctrlKey,
21
altKey,
22
metaKey,
23
shiftKey: false,
24
}
25
} as IEditorMouseEvent;
26
}
27
28
test('returns true when enabled is "on"', () => {
29
const mouseEvent = createMockMouseEvent(false, false, false);
30
const result = shouldShowHover('on', 'altKey', mouseEvent);
31
assert.strictEqual(result, true);
32
});
33
34
test('returns false when enabled is "off"', () => {
35
const mouseEvent = createMockMouseEvent(false, false, false);
36
const result = shouldShowHover('off', 'altKey', mouseEvent);
37
assert.strictEqual(result, false);
38
});
39
40
test('returns true with ctrl pressed when multiCursorModifier is altKey', () => {
41
const mouseEvent = createMockMouseEvent(true, false, false);
42
const result = shouldShowHover('onKeyboardModifier', 'altKey', mouseEvent);
43
assert.strictEqual(result, true);
44
});
45
46
test('returns false without ctrl pressed when multiCursorModifier is altKey', () => {
47
const mouseEvent = createMockMouseEvent(false, false, false);
48
const result = shouldShowHover('onKeyboardModifier', 'altKey', mouseEvent);
49
assert.strictEqual(result, false);
50
});
51
52
test('returns true with metaKey pressed when multiCursorModifier is altKey', () => {
53
const mouseEvent = createMockMouseEvent(false, false, true);
54
const result = shouldShowHover('onKeyboardModifier', 'altKey', mouseEvent);
55
assert.strictEqual(result, true);
56
});
57
58
test('returns true with alt pressed when multiCursorModifier is ctrlKey', () => {
59
const mouseEvent = createMockMouseEvent(false, true, false);
60
const result = shouldShowHover('onKeyboardModifier', 'ctrlKey', mouseEvent);
61
assert.strictEqual(result, true);
62
});
63
64
test('returns false without alt pressed when multiCursorModifier is ctrlKey', () => {
65
const mouseEvent = createMockMouseEvent(false, false, false);
66
const result = shouldShowHover('onKeyboardModifier', 'ctrlKey', mouseEvent);
67
assert.strictEqual(result, false);
68
});
69
70
test('returns true with alt pressed when multiCursorModifier is metaKey', () => {
71
const mouseEvent = createMockMouseEvent(false, true, false);
72
const result = shouldShowHover('onKeyboardModifier', 'metaKey', mouseEvent);
73
assert.strictEqual(result, true);
74
});
75
76
test('ignores alt when multiCursorModifier is altKey', () => {
77
const mouseEvent = createMockMouseEvent(false, true, false);
78
const result = shouldShowHover('onKeyboardModifier', 'altKey', mouseEvent);
79
assert.strictEqual(result, false);
80
});
81
82
test('ignores ctrl when multiCursorModifier is ctrlKey', () => {
83
const mouseEvent = createMockMouseEvent(true, false, false);
84
const result = shouldShowHover('onKeyboardModifier', 'ctrlKey', mouseEvent);
85
assert.strictEqual(result, false);
86
});
87
});
88
});
89
90