From abdda174f2b0068cc9c828becbf941f6e5362633 Mon Sep 17 00:00:00 2001 From: Paul Bakaus Date: Fri, 13 Jun 2008 12:42:44 +0000 Subject: [PATCH] tests: initial version of sortable tests/ sortable: added default value for helper ("clone") --- tests/sortable.html | 45 ++++++++++++++++ tests/sortable.js | 126 ++++++++++++++++++++++++++++++++++++++++++++ ui/ui.sortable.js | 1 + 3 files changed, 172 insertions(+) create mode 100644 tests/sortable.html create mode 100644 tests/sortable.js diff --git a/tests/sortable.html b/tests/sortable.html new file mode 100644 index 000000000..1a8aad730 --- /dev/null +++ b/tests/sortable.html @@ -0,0 +1,45 @@ + + + + jQuery UI Draggable Test Suite + + + + + + + + + + + + + + + + +

jQuery UI Draggable Test Suite

+ +

+ +
    + +
    + +
    + + + diff --git a/tests/sortable.js b/tests/sortable.js new file mode 100644 index 000000000..acfd8d9df --- /dev/null +++ b/tests/sortable.js @@ -0,0 +1,126 @@ +/* + * draggable unit tests + */ +(function($) { +// +// Sortable Test Helper Functions +// +var el, offsetBefore, offsetAfter, dragged; + +var drag = function(handle, dx, dy) { + offsetBefore = $(handle).offset(); + $(handle).simulate("drag", { + dx: dx || 0, + dy: dy || 0 + }); + dragged = { dx: dx, dy: dy }; + offsetAfter = $(handle).offset(); +} + +var sort = function(handle, dx, dy, index, msg) { + drag(handle, dx, dy); + equals($(handle).parent().children().index(handle), index, msg); +} + +var border = function(el, side) { return parseInt(el.css('border-' + side + '-width')); } +var margin = function(el, side) { return parseInt(el.css('margin-' + side)); } + +// Sortable Tests +module("sortable"); + +test("init", function() { + expect(6); + + el = $("#sortable").sortable(); + ok(true, '.sortable() called on element'); + + $([]).sortable(); + ok(true, '.sortable() called on empty collection'); + + $("
    ").sortable(); + ok(true, '.sortable() called on disconnected DOMElement'); + + $("
    ").sortable().sortable("foo"); + ok(true, 'arbitrary method called after init'); + + $("
    ").sortable().data("foo.sortable"); + ok(true, 'arbitrary option getter after init'); + + $("
    ").sortable().data("foo.sortable", "bar"); + ok(true, 'arbitrary option setter after init'); +}); + +test("destroy", function() { + expect(6); + + $("#sortable").sortable().sortable("destroy"); + ok(true, '.sortable("destroy") called on element'); + + $([]).sortable().sortable("destroy"); + ok(true, '.sortable("destroy") called on empty collection'); + + $("
    ").sortable().sortable("destroy"); + ok(true, '.sortable("destroy") called on disconnected DOMElement'); + + $("
    ").sortable().sortable("destroy").sortable("foo"); + ok(true, 'arbitrary method called after destroy'); + + $("
    ").sortable().sortable("destroy").data("foo.sortable"); + ok(true, 'arbitrary option getter after destroy'); + + $("
    ").sortable().sortable("destroy").data("foo.sortable", "bar"); + ok(true, 'arbitrary option setter after destroy'); +}); + +test("enable", function() { + expect(4); + el = $("#sortable").sortable({ disabled: true }); + + sort($("li", el)[0], 0, 50, 0, '.sortable({ disabled: true })'); + + el.sortable("enable"); + equals(el.data("disabled.sortable"), false, "disabled.sortable getter"); + + el.sortable("destroy"); + el.sortable({ disabled: true }); + el.data("disabled.sortable", false); + equals(el.data("disabled.sortable"), false, "disabled.sortable setter"); + + sort($("li", el)[0], 0, 20, 2, '.data("disabled.sortable", false)'); +}); + +test("disable", function() { + expect(5); + el = $("#sortable").sortable({ disabled: false }); + sort($("li", el)[0], 0, 20, 2, '.sortable({ disabled: false })'); + + el.sortable("disable"); + sort($("li", el)[0], 0, 20, 0, 'disabled.sortable getter'); + + el.sortable("destroy"); + + el.sortable({ disabled: false }); + sort($("li", el)[0], 0, 20, 2, '.sortable({ disabled: false })'); + el.data("disabled.sortable", true); + equals(el.data("disabled.sortable"), true, "disabled.sortable setter"); + sort($("li", el)[0], 0, 20, 0, '.data("disabled.sortable", true)'); +}); + +test("defaults", function() { + el = $("#sortable").sortable(); + + equals(el.data("helper.sortable"), "clone", "helper"); + equals(el.data("tolerance.sortable"), "guess", "tolerance"); + equals(el.data("distance.sortable"), 0, "distance"); + equals(el.data("disabled.sortable"), false, "disabled"); + equals(el.data("delay.sortable"), 0, "delay"); + equals(el.data("cancel.sortable"), ":input,button", "cancel"); + equals(el.data("items.sortable"), "> *", "items"); + equals(el.data("zIndex.sortable"), 1000, "zIndex"); + equals(el.data("dropOnEmpty.sortable"), true, "dropOnEmpty"); + equals(el.data("appendTo.sortable"), "parent", "appendTo"); + +}); + + +})(jQuery); diff --git a/ui/ui.sortable.js b/ui/ui.sortable.js index 7d9c5cd9e..43d962bc0 100644 --- a/ui/ui.sortable.js +++ b/ui/ui.sortable.js @@ -570,6 +570,7 @@ $.widget("ui.sortable", $.extend($.ui.mouse, { $.extend($.ui.sortable, { getter: "serialize toArray", defaults: { + helper: "clone", tolerance: "guess", distance: 0, delay: 0, -- 2.39.5