Dispatch mouse events in dragging unit tests
This makes our tests reflect the real world better, as we now send real mouse events instead of calling private methods directly.
This commit is contained in:
parent
c3934e0938
commit
dce8ab395b
|
@ -668,7 +668,10 @@ describe('Remote Frame Buffer protocol client', function () {
|
||||||
|
|
||||||
describe('Dragging', function () {
|
describe('Dragging', function () {
|
||||||
beforeEach(function () {
|
beforeEach(function () {
|
||||||
|
client = makeRFB();
|
||||||
client.dragViewport = true;
|
client.dragViewport = true;
|
||||||
|
client._display.resize(100, 100);
|
||||||
|
|
||||||
sinon.spy(RFB.messages, "pointerEvent");
|
sinon.spy(RFB.messages, "pointerEvent");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -677,35 +680,39 @@ describe('Remote Frame Buffer protocol client', function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should not send button messages when initiating viewport dragging', function () {
|
it('should not send button messages when initiating viewport dragging', function () {
|
||||||
client._handleMouseButton(13, 9, 0x001);
|
sendMouseButtonEvent(13, 9, true, 0, client);
|
||||||
expect(RFB.messages.pointerEvent).to.not.have.been.called;
|
expect(RFB.messages.pointerEvent).to.not.have.been.called;
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should send button messages when release without movement', function () {
|
it('should send button messages when release without movement', function () {
|
||||||
// Just up and down
|
// Just up and down
|
||||||
client._handleMouseButton(13, 9, 0x001);
|
sendMouseButtonEvent(13, 9, true, 0, client);
|
||||||
client._handleMouseButton(13, 9, 0x000);
|
sendMouseButtonEvent(13, 9, false, 0, client);
|
||||||
|
|
||||||
expect(RFB.messages.pointerEvent).to.have.been.calledTwice;
|
expect(RFB.messages.pointerEvent).to.have.been.calledTwice;
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should send button messages when release with small movement', function () {
|
it('should send button messages when release with small movement', function () {
|
||||||
// Small movement
|
// Small movement
|
||||||
client._handleMouseButton(13, 9, 0x001);
|
sendMouseButtonEvent(13, 9, true, 0, client);
|
||||||
client._handleMouseMove(15, 14);
|
sendMouseMoveEvent(15, 14, client);
|
||||||
client._handleMouseButton(15, 14, 0x000);
|
sendMouseButtonEvent(15, 14, false, 0, client);
|
||||||
|
|
||||||
expect(RFB.messages.pointerEvent).to.have.been.calledTwice;
|
expect(RFB.messages.pointerEvent).to.have.been.calledTwice;
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should not send button messages when in view only', function () {
|
it('should not send button messages when in view only', function () {
|
||||||
client._viewOnly = true;
|
client._viewOnly = true;
|
||||||
client._handleMouseButton(13, 9, 0x001);
|
|
||||||
client._handleMouseButton(13, 9, 0x000);
|
sendMouseButtonEvent(13, 9, true, 0, client);
|
||||||
|
sendMouseButtonEvent(13, 9, false, 0, client);
|
||||||
|
|
||||||
expect(RFB.messages.pointerEvent).to.not.have.been.called;
|
expect(RFB.messages.pointerEvent).to.not.have.been.called;
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should send button message directly when drag is disabled', function () {
|
it('should send button message directly when drag is disabled', function () {
|
||||||
client.dragViewport = false;
|
client.dragViewport = false;
|
||||||
client._handleMouseButton(13, 9, 0x001);
|
sendMouseButtonEvent(13, 9, true, 0, client);
|
||||||
expect(RFB.messages.pointerEvent).to.have.been.calledOnce;
|
expect(RFB.messages.pointerEvent).to.have.been.calledOnce;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -713,16 +720,16 @@ describe('Remote Frame Buffer protocol client', function () {
|
||||||
sinon.spy(client._display, "viewportChangePos");
|
sinon.spy(client._display, "viewportChangePos");
|
||||||
|
|
||||||
// Too small movement
|
// Too small movement
|
||||||
|
sendMouseButtonEvent(13, 9, true, 0, client);
|
||||||
|
sendMouseMoveEvent(18, 9, client);
|
||||||
|
|
||||||
client._handleMouseButton(13, 9, 0x001);
|
|
||||||
client._handleMouseMove(18, 9);
|
|
||||||
|
|
||||||
expect(RFB.messages.pointerEvent).to.not.have.been.called;
|
expect(RFB.messages.pointerEvent).to.not.have.been.called;
|
||||||
expect(client._display.viewportChangePos).to.not.have.been.called;
|
expect(client._display.viewportChangePos).to.not.have.been.called;
|
||||||
|
|
||||||
// Sufficient movement
|
// Sufficient movement
|
||||||
|
|
||||||
client._handleMouseMove(43, 9);
|
sendMouseMoveEvent(43, 9, client);
|
||||||
|
|
||||||
expect(RFB.messages.pointerEvent).to.not.have.been.called;
|
expect(RFB.messages.pointerEvent).to.not.have.been.called;
|
||||||
expect(client._display.viewportChangePos).to.have.been.calledOnce;
|
expect(client._display.viewportChangePos).to.have.been.calledOnce;
|
||||||
|
@ -732,7 +739,7 @@ describe('Remote Frame Buffer protocol client', function () {
|
||||||
|
|
||||||
// Now a small movement should move right away
|
// Now a small movement should move right away
|
||||||
|
|
||||||
client._handleMouseMove(43, 14);
|
sendMouseMoveEvent(43, 14, client);
|
||||||
|
|
||||||
expect(RFB.messages.pointerEvent).to.not.have.been.called;
|
expect(RFB.messages.pointerEvent).to.not.have.been.called;
|
||||||
expect(client._display.viewportChangePos).to.have.been.calledOnce;
|
expect(client._display.viewportChangePos).to.have.been.calledOnce;
|
||||||
|
@ -742,9 +749,9 @@ describe('Remote Frame Buffer protocol client', function () {
|
||||||
it('should not send button messages when dragging ends', function () {
|
it('should not send button messages when dragging ends', function () {
|
||||||
// First the movement
|
// First the movement
|
||||||
|
|
||||||
client._handleMouseButton(13, 9, 0x001);
|
sendMouseButtonEvent(13, 9, true, 0, client);
|
||||||
client._handleMouseMove(43, 9);
|
sendMouseMoveEvent(43, 9, client);
|
||||||
client._handleMouseButton(43, 9, 0x000);
|
sendMouseButtonEvent(43, 9, false, 0, client);
|
||||||
|
|
||||||
expect(RFB.messages.pointerEvent).to.not.have.been.called;
|
expect(RFB.messages.pointerEvent).to.not.have.been.called;
|
||||||
});
|
});
|
||||||
|
@ -752,15 +759,15 @@ describe('Remote Frame Buffer protocol client', function () {
|
||||||
it('should terminate viewport dragging on a button up event', function () {
|
it('should terminate viewport dragging on a button up event', function () {
|
||||||
// First the dragging movement
|
// First the dragging movement
|
||||||
|
|
||||||
client._handleMouseButton(13, 9, 0x001);
|
sendMouseButtonEvent(13, 9, true, 0, client);
|
||||||
client._handleMouseMove(43, 9);
|
sendMouseMoveEvent(43, 9, client);
|
||||||
client._handleMouseButton(43, 9, 0x000);
|
sendMouseButtonEvent(43, 9, false, 0, client);
|
||||||
|
|
||||||
// Another movement now should not move the viewport
|
// Another movement now should not move the viewport
|
||||||
|
|
||||||
sinon.spy(client._display, "viewportChangePos");
|
sinon.spy(client._display, "viewportChangePos");
|
||||||
|
|
||||||
client._handleMouseMove(43, 59);
|
sendMouseMoveEvent(43, 59, client);
|
||||||
|
|
||||||
expect(client._display.viewportChangePos).to.not.have.been.called;
|
expect(client._display.viewportChangePos).to.not.have.been.called;
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue