summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Mannehed <samuel@cendio.se>2018-06-15 11:53:51 +0200
committerSamuel Mannehed <samuel@cendio.se>2018-06-15 11:53:51 +0200
commit178b92d380eea8a787fc9e3623d35c320785eed8 (patch)
treeaf3a336792e421a545dd0160289ec131e0ecca59
parentdb9daa98a5dedc3ebefea3fe7c09a3fb505fa366 (diff)
downloadnovnc-178b92d380eea8a787fc9e3623d35c320785eed8.tar.gz
Add rQshiftStr unit test for large strings
-rw-r--r--tests/test.websock.js24
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 () {