Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/editor/contrib/find/test/browser/find.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 { Position } from '../../../../common/core/position.js';
9
import { Range } from '../../../../common/core/range.js';
10
import { getSelectionSearchString } from '../../browser/findController.js';
11
import { withTestCodeEditor } from '../../../../test/browser/testCodeEditor.js';
12
13
14
suite('Find', () => {
15
16
ensureNoDisposablesAreLeakedInTestSuite();
17
18
test('search string at position', () => {
19
withTestCodeEditor([
20
'ABC DEF',
21
'0123 456'
22
], {}, (editor) => {
23
24
// The cursor is at the very top, of the file, at the first ABC
25
const searchStringAtTop = getSelectionSearchString(editor);
26
assert.strictEqual(searchStringAtTop, 'ABC');
27
28
// Move cursor to the end of ABC
29
editor.setPosition(new Position(1, 3));
30
const searchStringAfterABC = getSelectionSearchString(editor);
31
assert.strictEqual(searchStringAfterABC, 'ABC');
32
33
// Move cursor to DEF
34
editor.setPosition(new Position(1, 5));
35
const searchStringInsideDEF = getSelectionSearchString(editor);
36
assert.strictEqual(searchStringInsideDEF, 'DEF');
37
38
});
39
});
40
41
test('search string with selection', () => {
42
withTestCodeEditor([
43
'ABC DEF',
44
'0123 456'
45
], {}, (editor) => {
46
47
// Select A of ABC
48
editor.setSelection(new Range(1, 1, 1, 2));
49
const searchStringSelectionA = getSelectionSearchString(editor);
50
assert.strictEqual(searchStringSelectionA, 'A');
51
52
// Select BC of ABC
53
editor.setSelection(new Range(1, 2, 1, 4));
54
const searchStringSelectionBC = getSelectionSearchString(editor);
55
assert.strictEqual(searchStringSelectionBC, 'BC');
56
57
// Select BC DE
58
editor.setSelection(new Range(1, 2, 1, 7));
59
const searchStringSelectionBCDE = getSelectionSearchString(editor);
60
assert.strictEqual(searchStringSelectionBCDE, 'BC DE');
61
62
});
63
});
64
65
test('search string with multiline selection', () => {
66
withTestCodeEditor([
67
'ABC DEF',
68
'0123 456'
69
], {}, (editor) => {
70
71
// Select first line and newline
72
editor.setSelection(new Range(1, 1, 2, 1));
73
const searchStringSelectionWholeLine = getSelectionSearchString(editor);
74
assert.strictEqual(searchStringSelectionWholeLine, null);
75
76
// Select first line and chunk of second
77
editor.setSelection(new Range(1, 1, 2, 4));
78
const searchStringSelectionTwoLines = getSelectionSearchString(editor);
79
assert.strictEqual(searchStringSelectionTwoLines, null);
80
81
// Select end of first line newline and chunk of second
82
editor.setSelection(new Range(1, 7, 2, 4));
83
const searchStringSelectionSpanLines = getSelectionSearchString(editor);
84
assert.strictEqual(searchStringSelectionSpanLines, null);
85
86
});
87
});
88
89
});
90
91