From 178b92d380eea8a787fc9e3623d35c320785eed8 Mon Sep 17 00:00:00 2001 From: Samuel Mannehed Date: Fri, 15 Jun 2018 11:53:51 +0200 Subject: [PATCH] Add rQshiftStr unit test for large strings --- tests/test.websock.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tests/test.websock.js b/tests/test.websock.js index 02ec2703..eb46df58 100644 --- a/tests/test.websock.js +++ b/tests/test.websock.js @@ -86,6 +86,30 @@ describe('Websock', function() { sock.rQshiftStr(); expect(sock.rQlen()).to.equal(0); }); + + it('should be able to handle very large strings', function () { + const BIG_LEN = 500000; + const RQ_BIG = new Uint8Array(BIG_LEN); + let expected = ""; + let letterCode = 'a'.charCodeAt(0); + for (let i = 0; i < BIG_LEN; i++) { + RQ_BIG[i] = letterCode; + expected += String.fromCharCode(letterCode); + + if (letterCode < 'z'.charCodeAt(0)) { + letterCode++; + } else { + letterCode = 'a'.charCodeAt(0); + } + } + sock._rQ.set(RQ_BIG); + sock._rQlen = RQ_BIG.length; + + const shifted = sock.rQshiftStr(); + + expect(shifted).to.be.equal(expected); + expect(sock.rQlen()).to.equal(0); + }); }); describe('rQshiftBytes', function () {