Skip to content

Commit 46925b8

Browse files
committed
Draggable Tests: use jquery.simulate.js to simulate drag events
1 parent 6d88d26 commit 46925b8

File tree

1 file changed

+25
-133
lines changed

1 file changed

+25
-133
lines changed

tests/unit/draggable/draggable_options.js

Lines changed: 25 additions & 133 deletions
Original file line numberDiff line numberDiff line change
@@ -278,146 +278,38 @@ test("{ cursorAt: false}, default", function() {
278278
});
279279
*/
280280

281-
test("{ cursorAt: { left: -5, top: -5 } }", function() {
282-
expect(4);
281+
test( "{ cursorAt: left, top }", function() {
282+
expect( 16 );
283283

284284
var deltaX = -3, deltaY = -3,
285-
offsetX = 5, offsetY = 5,
286-
cursorAtX = -5, cursorAtY = -5;
287-
288-
$.each(['relative', 'absolute'], function(i, position) {
289-
var before, pos, expected,
290-
el = $('#draggable' + (i + 1)).draggable({
291-
cursorAt: { left: cursorAtX, top: cursorAtY },
292-
drag: function(event, ui) {
293-
equal(ui.offset.left, expected.left, position + ' left');
294-
equal(ui.offset.top, expected.top, position + ' top');
295-
}
296-
});
297-
298-
before = el.offset();
299-
pos = {
300-
clientX: before.left + offsetX,
301-
clientY: before.top + offsetY
302-
};
303-
expected = {
304-
left: before.left + offsetX - cursorAtX + deltaX - TestHelpers.draggable.unreliableOffset,
305-
top: before.top + offsetY - cursorAtY + deltaY - TestHelpers.draggable.unreliableOffset
306-
};
307-
308-
// todo: replace this with simulated drag event
309-
el.simulate("mousedown", pos);
310-
pos.clientX += deltaX;
311-
pos.clientY += deltaY;
312-
$(document).simulate("mousemove", pos);
313-
el.simulate("mouseup", pos);
314-
});
315-
});
316-
317-
test("{ cursorAt: { right: 10, bottom: 20 } }", function() {
318-
expect(4);
319-
320-
var deltaX = -3, deltaY = -3,
321-
offsetX = 5, offsetY = 5,
322-
cursorAtX = 10, cursorAtY = 20;
323-
324-
$.each(['relative', 'absolute'], function(i, position) {
325-
var before, pos, expected,
326-
el = $('#draggable' + (i + 1)).draggable({
327-
cursorAt: { right: cursorAtX, bottom: cursorAtY },
328-
drag: function(event, ui) {
329-
equal(ui.offset.left, expected.left, position + ' left');
330-
equal(ui.offset.top, expected.top, position + ' top');
331-
}
332-
});
333-
before = el.offset();
334-
pos = {
335-
clientX: before.left + offsetX,
336-
clientY: before.top + offsetY
285+
tests = {
286+
"{ left: -5, top: -5 }": { x: -5, y: -5, cursorAt : { left: -5, top: -5 } },
287+
"[ 10, 20 ]": { x: 10, y: 20, cursorAt : [ 10, 20 ] },
288+
"{ left: 20, top: 40 }": { x: 20, y: 40, cursorAt : { left: 20, top: 40 } },
289+
"{ right: 10, bottom: 20 }": { x: 10, y: 20, cursorAt : { right: 10, bottom: 20 } }
337290
};
338-
expected = {
339-
left: before.left + offsetX - el.width() + cursorAtX + deltaX - TestHelpers.draggable.unreliableOffset,
340-
top: before.top + offsetY - el.height() + cursorAtY + deltaY - TestHelpers.draggable.unreliableOffset
341-
};
342-
343-
// todo: replace this with simulated drag event
344-
el.simulate("mousedown", pos);
345-
pos.clientX += deltaX;
346-
pos.clientY += deltaY;
347-
$(document).simulate("mousemove", pos);
348-
el.simulate("mouseup", pos);
349-
});
350-
});
351291

352-
test("{ cursorAt: [10, 20] }", function() {
353-
expect(4);
354-
355-
var deltaX = -3, deltaY = -3,
356-
offsetX = 5, offsetY = 5,
357-
cursorAtX = 10, cursorAtY = 20;
358-
359-
$.each(['relative', 'absolute'], function(i, position) {
360-
var before, pos, expected,
361-
el = $('#draggable' + (i + 1)).draggable({
362-
cursorAt: { left: cursorAtX, top: cursorAtY },
363-
drag: function(event, ui) {
364-
equal(ui.offset.left, expected.left, position + ' left');
365-
equal(ui.offset.top, expected.top, position + ' top');
366-
}
292+
$.each( tests, function( testName, testData ) {
293+
$.each( [ "relative", "absolute" ], function( i, position ) {
294+
var el = $( "#draggable" + ( i + 1 ) ).draggable({
295+
cursorAt: testData.cursorAt,
296+
drag: function( event, ui ) {
297+
if( testData.cursorAt.right ) {
298+
equal( ui.helper.width() - ( event.clientX - ui.offset.left ), testData.x, testName + " " + position + " left" );
299+
equal( ui.helper.height() - ( event.clientY - ui.offset.top ), testData.y, testName + position + " top" );
300+
} else {
301+
equal( event.clientX - ui.offset.left, testData.x, testName + " " + position + " left" );
302+
equal( event.clientY - ui.offset.top, testData.y, testName + " " + position + " top" );
303+
}
304+
}
367305
});
368306

369-
before = el.offset();
370-
pos = {
371-
clientX: before.left + offsetX,
372-
clientY: before.top + offsetY
373-
};
374-
expected = {
375-
left: before.left + offsetX - cursorAtX + deltaX - TestHelpers.draggable.unreliableOffset,
376-
top: before.top + offsetY - cursorAtY + deltaY - TestHelpers.draggable.unreliableOffset
377-
};
378-
379-
// todo: replace this with simulated drag event
380-
el.simulate("mousedown", pos);
381-
pos.clientX += deltaX;
382-
pos.clientY += deltaY;
383-
$(document).simulate("mousemove", pos);
384-
el.simulate("mouseup", pos);
385-
});
386-
});
387-
388-
test("{ cursorAt: '20, 40' }", function() {
389-
expect(4);
390-
391-
var deltaX = -3, deltaY = -3,
392-
offsetX = 5, offsetY = 5,
393-
cursorAtX = 20, cursorAtY = 40;
394-
395-
$.each(['relative', 'absolute'], function(i, position) {
396-
var before, pos, expected,
397-
el = $('#draggable' + (i + 1)).draggable({
398-
cursorAt: { left: cursorAtX, top: cursorAtY },
399-
drag: function(event, ui) {
400-
equal(ui.offset.left, expected.left, position + ' left');
401-
equal(ui.offset.top, expected.top, position + ' top');
402-
}
307+
el.simulate( "drag", {
308+
moves: 1,
309+
dx: deltaX,
310+
dy: deltaY
403311
});
404-
405-
before = el.offset();
406-
pos = {
407-
clientX: before.left + offsetX,
408-
clientY: before.top + offsetY
409-
};
410-
expected = {
411-
left: before.left + offsetX - cursorAtX + deltaX - TestHelpers.draggable.unreliableOffset,
412-
top: before.top + offsetY - cursorAtY + deltaY - TestHelpers.draggable.unreliableOffset
413-
};
414-
415-
// todo: replace this with simulated drag event
416-
el.simulate("mousedown", pos);
417-
pos.clientX += deltaX;
418-
pos.clientY += deltaY;
419-
$(document).simulate("mousemove", pos);
420-
el.simulate("mouseup", pos);
312+
});
421313
});
422314
});
423315

0 commit comments

Comments
 (0)