Path: blob/main/src/vs/editor/contrib/find/test/browser/find.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 { Position } from '../../../../common/core/position.js';8import { Range } from '../../../../common/core/range.js';9import { getSelectionSearchString } from '../../browser/findController.js';10import { withTestCodeEditor } from '../../../../test/browser/testCodeEditor.js';111213suite('Find', () => {1415ensureNoDisposablesAreLeakedInTestSuite();1617test('search string at position', () => {18withTestCodeEditor([19'ABC DEF',20'0123 456'21], {}, (editor) => {2223// The cursor is at the very top, of the file, at the first ABC24const searchStringAtTop = getSelectionSearchString(editor);25assert.strictEqual(searchStringAtTop, 'ABC');2627// Move cursor to the end of ABC28editor.setPosition(new Position(1, 3));29const searchStringAfterABC = getSelectionSearchString(editor);30assert.strictEqual(searchStringAfterABC, 'ABC');3132// Move cursor to DEF33editor.setPosition(new Position(1, 5));34const searchStringInsideDEF = getSelectionSearchString(editor);35assert.strictEqual(searchStringInsideDEF, 'DEF');3637});38});3940test('search string with selection', () => {41withTestCodeEditor([42'ABC DEF',43'0123 456'44], {}, (editor) => {4546// Select A of ABC47editor.setSelection(new Range(1, 1, 1, 2));48const searchStringSelectionA = getSelectionSearchString(editor);49assert.strictEqual(searchStringSelectionA, 'A');5051// Select BC of ABC52editor.setSelection(new Range(1, 2, 1, 4));53const searchStringSelectionBC = getSelectionSearchString(editor);54assert.strictEqual(searchStringSelectionBC, 'BC');5556// Select BC DE57editor.setSelection(new Range(1, 2, 1, 7));58const searchStringSelectionBCDE = getSelectionSearchString(editor);59assert.strictEqual(searchStringSelectionBCDE, 'BC DE');6061});62});6364test('search string with multiline selection', () => {65withTestCodeEditor([66'ABC DEF',67'0123 456'68], {}, (editor) => {6970// Select first line and newline71editor.setSelection(new Range(1, 1, 2, 1));72const searchStringSelectionWholeLine = getSelectionSearchString(editor);73assert.strictEqual(searchStringSelectionWholeLine, null);7475// Select first line and chunk of second76editor.setSelection(new Range(1, 1, 2, 4));77const searchStringSelectionTwoLines = getSelectionSearchString(editor);78assert.strictEqual(searchStringSelectionTwoLines, null);7980// Select end of first line newline and chunk of second81editor.setSelection(new Range(1, 7, 2, 4));82const searchStringSelectionSpanLines = getSelectionSearchString(editor);83assert.strictEqual(searchStringSelectionSpanLines, null);8485});86});8788});899091