Fix tests
This commit is contained in:
@@ -210,8 +210,8 @@ namespace methods_experimental {
|
||||
t.registerLinkMatcher(/foo/, () => true, {
|
||||
matchIndex: 1,
|
||||
priority: 1,
|
||||
validationCallback: (uri: string, element: HTMLElement, callback: (isValid: boolean) => void) => {
|
||||
console.log(uri, element, callback);
|
||||
validationCallback: (uri: string, callback: (isValid: boolean) => void) => {
|
||||
console.log(uri, callback);
|
||||
}
|
||||
});
|
||||
t.deregisterLinkMatcher(1);
|
||||
|
||||
@@ -42,6 +42,16 @@ describe('CompositionHelper', () => {
|
||||
},
|
||||
handler: (text: string) => {
|
||||
handledText += text;
|
||||
},
|
||||
buffer: {
|
||||
isCursorInViewport: true
|
||||
},
|
||||
charMeasure: {
|
||||
height: 10,
|
||||
width: 10
|
||||
},
|
||||
options: {
|
||||
lineHeight: 1
|
||||
}
|
||||
};
|
||||
handledText = '';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { assert, expect } from 'chai';
|
||||
import { Terminal } from './Terminal';
|
||||
import { MockViewport, MockCompositionHelper } from './utils/TestUtils.test';
|
||||
import { MockViewport, MockCompositionHelper, MockRenderer } from './utils/TestUtils.test';
|
||||
import { CHAR_DATA_CHAR_INDEX, CHAR_DATA_WIDTH_INDEX } from './Buffer';
|
||||
|
||||
const INIT_COLS = 80;
|
||||
@@ -21,6 +21,7 @@ describe('term.js addons', () => {
|
||||
rows: INIT_ROWS
|
||||
});
|
||||
term.refresh = () => {};
|
||||
(<any>term).renderer = new MockRenderer();
|
||||
term.viewport = new MockViewport();
|
||||
(<any>term).compositionHelper = new MockCompositionHelper();
|
||||
// Force synchronous writes
|
||||
|
||||
+2
-1
@@ -44,6 +44,7 @@ import { DEFAULT_ANSI_COLORS } from './renderer/ColorManager';
|
||||
import { IMouseZoneManager } from './input/Interfaces';
|
||||
import { MouseZoneManager } from './input/MouseZoneManager';
|
||||
import { initialize as initializeCharAtlas } from './renderer/CharAtlas';
|
||||
import { IRenderer } from './renderer/Interfaces';
|
||||
|
||||
// Declare for RequireJS in loadAddon
|
||||
declare var define: any;
|
||||
@@ -184,7 +185,7 @@ export class Terminal extends EventEmitter implements ITerminal, IInputHandlingT
|
||||
|
||||
private inputHandler: InputHandler;
|
||||
private parser: Parser;
|
||||
private renderer: Renderer;
|
||||
private renderer: IRenderer;
|
||||
public selectionManager: SelectionManager;
|
||||
private linkifier: Linkifier;
|
||||
public buffers: BufferSet;
|
||||
|
||||
@@ -31,7 +31,8 @@ describe('Viewport', () => {
|
||||
}
|
||||
},
|
||||
options: {
|
||||
scrollback: 10
|
||||
scrollback: 10,
|
||||
lineHeight: 1
|
||||
}
|
||||
};
|
||||
terminal.buffers = new BufferSet(terminal);
|
||||
|
||||
@@ -1,4 +1,17 @@
|
||||
import { ITerminal, ITerminalOptions } from '../Interfaces';
|
||||
import { ITerminal, ITerminalOptions, ITheme } from '../Interfaces';
|
||||
|
||||
export interface IRenderer {
|
||||
setTheme(theme: ITheme): IColorSet;
|
||||
onResize(cols: number, rows: number): void;
|
||||
onCharSizeChanged(charWidth: number, charHeight: number): void;
|
||||
onBlur(): void;
|
||||
onFocus(): void;
|
||||
onSelectionChanged(start: [number, number], end: [number, number]): void;
|
||||
onCursorMove(): void;
|
||||
onOptionsChanged(): void;
|
||||
clear(): void;
|
||||
queueRefresh(start: number, end: number): void;
|
||||
}
|
||||
|
||||
export interface IRenderLayer {
|
||||
/**
|
||||
|
||||
@@ -11,9 +11,9 @@ import { SelectionRenderLayer } from './SelectionRenderLayer';
|
||||
import { CursorRenderLayer } from './CursorRenderLayer';
|
||||
import { ColorManager } from './ColorManager';
|
||||
import { BaseRenderLayer } from './BaseRenderLayer';
|
||||
import { IRenderLayer, IColorSet } from './Interfaces';
|
||||
import { IRenderLayer, IColorSet, IRenderer } from './Interfaces';
|
||||
|
||||
export class Renderer {
|
||||
export class Renderer implements IRenderer {
|
||||
/** A queue of the rows to be refreshed */
|
||||
private _refreshRowsQueue: {start: number, end: number}[] = [];
|
||||
private _refreshAnimationFrame = null;
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
* @license MIT
|
||||
*/
|
||||
|
||||
import { ITerminal, IBuffer, IBufferSet, IBrowser, ICharMeasure, ISelectionManager, ITerminalOptions, IListenerType, IInputHandlingTerminal, IViewport, ICircularList, ICompositionHelper } from '../Interfaces';
|
||||
import { ITerminal, IBuffer, IBufferSet, IBrowser, ICharMeasure, ISelectionManager, ITerminalOptions, IListenerType, IInputHandlingTerminal, IViewport, ICircularList, ICompositionHelper, ITheme } from '../Interfaces';
|
||||
import { LineData } from '../Types';
|
||||
import { Buffer } from '../Buffer';
|
||||
import * as Browser from './Browser';
|
||||
import { IColorSet } from '../renderer/Interfaces';
|
||||
import { IColorSet, IRenderer } from '../renderer/Interfaces';
|
||||
|
||||
export class MockTerminal implements ITerminal {
|
||||
isFocused: boolean;
|
||||
@@ -204,6 +204,19 @@ export class MockBuffer implements IBuffer {
|
||||
}
|
||||
}
|
||||
|
||||
export class MockRenderer implements IRenderer {
|
||||
setTheme(theme: ITheme): IColorSet { return <IColorSet>{}; }
|
||||
onResize(cols: number, rows: number): void {}
|
||||
onCharSizeChanged(charWidth: number, charHeight: number): void {}
|
||||
onBlur(): void {}
|
||||
onFocus(): void {}
|
||||
onSelectionChanged(start: [number, number], end: [number, number]): void {}
|
||||
onCursorMove(): void {}
|
||||
onOptionsChanged(): void {}
|
||||
clear(): void {}
|
||||
queueRefresh(start: number, end: number): void {}
|
||||
}
|
||||
|
||||
export class MockViewport implements IViewport {
|
||||
onThemeChanged(colors: IColorSet): void {
|
||||
throw new Error('Method not implemented.');
|
||||
|
||||
Vendored
+3
-3
@@ -131,12 +131,12 @@ interface ILinkMatcherOptions {
|
||||
* A callback that validates an individual link, returning true if valid and
|
||||
* false if invalid.
|
||||
*/
|
||||
validationCallback?: (uri: string, element: HTMLElement, callback: (isValid: boolean) => void) => void;
|
||||
validationCallback?: (uri: string, callback: (isValid: boolean) => void) => void;
|
||||
|
||||
/**
|
||||
* A callback that fired when the mouse hovers over a link.
|
||||
*/
|
||||
hoverCallback?: LinkMatcherHandler;
|
||||
hoverCallback?: (event: MouseEvent, uri: string) => boolean | void;
|
||||
|
||||
/**
|
||||
* The priority of the link matcher, this defines the order in which the link
|
||||
@@ -290,7 +290,7 @@ declare module 'xterm' {
|
||||
* @param options Options for the link matcher.
|
||||
* @return The ID of the new matcher, this can be used to deregister.
|
||||
*/
|
||||
registerLinkMatcher(regex: RegExp, handler: (event: MouseEvent, uri: string) => boolean | void , options?: ILinkMatcherOptions): number;
|
||||
registerLinkMatcher(regex: RegExp, handler: (event: MouseEvent, uri: string) => boolean | void, options?: ILinkMatcherOptions): number;
|
||||
|
||||
/**
|
||||
* (EXPERIMENTAL) Deregisters a link matcher if it has been registered.
|
||||
|
||||
Reference in New Issue
Block a user