mirror of
https://github.com/openseadragon/openseadragon.git
synced 2025-02-17 23:33:14 +03:00
Unit tests for canvas drag, release, click events
Added test for canvas-drag, canvas-release, and canvas-click events
This commit is contained in:
parent
853a141994
commit
6049a7ecef
@ -5,12 +5,12 @@
|
||||
|
||||
module( 'Events', {
|
||||
setup: function () {
|
||||
var example = $( '<div id="example"></div>' ).appendTo( "#qunit-fixture" );
|
||||
var example = $( '<div id="eventsexample"></div>' ).appendTo( "#qunit-fixture" );
|
||||
|
||||
testLog.reset();
|
||||
|
||||
viewer = OpenSeadragon( {
|
||||
id: 'example',
|
||||
id: 'eventsexample',
|
||||
prefixUrl: '/build/openseadragon/images/',
|
||||
springStiffness: 100 // Faster animation = faster tests
|
||||
} );
|
||||
@ -60,4 +60,42 @@
|
||||
viewer.open( '/test/data/testpattern.dzi' );
|
||||
} );
|
||||
|
||||
// ----------
|
||||
asyncTest( 'canvas-drag canvas-release canvas-click', function () {
|
||||
var dragMoves = 10;
|
||||
var dragMovesHandled = 0;
|
||||
|
||||
var openHandler = function ( eventSender, eventData ) {
|
||||
viewer.removeHandler( 'open', openHandler );
|
||||
|
||||
viewer.addHandler( 'canvas-drag', canvasDragHandler );
|
||||
viewer.addHandler( 'canvas-release', canvasReleaseHandler );
|
||||
viewer.addHandler( 'canvas-click', canvasClickHandler );
|
||||
|
||||
Util.simulateViewerDrag( viewer, 0.25, 0.25, 1, 1, dragMoves );
|
||||
};
|
||||
|
||||
var canvasDragHandler = function ( eventSender, eventData ) {
|
||||
dragMovesHandled += 1;
|
||||
ok( true, 'canvas-drag event handled' );
|
||||
};
|
||||
|
||||
var canvasReleaseHandler = function ( eventSender, eventData ) {
|
||||
ok( true, 'canvas-release event handled' );
|
||||
};
|
||||
|
||||
var canvasClickHandler = function ( eventSender, eventData ) {
|
||||
viewer.removeHandler( 'canvas-drag', canvasDragHandler );
|
||||
viewer.removeHandler( 'canvas-release', canvasReleaseHandler );
|
||||
viewer.removeHandler( 'canvas-click', canvasClickHandler );
|
||||
ok( true, 'canvas-click event handled' );
|
||||
equal( dragMovesHandled, dragMoves, 'canvas-drag event count matches mousemove count' );
|
||||
viewer.close();
|
||||
start();
|
||||
};
|
||||
|
||||
viewer.addHandler( 'open', openHandler );
|
||||
viewer.open( '/test/data/testpattern.dzi' );
|
||||
} );
|
||||
|
||||
} )();
|
||||
|
42
test/test.js
42
test/test.js
@ -32,6 +32,48 @@
|
||||
.simulate( 'mouseup', event );
|
||||
},
|
||||
|
||||
simulateViewerDrag: function ( viewer, widthFactor, heightFactor, dx, dy, movecount ) {
|
||||
dx = dx || 1;
|
||||
dy = dy || 1;
|
||||
|
||||
movecount = movecount || 5;
|
||||
if ( movecount < 1 ) {
|
||||
movecount = 1;
|
||||
}
|
||||
|
||||
if ( widthFactor === undefined ) {
|
||||
widthFactor = 0.5;
|
||||
}
|
||||
|
||||
//TODO Redefine to be the middle by default
|
||||
if ( heightFactor === undefined ) {
|
||||
heightFactor = 0.5;
|
||||
}
|
||||
|
||||
widthFactor = Math.min( 1, Math.max( 0, widthFactor ) );
|
||||
//TODO Fix this. The max height should be 1/AR
|
||||
heightFactor = Math.min( 1, Math.max( 0, heightFactor ) );
|
||||
|
||||
var $canvas = $( viewer.element ).find( '.openseadragon-canvas' ).not( '.navigator .openseadragon-canvas' );
|
||||
var offset = $canvas.offset();
|
||||
var event = {
|
||||
clientX: offset.left + Math.floor( $canvas.width() * widthFactor ),
|
||||
clientY: offset.top + Math.floor( $canvas.height() * heightFactor )
|
||||
};
|
||||
|
||||
$canvas
|
||||
.simulate( 'mouseover', event )
|
||||
.simulate( 'mousedown', event );
|
||||
for ( var i = 0; i < movecount; i++ ) {
|
||||
event.clientX += dx;
|
||||
event.clientY += dy;
|
||||
$canvas
|
||||
.simulate( "mousemove", event );
|
||||
}
|
||||
$canvas
|
||||
.simulate( 'mouseup', event );
|
||||
},
|
||||
|
||||
initializeTestDOM: function () {
|
||||
$( "#qunit-fixture" )
|
||||
.append( '<div><div id="example"></div><div id="exampleNavigator"></div></div>' )
|
||||
|
Loading…
x
Reference in New Issue
Block a user