Don't reset the url
This commit is contained in:
@@ -8,7 +8,7 @@ import { InputHandler } from 'common/InputHandler';
|
||||
import { IBufferLine, IAttributeData, IColorEvent, ColorIndex, ColorRequestType } from 'common/Types';
|
||||
import { DEFAULT_ATTR_DATA } from 'common/buffer/BufferLine';
|
||||
import { CellData } from 'common/buffer/CellData';
|
||||
import { Attributes, UnderlineStyle } from 'common/buffer/Constants';
|
||||
import { Attributes, BgFlags, UnderlineStyle } from 'common/buffer/Constants';
|
||||
import { AttributeData } from 'common/buffer/AttributeData';
|
||||
import { Params } from 'common/parser/Params';
|
||||
import { MockCoreService, MockBufferService, MockOptionsService, MockLogService, MockCoreMouseService, MockCharsetService, MockUnicodeService, MockOscLinkService } from 'common/TestUtils.test';
|
||||
@@ -1689,6 +1689,40 @@ describe('InputHandler', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe.only('Reset text attributes (SGR 0)', () => {
|
||||
it('resets every attributes if there is no url', async () => {
|
||||
await inputHandler.parseP('\x1b[30m\x1b[40m\x1b[4m');
|
||||
assert.notEqual(inputHandler.curAttrData.fg, 0);
|
||||
assert.notEqual(inputHandler.curAttrData.bg, 0);
|
||||
assert.isFalse(inputHandler.curAttrData.extended.isEmpty());
|
||||
|
||||
await inputHandler.parseP('\x1b[m');
|
||||
assert.equal(inputHandler.curAttrData.fg, 0);
|
||||
assert.equal(inputHandler.curAttrData.bg, 0);
|
||||
assert.isTrue(inputHandler.curAttrData.extended.isEmpty());
|
||||
});
|
||||
|
||||
it('resets every attributes except for the url', async () => {
|
||||
await inputHandler.parseP('\x1b[30m\x1b[40m\x1b[4m');
|
||||
await inputHandler.parseP('\x1b]8;;http://example.com\x1b\\');
|
||||
assert.notEqual(inputHandler.curAttrData.fg, 0);
|
||||
assert.notEqual(inputHandler.curAttrData.bg, 0);
|
||||
assert.notEqual(inputHandler.curAttrData.extended.ext, 0);
|
||||
const urlId = inputHandler.curAttrData.extended.urlId;
|
||||
assert.notEqual(urlId, 0);
|
||||
|
||||
await inputHandler.parseP('\x1b[m');
|
||||
assert.equal(inputHandler.curAttrData.fg, 0);
|
||||
assert.equal(inputHandler.curAttrData.bg, BgFlags.HAS_EXTENDED);
|
||||
assert.equal(inputHandler.curAttrData.extended.urlId, urlId);
|
||||
// Check that `extended._ext === 0`. Note that `extended.ext` does not
|
||||
// equal `extended._ext` because it is affected by the url.
|
||||
const extended = inputHandler.curAttrData.extended.clone();
|
||||
extended.urlId = 0;
|
||||
assert.equal(extended.ext, 0);
|
||||
});
|
||||
});
|
||||
|
||||
describe('extended underline style support (SGR 4)', () => {
|
||||
beforeEach(() => {
|
||||
bufferService.resize(10, 5);
|
||||
|
||||
Reference in New Issue
Block a user