diff options
author | Samuel Mannehed <samuel@cendio.se> | 2018-06-15 11:53:51 +0200 |
---|---|---|
committer | Samuel Mannehed <samuel@cendio.se> | 2018-06-15 11:53:51 +0200 |
commit | 178b92d380eea8a787fc9e3623d35c320785eed8 (patch) | |
tree | af3a336792e421a545dd0160289ec131e0ecca59 | |
parent | db9daa98a5dedc3ebefea3fe7c09a3fb505fa366 (diff) | |
download | novnc-178b92d380eea8a787fc9e3623d35c320785eed8.tar.gz |
Add rQshiftStr unit test for large strings
-rw-r--r-- | tests/test.websock.js | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/test.websock.js b/tests/test.websock.js index 02ec270..eb46df5 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 () { |