diff options
author | Samuel Mannehed <samuel@cendio.se> | 2021-09-03 16:51:36 +0200 |
---|---|---|
committer | Samuel Mannehed <samuel@cendio.se> | 2021-09-03 16:52:20 +0200 |
commit | 375f36c57544dd89c042a6beceff93a2430f2358 (patch) | |
tree | 0668e29b97e1b003129fedadc1102c8488a23e65 /tests | |
parent | a9c2ff30b636cf5bb0c5f183302646a5b6ec8481 (diff) | |
download | novnc-375f36c57544dd89c042a6beceff93a2430f2358.tar.gz |
Modify unit tests to work with ResizeObserver
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test.rfb.js | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/tests/test.rfb.js b/tests/test.rfb.js index 404f7db..5f50581 100644 --- a/tests/test.rfb.js +++ b/tests/test.rfb.js @@ -71,6 +71,18 @@ function deflateWithSize(data) { describe('Remote Frame Buffer Protocol Client', function () { let clock; let raf; + let fakeResizeObserver = null; + const realObserver = window.ResizeObserver; + + class FakeResizeObserver { + constructor(handler) { + this.fire = handler; + fakeResizeObserver = this; + } + disconnect() {} + observe(target, options) {} + unobserve(target) {} + } before(FakeWebSocket.replace); after(FakeWebSocket.restore); @@ -80,6 +92,9 @@ describe('Remote Frame Buffer Protocol Client', function () { // sinon doesn't support this yet raf = window.requestAnimationFrame; window.requestAnimationFrame = setTimeout; + // We must do this in a 'before' since it needs to be set before + // the RFB constructor, which runs in beforeEach further down + window.ResizeObserver = FakeResizeObserver; // Use a single set of buffers instead of reallocating to // speed up tests const sock = new Websock(); @@ -100,6 +115,7 @@ describe('Remote Frame Buffer Protocol Client', function () { delete Websock.prototype.toString; this.clock.restore(); window.requestAnimationFrame = raf; + window.ResizeObserver = realObserver; }); let container; @@ -470,6 +486,7 @@ describe('Remote Frame Buffer Protocol Client', function () { describe('Clipping', function () { let client; + beforeEach(function () { client = makeRFB(); container.style.width = '70px'; @@ -495,8 +512,7 @@ describe('Remote Frame Buffer Protocol Client', function () { container.style.width = '40px'; container.style.height = '50px'; - const event = new UIEvent('resize'); - window.dispatchEvent(event); + fakeResizeObserver.fire(); clock.tick(); expect(client._display.viewportChangeSize).to.have.been.calledOnce; @@ -692,8 +708,7 @@ describe('Remote Frame Buffer Protocol Client', function () { container.style.width = '40px'; container.style.height = '50px'; - const event = new UIEvent('resize'); - window.dispatchEvent(event); + fakeResizeObserver.fire(); clock.tick(); expect(client._display.autoscale).to.have.been.calledOnce; @@ -782,8 +797,7 @@ describe('Remote Frame Buffer Protocol Client', function () { it('should request a resize when the container resizes', function () { container.style.width = '40px'; container.style.height = '50px'; - const event = new UIEvent('resize'); - window.dispatchEvent(event); + fakeResizeObserver.fire(); clock.tick(1000); expect(RFB.messages.setDesktopSize).to.have.been.calledOnce; @@ -793,16 +807,14 @@ describe('Remote Frame Buffer Protocol Client', function () { it('should not resize until the container size is stable', function () { container.style.width = '20px'; container.style.height = '30px'; - const event1 = new UIEvent('resize'); - window.dispatchEvent(event1); + fakeResizeObserver.fire(); clock.tick(400); expect(RFB.messages.setDesktopSize).to.not.have.been.called; container.style.width = '40px'; container.style.height = '50px'; - const event2 = new UIEvent('resize'); - window.dispatchEvent(event2); + fakeResizeObserver.fire(); clock.tick(400); expect(RFB.messages.setDesktopSize).to.not.have.been.called; |