2009-02-02 14:36:08 +00:00
|
|
|
/*
|
|
|
|
* sortable_events.js
|
|
|
|
*/
|
|
|
|
(function($) {
|
|
|
|
|
|
|
|
module("sortable: events");
|
|
|
|
|
2009-02-03 00:33:00 +00:00
|
|
|
test("start", function() {
|
2012-11-02 00:54:52 +00:00
|
|
|
expect( 7 );
|
2012-04-19 02:46:39 +00:00
|
|
|
|
2009-02-06 07:39:52 +00:00
|
|
|
var hash;
|
2012-12-09 02:27:37 +00:00
|
|
|
$("#sortable").sortable({
|
|
|
|
start: function( e, ui ) {
|
|
|
|
hash = ui;
|
|
|
|
}
|
|
|
|
}).find("li:eq(0)").simulate( "drag", {
|
|
|
|
dy: 10
|
|
|
|
});
|
2012-04-19 02:46:39 +00:00
|
|
|
|
|
|
|
ok(hash, 'start event triggered');
|
2009-02-06 07:39:52 +00:00
|
|
|
ok(hash.helper, 'UI hash includes: helper');
|
|
|
|
ok(hash.placeholder, 'UI hash includes: placeholder');
|
|
|
|
ok(hash.item, 'UI hash includes: item');
|
|
|
|
ok(!hash.sender, 'UI hash does not include: sender');
|
|
|
|
|
2012-11-02 00:54:52 +00:00
|
|
|
// todo: see if these events should actually have sane values in them
|
|
|
|
ok('position' in hash, 'UI hash includes: position');
|
|
|
|
ok('offset' in hash, 'UI hash includes: offset');
|
|
|
|
|
2012-04-19 02:46:39 +00:00
|
|
|
|
2009-02-03 00:33:00 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
test("sort", function() {
|
2012-11-02 00:54:52 +00:00
|
|
|
expect( 7 );
|
2012-04-19 02:46:39 +00:00
|
|
|
|
2009-02-06 07:39:52 +00:00
|
|
|
var hash;
|
2012-12-09 02:27:37 +00:00
|
|
|
$("#sortable").sortable({
|
|
|
|
sort: function( e, ui ) {
|
|
|
|
hash = ui;
|
|
|
|
}
|
|
|
|
}).find("li:eq(0)").simulate( "drag", {
|
|
|
|
dy: 10
|
|
|
|
});
|
2012-04-19 02:46:39 +00:00
|
|
|
|
|
|
|
ok(hash, 'sort event triggered');
|
2009-02-06 07:39:52 +00:00
|
|
|
ok(hash.helper, 'UI hash includes: helper');
|
|
|
|
ok(hash.placeholder, 'UI hash includes: placeholder');
|
2012-11-02 00:54:52 +00:00
|
|
|
ok(hash.position && ('top' in hash.position && 'left' in hash.position), 'UI hash includes: position');
|
2009-02-06 07:39:52 +00:00
|
|
|
ok(hash.offset && (hash.offset.top && hash.offset.left), 'UI hash includes: offset');
|
|
|
|
ok(hash.item, 'UI hash includes: item');
|
|
|
|
ok(!hash.sender, 'UI hash does not include: sender');
|
2012-04-19 02:46:39 +00:00
|
|
|
|
2009-02-03 00:33:00 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
test("change", function() {
|
2012-11-02 00:54:52 +00:00
|
|
|
expect( 8 );
|
2012-04-19 02:46:39 +00:00
|
|
|
|
2009-02-06 07:39:52 +00:00
|
|
|
var hash;
|
2012-12-09 02:27:37 +00:00
|
|
|
$("#sortable").sortable({
|
|
|
|
change: function( e, ui ) {
|
|
|
|
hash = ui;
|
|
|
|
}
|
|
|
|
}).find("li:eq(0)").simulate( "drag", {
|
|
|
|
dx: 1,
|
|
|
|
dy: 1
|
|
|
|
});
|
2012-04-19 02:46:39 +00:00
|
|
|
|
2009-02-06 07:39:52 +00:00
|
|
|
ok(!hash, '1px drag, change event should not be triggered');
|
2012-04-19 02:46:39 +00:00
|
|
|
|
2012-12-09 02:27:37 +00:00
|
|
|
$("#sortable").sortable({
|
|
|
|
change: function( e, ui ) {
|
|
|
|
hash = ui;
|
|
|
|
}
|
|
|
|
}).find("li:eq(0)").simulate( "drag", {
|
|
|
|
dy: 22
|
|
|
|
});
|
2012-04-19 02:46:39 +00:00
|
|
|
|
|
|
|
ok(hash, 'change event triggered');
|
2009-02-06 07:39:52 +00:00
|
|
|
ok(hash.helper, 'UI hash includes: helper');
|
|
|
|
ok(hash.placeholder, 'UI hash includes: placeholder');
|
2012-11-02 00:54:52 +00:00
|
|
|
ok(hash.position && ('top' in hash.position && 'left' in hash.position), 'UI hash includes: position');
|
2009-02-06 07:39:52 +00:00
|
|
|
ok(hash.offset && (hash.offset.top && hash.offset.left), 'UI hash includes: offset');
|
|
|
|
ok(hash.item, 'UI hash includes: item');
|
|
|
|
ok(!hash.sender, 'UI hash does not include: sender');
|
2012-04-19 02:46:39 +00:00
|
|
|
|
2009-02-03 00:33:00 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
test("beforeStop", function() {
|
2012-11-02 00:54:52 +00:00
|
|
|
expect( 7 );
|
2012-04-19 02:46:39 +00:00
|
|
|
|
2009-02-06 07:39:52 +00:00
|
|
|
var hash;
|
2012-12-09 02:27:37 +00:00
|
|
|
$("#sortable").sortable({
|
|
|
|
beforeStop: function( e, ui ) {
|
|
|
|
hash = ui;
|
|
|
|
}
|
|
|
|
}).find("li:eq(0)").simulate( "drag", {
|
|
|
|
dy: 20
|
|
|
|
});
|
2012-04-19 02:46:39 +00:00
|
|
|
|
|
|
|
ok(hash, 'beforeStop event triggered');
|
2009-02-06 07:39:52 +00:00
|
|
|
ok(hash.helper, 'UI hash includes: helper');
|
|
|
|
ok(hash.placeholder, 'UI hash includes: placeholder');
|
2012-11-02 00:54:52 +00:00
|
|
|
ok(hash.position && ('top' in hash.position && 'left' in hash.position), 'UI hash includes: position');
|
2009-02-06 07:39:52 +00:00
|
|
|
ok(hash.offset && (hash.offset.top && hash.offset.left), 'UI hash includes: offset');
|
|
|
|
ok(hash.item, 'UI hash includes: item');
|
|
|
|
ok(!hash.sender, 'UI hash does not include: sender');
|
2012-04-19 02:46:39 +00:00
|
|
|
|
2009-02-03 00:33:00 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
test("stop", function() {
|
2012-11-02 00:54:52 +00:00
|
|
|
expect( 7 );
|
2012-04-19 02:46:39 +00:00
|
|
|
|
2009-02-06 07:39:52 +00:00
|
|
|
var hash;
|
2012-12-09 02:27:37 +00:00
|
|
|
$("#sortable").sortable({
|
|
|
|
stop: function( e, ui ) {
|
|
|
|
hash = ui;
|
|
|
|
}
|
|
|
|
}).find("li:eq(0)").simulate( "drag", {
|
|
|
|
dy: 20
|
|
|
|
});
|
2012-04-19 02:46:39 +00:00
|
|
|
|
|
|
|
ok(hash, 'stop event triggered');
|
2009-02-06 07:39:52 +00:00
|
|
|
ok(!hash.helper, 'UI should not include: helper');
|
|
|
|
ok(hash.placeholder, 'UI hash includes: placeholder');
|
2012-11-02 00:54:52 +00:00
|
|
|
ok(hash.position && ('top' in hash.position && 'left' in hash.position), 'UI hash includes: position');
|
2009-02-06 07:39:52 +00:00
|
|
|
ok(hash.offset && (hash.offset.top && hash.offset.left), 'UI hash includes: offset');
|
|
|
|
ok(hash.item, 'UI hash includes: item');
|
|
|
|
ok(!hash.sender, 'UI hash does not include: sender');
|
2012-04-19 02:46:39 +00:00
|
|
|
|
2009-02-03 00:33:00 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
test("update", function() {
|
2012-11-02 00:54:52 +00:00
|
|
|
expect( 8 );
|
2012-04-19 02:46:39 +00:00
|
|
|
|
2009-02-06 07:39:52 +00:00
|
|
|
var hash;
|
2012-12-09 02:27:37 +00:00
|
|
|
$("#sortable").sortable({
|
|
|
|
update: function( e, ui ) {
|
|
|
|
hash = ui;
|
|
|
|
}
|
|
|
|
}).find("li:eq(0)").simulate( "drag", {
|
|
|
|
dx: 1,
|
|
|
|
dy: 1
|
|
|
|
});
|
2012-04-19 02:46:39 +00:00
|
|
|
|
2009-02-06 07:39:52 +00:00
|
|
|
ok(!hash, '1px drag, update event should not be triggered');
|
2012-04-19 02:46:39 +00:00
|
|
|
|
2012-12-09 02:27:37 +00:00
|
|
|
$("#sortable").sortable({
|
|
|
|
update: function( e, ui ) {
|
|
|
|
hash = ui;
|
|
|
|
}
|
|
|
|
}).find("li:eq(0)").simulate( "drag", {
|
|
|
|
dy: 22
|
|
|
|
});
|
2012-04-19 02:46:39 +00:00
|
|
|
|
|
|
|
ok(hash, 'update event triggered');
|
2009-02-06 07:39:52 +00:00
|
|
|
ok(!hash.helper, 'UI hash should not include: helper');
|
|
|
|
ok(hash.placeholder, 'UI hash includes: placeholder');
|
2012-11-02 00:54:52 +00:00
|
|
|
ok(hash.position && ('top' in hash.position && 'left' in hash.position), 'UI hash includes: position');
|
2009-02-06 07:39:52 +00:00
|
|
|
ok(hash.offset && (hash.offset.top && hash.offset.left), 'UI hash includes: offset');
|
|
|
|
ok(hash.item, 'UI hash includes: item');
|
|
|
|
ok(!hash.sender, 'UI hash does not include: sender');
|
2012-04-19 02:46:39 +00:00
|
|
|
|
2009-02-03 00:33:00 +00:00
|
|
|
});
|
|
|
|
|
2012-12-08 01:06:29 +00:00
|
|
|
test("#3019: Stop fires too early", function() {
|
2012-12-09 02:27:37 +00:00
|
|
|
expect(2);
|
2012-12-08 01:06:29 +00:00
|
|
|
|
|
|
|
var helper = null,
|
2012-12-09 02:27:37 +00:00
|
|
|
el = $("#sortable").sortable({
|
|
|
|
stop: function(event, ui) {
|
|
|
|
helper = ui.helper;
|
|
|
|
}
|
|
|
|
});
|
2012-12-08 01:06:29 +00:00
|
|
|
|
|
|
|
TestHelpers.sortable.sort($("li", el)[0], 0, 44, 2, 'Dragging the sortable');
|
|
|
|
equal(helper, null, "helper should be false");
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
test('#4752: link event firing on sortable with connect list', function () {
|
2012-12-09 02:27:37 +00:00
|
|
|
expect( 10 );
|
|
|
|
|
|
|
|
var fired = {},
|
|
|
|
hasFired = function (type) { return (type in fired) && (true === fired[type]); };
|
|
|
|
|
|
|
|
$('#sortable').clone().attr('id', 'sortable2').insertAfter('#sortable');
|
|
|
|
|
|
|
|
$('#qunit-fixture ul').sortable({
|
|
|
|
connectWith: '#qunit-fixture ul',
|
|
|
|
change: function () {
|
|
|
|
fired.change = true;
|
|
|
|
},
|
|
|
|
receive: function () {
|
|
|
|
fired.receive = true;
|
|
|
|
},
|
|
|
|
remove: function () {
|
|
|
|
fired.remove = true;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
$('#qunit-fixture ul').bind('click.ui-sortable-test', function () {
|
|
|
|
fired.click = true;
|
|
|
|
});
|
|
|
|
|
|
|
|
$('#sortable li:eq(0)').simulate('click');
|
|
|
|
ok(!hasFired('change'), 'Click only, change event should not have fired');
|
|
|
|
ok(hasFired('click'), 'Click event should have fired');
|
|
|
|
|
|
|
|
// Drag an item within the first list
|
|
|
|
fired = {};
|
|
|
|
$('#sortable li:eq(0)').simulate('drag', { dx: 0, dy: 40 });
|
|
|
|
ok(hasFired('change'), '40px drag, change event should have fired');
|
|
|
|
ok(!hasFired('receive'), 'Receive event should not have fired');
|
|
|
|
ok(!hasFired('remove'), 'Remove event should not have fired');
|
|
|
|
ok(!hasFired('click'), 'Click event should not have fired');
|
|
|
|
|
|
|
|
// Drag an item from the first list to the second, connected list
|
|
|
|
fired = {};
|
|
|
|
$('#sortable li:eq(0)').simulate('drag', { dx: 0, dy: 150 });
|
|
|
|
ok(hasFired('change'), '150px drag, change event should have fired');
|
|
|
|
ok(hasFired('receive'), 'Receive event should have fired');
|
|
|
|
ok(hasFired('remove'), 'Remove event should have fired');
|
|
|
|
ok(!hasFired('click'), 'Click event should not have fired');
|
2012-12-08 01:06:29 +00:00
|
|
|
});
|
|
|
|
|
2012-11-02 00:54:52 +00:00
|
|
|
/*
|
2009-02-03 00:33:00 +00:00
|
|
|
test("receive", function() {
|
|
|
|
ok(false, "missing test - untested code is broken code.");
|
|
|
|
});
|
|
|
|
|
|
|
|
test("remove", function() {
|
|
|
|
ok(false, "missing test - untested code is broken code.");
|
|
|
|
});
|
|
|
|
|
|
|
|
test("over", function() {
|
|
|
|
ok(false, "missing test - untested code is broken code.");
|
|
|
|
});
|
|
|
|
|
|
|
|
test("out", function() {
|
|
|
|
ok(false, "missing test - untested code is broken code.");
|
|
|
|
});
|
|
|
|
|
|
|
|
test("activate", function() {
|
|
|
|
ok(false, "missing test - untested code is broken code.");
|
|
|
|
});
|
|
|
|
|
|
|
|
test("deactivate", function() {
|
2009-02-02 14:36:08 +00:00
|
|
|
ok(false, "missing test - untested code is broken code.");
|
|
|
|
});
|
2012-11-02 00:54:52 +00:00
|
|
|
*/
|
2009-02-02 14:36:08 +00:00
|
|
|
|
|
|
|
})(jQuery);
|