From 2925e976e0be378d25c3d315b203a26cff1d34fd Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Sat, 1 Jun 2019 14:29:26 -0700 Subject: [PATCH] Add test for bracketed paste Part of #2170 Part of #2117 --- src/InputHandler.api.ts | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/InputHandler.api.ts b/src/InputHandler.api.ts index 0d146d5d..863a38d7 100644 --- a/src/InputHandler.api.ts +++ b/src/InputHandler.api.ts @@ -229,6 +229,16 @@ describe('InputHandler Integration Tests', function(): void { assert.equal(await page.evaluate(`window.result`), '\x1b[?3;4R'); }); }); + + describe.only('SM: Set Mode', () => { + describe('CSI ? Pm h', () => { + it('Pm = 2004, Set bracketed paste mode', async function(): Promise { + assert.equal(await simulatePaste('foo'), 'foo'); + await page.evaluate(`window.term.write('\x1b[?2004h')`); + assert.equal(await simulatePaste('bar'), '\x1b[200~bar\x1b[201~'); + }); + }); + }); }); }); @@ -249,3 +259,16 @@ async function getLinesAsArray(count: number, start: number = 0): Promise { + const id = Math.floor(Math.random() * 1000000); + await page.evaluate(` + (function () { + window.term.onData(e => window.result_${id} = e); + const clipboardData = new DataTransfer(); + clipboardData.setData('text/plain', '${text}'); + window.term.textarea.dispatchEvent(new ClipboardEvent('paste', { clipboardData })); + })(); + `); + return await page.evaluate(`window.result_${id}`); +}