X-Git-Url: https://git.josue.xyz/?p=VSoRC%2F.git;a=blobdiff_plain;f=node_modules%2Fnode-pty%2Flib%2FunixTerminal.test.js;fp=node_modules%2Fnode-pty%2Flib%2FunixTerminal.test.js;h=62799e3bd886ef2954cca61dd85b8d064857fd11;hp=0000000000000000000000000000000000000000;hb=e79e4a5a87f3e84f7c1777f10a954453a69bf540;hpb=4339da12467b75fb8b6ca831f4bf0081c485ed2c diff --git a/node_modules/node-pty/lib/unixTerminal.test.js b/node_modules/node-pty/lib/unixTerminal.test.js new file mode 100644 index 0000000..62799e3 --- /dev/null +++ b/node_modules/node-pty/lib/unixTerminal.test.js @@ -0,0 +1,100 @@ +"use strict"; +/** + * Copyright (c) 2017, Daniel Imms (MIT License). + * Copyright (c) 2018, Microsoft Corporation (MIT License). + */ +Object.defineProperty(exports, "__esModule", { value: true }); +var unixTerminal_1 = require("./unixTerminal"); +var assert = require("assert"); +var path = require("path"); +var testUtils_test_1 = require("./testUtils.test"); +var FIXTURES_PATH = path.normalize(path.join(__dirname, '..', 'fixtures', 'utf8-character.txt')); +if (process.platform !== 'win32') { + describe('UnixTerminal', function () { + describe('Constructor', function () { + it('should set a valid pts name', function () { + var term = new unixTerminal_1.UnixTerminal('/bin/bash', [], {}); + var regExp; + if (process.platform === 'linux') { + // https://linux.die.net/man/4/pts + regExp = /^\/dev\/pts\/\d+$/; + } + if (process.platform === 'darwin') { + // https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man4/pty.4.html + regExp = /^\/dev\/tty[p-sP-S][a-z0-9]+$/; + } + if (regExp) { + assert.ok(regExp.test(term._pty), '"' + term._pty + '" should match ' + regExp.toString()); + } + }); + }); + describe('PtyForkEncodingOption', function () { + it('should default to utf8', function (done) { + var term = new unixTerminal_1.UnixTerminal('/bin/bash', ['-c', "cat \"" + FIXTURES_PATH + "\""]); + term.on('data', function (data) { + assert.equal(typeof data, 'string'); + assert.equal(data, '\u00E6'); + done(); + }); + }); + it('should return a Buffer when encoding is null', function (done) { + var term = new unixTerminal_1.UnixTerminal('/bin/bash', ['-c', "cat \"" + FIXTURES_PATH + "\""], { + encoding: null + }); + term.on('data', function (data) { + assert.equal(typeof data, 'object'); + assert.ok(data instanceof Buffer); + assert.equal(0xC3, data[0]); + assert.equal(0xA6, data[1]); + done(); + }); + }); + it('should support other encodings', function (done) { + var text = 'test æ!'; + var term = new unixTerminal_1.UnixTerminal(null, ['-c', 'echo "' + text + '"'], { + encoding: 'base64' + }); + var buffer = ''; + term.on('data', function (data) { + assert.equal(typeof data, 'string'); + buffer += data; + }); + term.on('exit', function () { + assert.equal(Buffer.alloc(8, buffer, 'base64').toString().replace('\r', '').replace('\n', ''), text); + done(); + }); + }); + }); + describe('open', function () { + var term; + afterEach(function () { + if (term) { + term.slave.destroy(); + term.master.destroy(); + } + }); + it('should open a pty with access to a master and slave socket', function (done) { + var doneCalled = false; + term = unixTerminal_1.UnixTerminal.open({}); + var slavebuf = ''; + term.slave.on('data', function (data) { + slavebuf += data; + }); + var masterbuf = ''; + term.master.on('data', function (data) { + masterbuf += data; + }); + testUtils_test_1.pollUntil(function () { + if (masterbuf === 'slave\r\nmaster\r\n' && slavebuf === 'master\n') { + done(); + return true; + } + return false; + }, 200, 10); + term.slave.write('slave\n'); + term.master.write('master\n'); + }); + }); + }); +} +//# sourceMappingURL=unixTerminal.test.js.map \ No newline at end of file