From 6aab756ccdd43438814629f1263e14067e71e054 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Breitbart?= Date: Sun, 22 Sep 2019 20:57:00 +0200 Subject: [PATCH] integration callback tests --- test/api/Terminal.api.ts | 66 +++++++++++++++++++++++++++++++++++----- 1 file changed, 58 insertions(+), 8 deletions(-) diff --git a/test/api/Terminal.api.ts b/test/api/Terminal.api.ts index 29a361a9..034b04c4 100644 --- a/test/api/Terminal.api.ts +++ b/test/api/Terminal.api.ts @@ -51,6 +51,44 @@ describe('API Integration Tests', function(): void { assert.equal(await page.evaluate(`window.term.buffer.getLine(0).translateToString(true)`), 'foobar文'); }); + it('write with callback', async function(): Promise { + await openTerminal(); + await page.evaluate(` + window.term.write('foo', () => { window.__x = 'a'; }); + window.term.write('bar', () => { window.__x += 'b'; }); + window.term.write('文', () => { window.__x += 'c'; }); + `); + assert.equal(await page.evaluate(`window.term.buffer.getLine(0).translateToString(true)`), 'foobar文'); + assert.equal(await page.evaluate(`window.__x`), 'abc'); + }); + + it('write - bytes (UTF8)', async function(): Promise { + await openTerminal(); + await page.evaluate(` + // foo + window.term.write(new Uint8Array([102, 111, 111])); + // bar + window.term.write(new Uint8Array([98, 97, 114])); + // 文 + window.term.write(new Uint8Array([230, 150, 135])); + `); + assert.equal(await page.evaluate(`window.term.buffer.getLine(0).translateToString(true)`), 'foobar文'); + }); + + it('write - bytes (UTF8) with callback', async function(): Promise { + await openTerminal(); + await page.evaluate(` + // foo + window.term.write(new Uint8Array([102, 111, 111]), () => { window.__x = 'A'; }); + // bar + window.term.write(new Uint8Array([98, 97, 114]), () => { window.__x += 'B'; }); + // 文 + window.term.write(new Uint8Array([230, 150, 135]), () => { window.__x += 'C'; }); + `); + assert.equal(await page.evaluate(`window.term.buffer.getLine(0).translateToString(true)`), 'foobar文'); + assert.equal(await page.evaluate(`window.__x`), 'ABC'); + }); + it('writeln', async function(): Promise { await openTerminal(); await page.evaluate(` @@ -63,17 +101,29 @@ describe('API Integration Tests', function(): void { assert.equal(await page.evaluate(`window.term.buffer.getLine(2).translateToString(true)`), '文'); }); - it('writeUtf8', async function(): Promise { + it('writeln with callback', async function(): Promise { await openTerminal(); await page.evaluate(` - // foo - window.term.writeUtf8(new Uint8Array([102, 111, 111])); - // bar - window.term.writeUtf8(new Uint8Array([98, 97, 114])); - // 文 - window.term.writeUtf8(new Uint8Array([230, 150, 135])); + window.term.writeln('foo', () => { window.__x = '1'; }); + window.term.writeln('bar', () => { window.__x += '2'; }); + window.term.writeln('文', () => { window.__x += '3'; }); `); - assert.equal(await page.evaluate(`window.term.buffer.getLine(0).translateToString(true)`), 'foobar文'); + assert.equal(await page.evaluate(`window.term.buffer.getLine(0).translateToString(true)`), 'foo'); + assert.equal(await page.evaluate(`window.term.buffer.getLine(1).translateToString(true)`), 'bar'); + assert.equal(await page.evaluate(`window.term.buffer.getLine(2).translateToString(true)`), '文'); + assert.equal(await page.evaluate(`window.__x`), '123'); + }); + + it('writeln - bytes (UTF8)', async function(): Promise { + await openTerminal(); + await page.evaluate(` + window.term.writeln(new Uint8Array([102, 111, 111])); + window.term.writeln(new Uint8Array([98, 97, 114])); + window.term.writeln(new Uint8Array([230, 150, 135])); + `); + assert.equal(await page.evaluate(`window.term.buffer.getLine(0).translateToString(true)`), 'foo'); + assert.equal(await page.evaluate(`window.term.buffer.getLine(1).translateToString(true)`), 'bar'); + assert.equal(await page.evaluate(`window.term.buffer.getLine(2).translateToString(true)`), '文'); }); it('paste', async function(): Promise {