]> git.proxmox.com Git - mirror_novnc.git/commitdiff
Add rQshiftStr unit test for large strings
authorSamuel Mannehed <samuel@cendio.se>
Fri, 15 Jun 2018 09:53:51 +0000 (11:53 +0200)
committerSamuel Mannehed <samuel@cendio.se>
Fri, 15 Jun 2018 09:53:51 +0000 (11:53 +0200)
tests/test.websock.js

index 02ec2703339bb803252cd3532f9e1101a1b4f753..eb46df58ddcf19fa404e2fdee386ec7a1ed43c7c 100644 (file)
@@ -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 () {