Path: blob/main/src/vs/editor/test/common/view/overviewZoneManager.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 { ensureNoDisposablesAreLeakedInTestSuite } from '../../../../base/test/common/utils.js';7import { ColorZone, OverviewRulerZone, OverviewZoneManager } from '../../../common/viewModel/overviewZoneManager.js';89suite('Editor View - OverviewZoneManager', () => {1011ensureNoDisposablesAreLeakedInTestSuite();1213test('pixel ratio 1, dom height 600', () => {14const LINE_COUNT = 50;15const LINE_HEIGHT = 20;16const manager = new OverviewZoneManager((lineNumber) => LINE_HEIGHT * lineNumber);17manager.setDOMWidth(30);18manager.setDOMHeight(600);19manager.setOuterHeight(LINE_COUNT * LINE_HEIGHT);20manager.setLineHeight(LINE_HEIGHT);21manager.setPixelRatio(1);2223manager.setZones([24new OverviewRulerZone(1, 1, 0, '1'),25new OverviewRulerZone(10, 10, 0, '2'),26new OverviewRulerZone(30, 31, 0, '3'),27new OverviewRulerZone(50, 50, 0, '4'),28]);2930// one line = 12, but cap is at 631assert.deepStrictEqual(manager.resolveColorZones(), [32new ColorZone(12, 24, 1), //33new ColorZone(120, 132, 2), // 120 -> 13234new ColorZone(360, 384, 3), // 360 -> 372 [360 -> 384]35new ColorZone(588, 600, 4), // 588 -> 60036]);37});3839test('pixel ratio 1, dom height 300', () => {40const LINE_COUNT = 50;41const LINE_HEIGHT = 20;42const manager = new OverviewZoneManager((lineNumber) => LINE_HEIGHT * lineNumber);43manager.setDOMWidth(30);44manager.setDOMHeight(300);45manager.setOuterHeight(LINE_COUNT * LINE_HEIGHT);46manager.setLineHeight(LINE_HEIGHT);47manager.setPixelRatio(1);4849manager.setZones([50new OverviewRulerZone(1, 1, 0, '1'),51new OverviewRulerZone(10, 10, 0, '2'),52new OverviewRulerZone(30, 31, 0, '3'),53new OverviewRulerZone(50, 50, 0, '4'),54]);5556// one line = 6, cap is at 657assert.deepStrictEqual(manager.resolveColorZones(), [58new ColorZone(6, 12, 1), //59new ColorZone(60, 66, 2), // 60 -> 6660new ColorZone(180, 192, 3), // 180 -> 19261new ColorZone(294, 300, 4), // 294 -> 30062]);63});6465test('pixel ratio 2, dom height 300', () => {66const LINE_COUNT = 50;67const LINE_HEIGHT = 20;68const manager = new OverviewZoneManager((lineNumber) => LINE_HEIGHT * lineNumber);69manager.setDOMWidth(30);70manager.setDOMHeight(300);71manager.setOuterHeight(LINE_COUNT * LINE_HEIGHT);72manager.setLineHeight(LINE_HEIGHT);73manager.setPixelRatio(2);7475manager.setZones([76new OverviewRulerZone(1, 1, 0, '1'),77new OverviewRulerZone(10, 10, 0, '2'),78new OverviewRulerZone(30, 31, 0, '3'),79new OverviewRulerZone(50, 50, 0, '4'),80]);8182// one line = 6, cap is at 1283assert.deepStrictEqual(manager.resolveColorZones(), [84new ColorZone(12, 24, 1), //85new ColorZone(120, 132, 2), // 120 -> 13286new ColorZone(360, 384, 3), // 360 -> 38487new ColorZone(588, 600, 4), // 588 -> 60088]);89});90});919293