@@ -236,6 +236,13 @@ describe('Test gl plot interactions', function() {
236236
237237 it ( 'should respond to drag interactions' , function ( done ) {
238238
239+ function mouseTo ( p0 , p1 ) {
240+ mouseEvent ( 'mousemove' , p0 [ 0 ] , p0 [ 1 ] ) ;
241+ mouseEvent ( 'mousedown' , p0 [ 0 ] , p0 [ 1 ] , { buttons : 1 } ) ;
242+ mouseEvent ( 'mousemove' , p1 [ 0 ] , p1 [ 1 ] , { buttons : 1 } ) ;
243+ mouseEvent ( 'mouseup' , p1 [ 0 ] , p1 [ 1 ] ) ;
244+ }
245+
239246 jasmine . addMatchers ( customMatchers ) ;
240247
241248 var precision = 5 ;
@@ -263,14 +270,10 @@ describe('Test gl plot interactions', function() {
263270 expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( originalY , precision ) ;
264271
265272 setTimeout ( function ( ) {
266-
267- mouseEvent ( 'mousemove' , 200 , 200 ) ;
268-
269273 relayoutCallback . calls . reset ( ) ;
270274
271275 // Drag scene along the X axis
272-
273- mouseEvent ( 'mousemove' , 220 , 200 , { buttons : 1 } ) ;
276+ mouseTo ( [ 200 , 200 ] , [ 220 , 200 ] ) ;
274277
275278 expect ( gd . layout . xaxis . autorange ) . toBe ( false ) ;
276279 expect ( gd . layout . yaxis . autorange ) . toBe ( false ) ;
@@ -279,36 +282,31 @@ describe('Test gl plot interactions', function() {
279282 expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( originalY , precision ) ;
280283
281284 // Drag scene back along the X axis
282-
283- mouseEvent ( 'mousemove' , 200 , 200 , { buttons : 1 } ) ;
285+ mouseTo ( [ 220 , 200 ] , [ 200 , 200 ] ) ;
284286
285287 expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( originalX , precision ) ;
286288 expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( originalY , precision ) ;
287289
288290 // Drag scene along the Y axis
289-
290- mouseEvent ( 'mousemove' , 200 , 150 , { buttons : 1 } ) ;
291+ mouseTo ( [ 200 , 200 ] , [ 200 , 150 ] ) ;
291292
292293 expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( originalX , precision ) ;
293294 expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( newY , precision ) ;
294295
295296 // Drag scene back along the Y axis
296-
297- mouseEvent ( 'mousemove' , 200 , 200 , { buttons : 1 } ) ;
297+ mouseTo ( [ 200 , 150 ] , [ 200 , 200 ] ) ;
298298
299299 expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( originalX , precision ) ;
300300 expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( originalY , precision ) ;
301301
302302 // Drag scene along both the X and Y axis
303-
304- mouseEvent ( 'mousemove' , 220 , 150 , { buttons : 1 } ) ;
303+ mouseTo ( [ 200 , 200 ] , [ 220 , 150 ] ) ;
305304
306305 expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( newX , precision ) ;
307306 expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( newY , precision ) ;
308307
309308 // Drag scene back along the X and Y axis
310-
311- mouseEvent ( 'mousemove' , 200 , 200 , { buttons : 1 } ) ;
309+ mouseTo ( [ 220 , 150 ] , [ 200 , 200 ] ) ;
312310
313311 expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( originalX , precision ) ;
314312 expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( originalY , precision ) ;
0 commit comments