Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/base/test/browser/ui/scrollbar/scrollbarState.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 { ScrollbarState } from '../../../../browser/ui/scrollbar/scrollbarState.js';
8
import { ensureNoDisposablesAreLeakedInTestSuite } from '../../../common/utils.js';
9
10
suite('ScrollbarState', () => {
11
12
ensureNoDisposablesAreLeakedInTestSuite();
13
14
test('inflates slider size', () => {
15
const actual = new ScrollbarState(0, 14, 0, 339, 42423, 32787);
16
17
assert.strictEqual(actual.getArrowSize(), 0);
18
assert.strictEqual(actual.getScrollPosition(), 32787);
19
assert.strictEqual(actual.getRectangleLargeSize(), 339);
20
assert.strictEqual(actual.getRectangleSmallSize(), 14);
21
assert.strictEqual(actual.isNeeded(), true);
22
assert.strictEqual(actual.getSliderSize(), 20);
23
assert.strictEqual(actual.getSliderPosition(), 249);
24
25
assert.strictEqual(actual.getDesiredScrollPositionFromOffset(259), 32849);
26
27
// 259 is greater than 230 so page down, 32787 + 339 = 33126
28
assert.strictEqual(actual.getDesiredScrollPositionFromOffsetPaged(259), 33126);
29
30
actual.setScrollPosition(32849);
31
assert.strictEqual(actual.getArrowSize(), 0);
32
assert.strictEqual(actual.getScrollPosition(), 32849);
33
assert.strictEqual(actual.getRectangleLargeSize(), 339);
34
assert.strictEqual(actual.getRectangleSmallSize(), 14);
35
assert.strictEqual(actual.isNeeded(), true);
36
assert.strictEqual(actual.getSliderSize(), 20);
37
assert.strictEqual(actual.getSliderPosition(), 249);
38
});
39
40
test('inflates slider size with arrows', () => {
41
const actual = new ScrollbarState(12, 14, 0, 339, 42423, 32787);
42
43
assert.strictEqual(actual.getArrowSize(), 12);
44
assert.strictEqual(actual.getScrollPosition(), 32787);
45
assert.strictEqual(actual.getRectangleLargeSize(), 339);
46
assert.strictEqual(actual.getRectangleSmallSize(), 14);
47
assert.strictEqual(actual.isNeeded(), true);
48
assert.strictEqual(actual.getSliderSize(), 20);
49
assert.strictEqual(actual.getSliderPosition(), 230);
50
51
assert.strictEqual(actual.getDesiredScrollPositionFromOffset(240 + 12), 32811);
52
53
// 240 + 12 = 252; greater than 230 so page down, 32787 + 339 = 33126
54
assert.strictEqual(actual.getDesiredScrollPositionFromOffsetPaged(240 + 12), 33126);
55
56
actual.setScrollPosition(32811);
57
assert.strictEqual(actual.getArrowSize(), 12);
58
assert.strictEqual(actual.getScrollPosition(), 32811);
59
assert.strictEqual(actual.getRectangleLargeSize(), 339);
60
assert.strictEqual(actual.getRectangleSmallSize(), 14);
61
assert.strictEqual(actual.isNeeded(), true);
62
assert.strictEqual(actual.getSliderSize(), 20);
63
assert.strictEqual(actual.getSliderPosition(), 230);
64
});
65
});
66
67