2009-02-01 00:25:58 +00:00
|
|
|
/*
|
|
|
|
* draggable_events.js
|
|
|
|
*/
|
|
|
|
(function($) {
|
|
|
|
|
|
|
|
module("draggable: events");
|
|
|
|
|
2012-05-06 03:12:00 +00:00
|
|
|
test("callbacks occurrence count", function() {
|
2009-02-01 00:25:58 +00:00
|
|
|
|
|
|
|
expect(3);
|
|
|
|
|
2012-11-03 20:17:16 +00:00
|
|
|
var start = 0,
|
|
|
|
stop = 0,
|
|
|
|
dragc = 0,
|
|
|
|
el = $("#draggable2").draggable({
|
|
|
|
start: function() { start++; },
|
|
|
|
drag: function() { dragc++; },
|
|
|
|
stop: function() { stop++; }
|
|
|
|
});
|
2009-02-01 00:25:58 +00:00
|
|
|
|
2012-12-09 02:27:37 +00:00
|
|
|
el.simulate( "drag", {
|
|
|
|
dx: 10,
|
|
|
|
dy: 10
|
|
|
|
});
|
2009-02-01 00:25:58 +00:00
|
|
|
|
2012-02-28 14:56:32 +00:00
|
|
|
equal(start, 1, "start callback should happen exactly once");
|
|
|
|
equal(dragc, 3, "drag callback should happen exactly once per mousemove");
|
|
|
|
equal(stop, 1, "stop callback should happen exactly once");
|
2009-02-01 00:25:58 +00:00
|
|
|
|
|
|
|
});
|
|
|
|
|
2010-01-28 16:35:59 +00:00
|
|
|
test("stopping the start callback", function() {
|
|
|
|
|
|
|
|
expect(3);
|
|
|
|
|
2012-11-03 20:17:16 +00:00
|
|
|
var start = 0,
|
|
|
|
stop = 0,
|
|
|
|
dragc = 0,
|
|
|
|
el = $("#draggable2").draggable({
|
|
|
|
start: function() { start++; return false; },
|
|
|
|
drag: function() { dragc++; },
|
|
|
|
stop: function() { stop++; }
|
|
|
|
});
|
2010-01-28 16:35:59 +00:00
|
|
|
|
2012-12-09 02:27:37 +00:00
|
|
|
el.simulate( "drag", {
|
|
|
|
dx: 10,
|
|
|
|
dy: 10
|
|
|
|
});
|
2010-01-28 16:35:59 +00:00
|
|
|
|
2012-02-28 14:56:32 +00:00
|
|
|
equal(start, 1, "start callback should happen exactly once");
|
|
|
|
equal(dragc, 0, "drag callback should not happen at all");
|
|
|
|
equal(stop, 0, "stop callback should not happen if there wasnt even a start");
|
2010-01-28 16:35:59 +00:00
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
test("stopping the drag callback", function() {
|
|
|
|
|
|
|
|
expect(3);
|
|
|
|
|
2012-11-03 20:17:16 +00:00
|
|
|
var start = 0,
|
|
|
|
stop = 0,
|
|
|
|
dragc = 0,
|
|
|
|
el = $("#draggable2").draggable({
|
|
|
|
start: function() { start++;},
|
|
|
|
drag: function() { dragc++; return false; },
|
|
|
|
stop: function() { stop++; }
|
|
|
|
});
|
2010-01-28 16:35:59 +00:00
|
|
|
|
2012-12-09 02:27:37 +00:00
|
|
|
el.simulate( "drag", {
|
|
|
|
dx: 10,
|
|
|
|
dy: 10
|
|
|
|
});
|
2010-01-28 16:35:59 +00:00
|
|
|
|
2012-02-28 14:56:32 +00:00
|
|
|
equal(start, 1, "start callback should happen exactly once");
|
|
|
|
equal(dragc, 1, "drag callback should happen exactly once");
|
|
|
|
equal(stop, 1, "stop callback should happen, as we need to actively stop the drag");
|
2010-01-28 16:35:59 +00:00
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
test("stopping the stop callback", function() {
|
|
|
|
|
|
|
|
expect(1);
|
|
|
|
|
2012-11-03 20:17:16 +00:00
|
|
|
var el = $("#draggable2").draggable({
|
2010-01-28 16:35:59 +00:00
|
|
|
helper: 'clone',
|
|
|
|
stop: function() { return false; }
|
|
|
|
});
|
|
|
|
|
2012-12-09 02:27:37 +00:00
|
|
|
el.simulate( "drag", {
|
|
|
|
dx: 10,
|
|
|
|
dy: 10
|
|
|
|
});
|
2010-01-28 16:35:59 +00:00
|
|
|
|
2012-11-09 18:28:13 +00:00
|
|
|
ok($("#draggable2").data('ui-draggable').helper, "the clone should not be deleted if the stop callback is stopped");
|
2010-01-28 16:35:59 +00:00
|
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
2009-02-01 00:25:58 +00:00
|
|
|
})(jQuery);
|