Add some tests

This commit is contained in:
Simon Lamon
2021-11-10 09:42:45 +00:00
parent 2c65d96863
commit 317641c3bb
7 changed files with 74 additions and 14 deletions
+17 -1
View File
@@ -11,7 +11,7 @@ import { IBufferService, IUnicodeService } from 'common/services/Services';
import { Linkifier } from 'browser/Linkifier';
import { MockLogService, MockUnicodeService } from 'common/TestUtils.test';
import { IRegisteredLinkMatcher, IMouseZoneManager, IMouseZone } from 'browser/Types';
import { IMarker } from 'common/Types';
import { IMarker, ITerminalOptions } from 'common/Types';
const INIT_COLS = 80;
const INIT_ROWS = 24;
@@ -1501,6 +1501,22 @@ describe('Terminal', () => {
assert.deepEqual(markers.map(el => el.line), [-1, -1, 0, 1, 2]);
});
});
describe('options', () => {
beforeEach(async () => {
term = new TestTerminal({});
});
it('get options', () => {
assert.equal(term.options.cols, 80);
assert.equal(term.options.rows, 24);
});
it('set options', async () => {
term.options.cols = 40;
assert.equal(term.options.cols, 40);
term.options.rows = 20;
assert.equal(term.options.rows, 20);
});
});
});
class TestLinkifier extends Linkifier {
-7
View File
@@ -74,13 +74,6 @@ export class Terminal extends CoreTerminal implements ITerminal {
public browser: IBrowser = Browser as any;
public get options(): ITerminalOptions { return this.optionsService.options; }
public set options(options: ITerminalOptions) {
for (const key in options) {
this.optionsService.options[key] = options[key];
}
}
private _customKeyEventHandler: CustomKeyEventHandler | undefined;
// browser services
+1
View File
@@ -147,6 +147,7 @@ export class MockTerminal implements ITerminal {
public linkifier2!: ILinkifier2;
public isFocused!: boolean;
public options: ITerminalOptions = {};
public publicOptions: ITerminalOptions = {};
public element!: HTMLElement;
public screenElement!: HTMLElement;
public rowContainer!: HTMLElement;
+1
View File
@@ -16,6 +16,7 @@ export interface ITerminal extends IPublicTerminal, ICoreTerminal {
browser: IBrowser;
buffer: IBuffer;
viewport: IViewport | undefined;
publicOptions: ITerminalOptions;
options: ITerminalOptions;
linkifier: ILinkifier;
linkifier2: ILinkifier2;
+43
View File
@@ -0,0 +1,43 @@
/**
* Copyright (c) 2016 The xterm.js authors. All rights reserved.
* @license MIT
*/
import { Terminal } from 'browser/public/Terminal';
import { assert } from 'chai';
import { ITerminalOptions } from 'common/Types';
const INIT_COLS = 80;
const INIT_ROWS = 24;
describe('Public Terminal', () => {
let term: Terminal;
const termOptions = {
cols: INIT_COLS,
rows: INIT_ROWS
};
describe('options', () => {
beforeEach(async () => {
term = new Terminal(termOptions);
});
it('get options', () => {
const options: ITerminalOptions = term.options;
assert.equal(options.cols, 80);
assert.equal(options.rows, 24);
});
it('set options', async () => {
const options: ITerminalOptions = term.options;
assert.throws(() => options.cols = 40);
assert.throws(() => options.rows = 20);
term.options.scrollback = 1;
assert.equal(term.options.scrollback, 1);
term.options= {
fontSize: 12,
fontFamily: 'Arial'
};
assert.equal(term.options.fontSize, 12);
assert.equal(term.options.fontFamily, 'Arial');
});
});
});
+2 -2
View File
@@ -90,10 +90,10 @@ export class Terminal implements ITerminalApi {
};
}
public get options(): ITerminalOptions {
return this._core.options;
return this._core.publicOptions;
}
public set options(options: ITerminalOptions) {
this._core.options = options;
this._core.publicOptions = options;
}
public blur(): void {
this._core.blur();