From c387180a4728361def4af51efc6769fab79e4cdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Breitbart?= Date: Fri, 24 May 2019 21:09:11 +0200 Subject: [PATCH] add color mode transition tests --- src/InputHandler.test.ts | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/src/InputHandler.test.ts b/src/InputHandler.test.ts index f2e8d93e..b9a494f9 100644 --- a/src/InputHandler.test.ts +++ b/src/InputHandler.test.ts @@ -495,6 +495,46 @@ describe('InputHandler', () => { assert.equal(term.curAttrData.getBgColorMode(), 0); assert.equal(term.curAttrData.getBgColor(), -1); }); + it('colormode transition RGB to 256', () => { + // enter RGB for FG and BG + term.writeSync(`\x1b[38;2;1;2;3;48;2;4;5;6m`); + // enter 256 for FG and BG + term.writeSync(`\x1b[38;5;255;48;5;255m`); + assert.equal(term.curAttrData.getFgColorMode(), Attributes.CM_P256); + assert.equal(term.curAttrData.getFgColor(), 255); + assert.equal(term.curAttrData.getBgColorMode(), Attributes.CM_P256); + assert.equal(term.curAttrData.getBgColor(), 255); + }); + it('colormode transition RGB to 16', () => { + // enter RGB for FG and BG + term.writeSync(`\x1b[38;2;1;2;3;48;2;4;5;6m`); + // enter 16 for FG and BG + term.writeSync(`\x1b[37;47m`); + assert.equal(term.curAttrData.getFgColorMode(), Attributes.CM_P16); + assert.equal(term.curAttrData.getFgColor(), 7); + assert.equal(term.curAttrData.getBgColorMode(), Attributes.CM_P16); + assert.equal(term.curAttrData.getBgColor(), 7); + }); + it('colormode transition 16 to 256', () => { + // enter 16 for FG and BG + term.writeSync(`\x1b[37;47m`); + // enter 256 for FG and BG + term.writeSync(`\x1b[38;5;255;48;5;255m`); + assert.equal(term.curAttrData.getFgColorMode(), Attributes.CM_P256); + assert.equal(term.curAttrData.getFgColor(), 255); + assert.equal(term.curAttrData.getBgColorMode(), Attributes.CM_P256); + assert.equal(term.curAttrData.getBgColor(), 255); + }); + it('colormode transition 256 to 16', () => { + // enter 256 for FG and BG + term.writeSync(`\x1b[38;5;255;48;5;255m`); + // enter 16 for FG and BG + term.writeSync(`\x1b[37;47m`); + assert.equal(term.curAttrData.getFgColorMode(), Attributes.CM_P16); + assert.equal(term.curAttrData.getFgColor(), 7); + assert.equal(term.curAttrData.getBgColorMode(), Attributes.CM_P16); + assert.equal(term.curAttrData.getBgColor(), 7); + }); it('should zero missing RGB values', () => { term.writeSync(`\x1b[38;2;1;2;3m`); term.writeSync(`\x1b[38;2;5m`);