Path: blob/main/src/vs/editor/contrib/lineSelection/test/browser/lineSelection.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 type { ICodeEditor } from '../../../../browser/editorBrowser.js';8import { EditorAction } from '../../../../browser/editorExtensions.js';9import { Position } from '../../../../common/core/position.js';10import { Selection } from '../../../../common/core/selection.js';11import { ExpandLineSelectionAction } from '../../browser/lineSelection.js';12import { withTestCodeEditor } from '../../../../test/browser/testCodeEditor.js';1314function executeAction(action: EditorAction, editor: ICodeEditor): void {15action.run(null!, editor, undefined);16}1718suite('LineSelection', () => {1920ensureNoDisposablesAreLeakedInTestSuite();2122test('', () => {23const LINE1 = ' \tMy First Line\t ';24const LINE2 = '\tMy Second Line';25const LINE3 = ' Third Line🐶';26const LINE4 = '';27const LINE5 = '1';2829const TEXT =30LINE1 + '\r\n' +31LINE2 + '\n' +32LINE3 + '\n' +33LINE4 + '\r\n' +34LINE5;3536withTestCodeEditor(TEXT, {}, (editor, viewModel) => {37const action = new ExpandLineSelectionAction();3839// 0 1 240// 01234 56789012345678 041// let LINE1 = ' \tMy First Line\t ';42editor.setPosition(new Position(1, 1));43executeAction(action, editor);44assert.deepStrictEqual(editor.getSelection(), new Selection(1, 1, 2, 1));4546editor.setPosition(new Position(1, 2));47executeAction(action, editor);48assert.deepStrictEqual(editor.getSelection(), new Selection(1, 1, 2, 1));4950editor.setPosition(new Position(1, 5));51executeAction(action, editor);52assert.deepStrictEqual(editor.getSelection(), new Selection(1, 1, 2, 1));5354editor.setPosition(new Position(1, 19));55executeAction(action, editor);56assert.deepStrictEqual(editor.getSelection(), new Selection(1, 1, 2, 1));5758editor.setPosition(new Position(1, 20));59executeAction(action, editor);60assert.deepStrictEqual(editor.getSelection(), new Selection(1, 1, 2, 1));6162editor.setPosition(new Position(1, 21));63executeAction(action, editor);64assert.deepStrictEqual(editor.getSelection(), new Selection(1, 1, 2, 1));65executeAction(action, editor);66assert.deepStrictEqual(editor.getSelection(), new Selection(1, 1, 3, 1));67executeAction(action, editor);68assert.deepStrictEqual(editor.getSelection(), new Selection(1, 1, 4, 1));69executeAction(action, editor);70assert.deepStrictEqual(editor.getSelection(), new Selection(1, 1, 5, 1));71executeAction(action, editor);72assert.deepStrictEqual(editor.getSelection(), new Selection(1, 1, 5, LINE5.length + 1));73executeAction(action, editor);74assert.deepStrictEqual(editor.getSelection(), new Selection(1, 1, 5, LINE5.length + 1));75});76});77});787980