Path: blob/main/src/vs/editor/contrib/hover/test/browser/hoverUtils.test.ts
4780 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 { ensureNoDisposablesAreLeakedInTestSuite } from '../../../../../base/test/common/utils.js';7import { shouldShowHover } from '../../browser/hoverUtils.js';8import { IEditorMouseEvent } from '../../../../browser/editorBrowser.js';910suite('Hover Utils', () => {1112ensureNoDisposablesAreLeakedInTestSuite();1314suite('shouldShowHover', () => {1516function createMockMouseEvent(ctrlKey: boolean, altKey: boolean, metaKey: boolean): IEditorMouseEvent {17return {18event: {19ctrlKey,20altKey,21metaKey,22shiftKey: false,23}24} as IEditorMouseEvent;25}2627test('returns true when enabled is "on"', () => {28const mouseEvent = createMockMouseEvent(false, false, false);29const result = shouldShowHover('on', 'altKey', mouseEvent);30assert.strictEqual(result, true);31});3233test('returns false when enabled is "off"', () => {34const mouseEvent = createMockMouseEvent(false, false, false);35const result = shouldShowHover('off', 'altKey', mouseEvent);36assert.strictEqual(result, false);37});3839test('returns true with ctrl pressed when multiCursorModifier is altKey', () => {40const mouseEvent = createMockMouseEvent(true, false, false);41const result = shouldShowHover('onKeyboardModifier', 'altKey', mouseEvent);42assert.strictEqual(result, true);43});4445test('returns false without ctrl pressed when multiCursorModifier is altKey', () => {46const mouseEvent = createMockMouseEvent(false, false, false);47const result = shouldShowHover('onKeyboardModifier', 'altKey', mouseEvent);48assert.strictEqual(result, false);49});5051test('returns true with metaKey pressed when multiCursorModifier is altKey', () => {52const mouseEvent = createMockMouseEvent(false, false, true);53const result = shouldShowHover('onKeyboardModifier', 'altKey', mouseEvent);54assert.strictEqual(result, true);55});5657test('returns true with alt pressed when multiCursorModifier is ctrlKey', () => {58const mouseEvent = createMockMouseEvent(false, true, false);59const result = shouldShowHover('onKeyboardModifier', 'ctrlKey', mouseEvent);60assert.strictEqual(result, true);61});6263test('returns false without alt pressed when multiCursorModifier is ctrlKey', () => {64const mouseEvent = createMockMouseEvent(false, false, false);65const result = shouldShowHover('onKeyboardModifier', 'ctrlKey', mouseEvent);66assert.strictEqual(result, false);67});6869test('returns true with alt pressed when multiCursorModifier is metaKey', () => {70const mouseEvent = createMockMouseEvent(false, true, false);71const result = shouldShowHover('onKeyboardModifier', 'metaKey', mouseEvent);72assert.strictEqual(result, true);73});7475test('ignores alt when multiCursorModifier is altKey', () => {76const mouseEvent = createMockMouseEvent(false, true, false);77const result = shouldShowHover('onKeyboardModifier', 'altKey', mouseEvent);78assert.strictEqual(result, false);79});8081test('ignores ctrl when multiCursorModifier is ctrlKey', () => {82const mouseEvent = createMockMouseEvent(true, false, false);83const result = shouldShowHover('onKeyboardModifier', 'ctrlKey', mouseEvent);84assert.strictEqual(result, false);85});86});87});888990