Add test for bracketed paste

Part of #2170
Part of #2117
This commit is contained in:
Daniel Imms
2019-06-01 14:29:26 -07:00
parent 919c53a4b4
commit 2925e976e0
+23
View File
@@ -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<any> {
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<string
}
return await page.evaluate(`[${text}]`);
}
async function simulatePaste(text: string): Promise<string> {
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}`);
}