From e21826f6cbf7a05b2adb592d2e02f8428dc08a0a Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Sat, 8 Jun 2019 19:40:18 -0700 Subject: [PATCH] Move MouseHelper.test into browser --- src/CompositionHelper.test.ts | 2 +- src/SelectionManager.test.ts | 3 ++- src/TestUtils.test.ts | 8 -------- src/browser/TestUtils.test.ts | 14 ++++++++++++++ src/{ => browser/input}/MouseHelper.test.ts | 19 ++++++++++--------- 5 files changed, 27 insertions(+), 19 deletions(-) create mode 100644 src/browser/TestUtils.test.ts rename src/{ => browser/input}/MouseHelper.test.ts (78%) diff --git a/src/CompositionHelper.test.ts b/src/CompositionHelper.test.ts index 156f5a44..2d28f55d 100644 --- a/src/CompositionHelper.test.ts +++ b/src/CompositionHelper.test.ts @@ -6,7 +6,7 @@ import { assert } from 'chai'; import { CompositionHelper } from './CompositionHelper'; import { ITerminal } from './Types'; -import { MockCharSizeService } from 'TestUtils.test'; +import { MockCharSizeService } from 'browser/TestUtils.test'; describe('CompositionHelper', () => { let terminal: ITerminal; diff --git a/src/SelectionManager.test.ts b/src/SelectionManager.test.ts index 87f7386a..5dc692af 100644 --- a/src/SelectionManager.test.ts +++ b/src/SelectionManager.test.ts @@ -10,10 +10,11 @@ import { BufferSet } from 'common/buffer/BufferSet'; import { ITerminal } from './Types'; import { IBuffer } from 'common/buffer/Types'; import { IBufferLine } from 'common/Types'; -import { MockTerminal, MockCharSizeService } from './TestUtils.test'; +import { MockTerminal } from './TestUtils.test'; import { MockOptionsService, MockBufferService } from 'common/TestUtils.test'; import { BufferLine, CellData } from 'common/buffer/BufferLine'; import { IBufferService } from 'common/services/Services'; +import { MockCharSizeService } from 'browser/TestUtils.test'; class TestMockTerminal extends MockTerminal { emit(event: string, data: any): void {} diff --git a/src/TestUtils.test.ts b/src/TestUtils.test.ts index f26708a6..bbe09508 100644 --- a/src/TestUtils.test.ts +++ b/src/TestUtils.test.ts @@ -14,7 +14,6 @@ import { Terminal } from './Terminal'; import { AttributeData } from 'common/buffer/BufferLine'; import { IColorManager, IColorSet, IMouseHelper } from 'browser/Types'; import { IOptionsService } from 'common/services/Services'; -import { ICharSizeService } from 'browser/services/Services'; export class TestTerminal extends Terminal { writeSync(data: string): void { @@ -428,10 +427,3 @@ export class MockCompositionHelper implements ICompositionHelper { return true; } } - -export class MockCharSizeService implements ICharSizeService { - get hasValidSize(): boolean { return this.width > 0 && this.height > 0; } - onCharSizeChange: IEvent; - constructor(public width: number, public height: number) {} - measure(): void {} -} diff --git a/src/browser/TestUtils.test.ts b/src/browser/TestUtils.test.ts new file mode 100644 index 00000000..7c965c8d --- /dev/null +++ b/src/browser/TestUtils.test.ts @@ -0,0 +1,14 @@ +/** + * Copyright (c) 2019 The xterm.js authors. All rights reserved. + * @license MIT + */ + +import { IEvent, EventEmitter2 } from 'common/EventEmitter2'; +import { ICharSizeService } from 'browser/services/Services'; + +export class MockCharSizeService implements ICharSizeService { + get hasValidSize(): boolean { return this.width > 0 && this.height > 0; } + onCharSizeChange: IEvent = new EventEmitter2().event; + constructor(public width: number, public height: number) {} + measure(): void {} +} diff --git a/src/MouseHelper.test.ts b/src/browser/input/MouseHelper.test.ts similarity index 78% rename from src/MouseHelper.test.ts rename to src/browser/input/MouseHelper.test.ts index 6f886d75..5d4b567c 100644 --- a/src/MouseHelper.test.ts +++ b/src/browser/input/MouseHelper.test.ts @@ -5,8 +5,8 @@ import jsdom = require('jsdom'); import { assert } from 'chai'; -import { MouseHelper } from './browser/input/MouseHelper'; -import { MockRenderer, MockCharSizeService } from './TestUtils.test'; +import { MouseHelper } from 'browser/input/MouseHelper'; +import { MockCharSizeService } from 'browser/TestUtils.test'; const CHAR_WIDTH = 10; const CHAR_HEIGHT = 20; @@ -17,16 +17,17 @@ describe('MouseHelper.getCoords', () => { beforeEach(() => { document = new jsdom.JSDOM('').window.document; - const renderer = new MockRenderer(); - renderer.dimensions = { - actualCellWidth: CHAR_WIDTH, - actualCellHeight: CHAR_HEIGHT + const mockRenderService = { + dimensions: { + actualCellWidth: CHAR_WIDTH, + actualCellHeight: CHAR_HEIGHT + } }; - mouseHelper = new MouseHelper(renderer as any, new MockCharSizeService(CHAR_WIDTH, CHAR_HEIGHT)); + mouseHelper = new MouseHelper(mockRenderService as any, new MockCharSizeService(CHAR_WIDTH, CHAR_HEIGHT)); }); it('should return the cell that was clicked', () => { - let coords: [number, number]; + let coords: [number, number] | undefined; coords = mouseHelper.getCoords({ clientX: CHAR_WIDTH / 2, clientY: CHAR_HEIGHT / 2 }, document.createElement('div'), 10, 10); assert.deepEqual(coords, [1, 1]); coords = mouseHelper.getCoords({ clientX: CHAR_WIDTH, clientY: CHAR_HEIGHT }, document.createElement('div'), 10, 10); @@ -38,7 +39,7 @@ describe('MouseHelper.getCoords', () => { }); it('should ensure the coordinates are returned within the terminal bounds', () => { - let coords: [number, number]; + let coords: [number, number] | undefined; coords = mouseHelper.getCoords({ clientX: -1, clientY: -1 }, document.createElement('div'), 10, 10); assert.deepEqual(coords, [1, 1]); // Event are double the cols/rows