r1969 - trunk/tests/unit/sortable

r1969 - trunk/tests/unit/sortable


Author: rdworth
Date: Mon Feb 2 16:33:00 2009
New Revision: 1969
Removed:
trunk/tests/unit/sortable/sortable.js
Modified:
trunk/tests/unit/sortable/sortable.html
trunk/tests/unit/sortable/sortable_core.js
trunk/tests/unit/sortable/sortable_defaults.js
trunk/tests/unit/sortable/sortable_events.js
trunk/tests/unit/sortable/sortable_methods.js
trunk/tests/unit/sortable/sortable_options.js
trunk/tests/unit/sortable/sortable_tickets.js
Log:
sortable unit tests: split tests into individual files
Modified: trunk/tests/unit/sortable/sortable.html
==============================================================================
--- trunk/tests/unit/sortable/sortable.html    (original)
+++ trunk/tests/unit/sortable/sortable.html    Mon Feb 2 16:33:00 2009
@@ -12,7 +12,12 @@
    <script type="text/javascript"
src="../../../external/qunit/testrunner.js"></script>
    <script type="text/javascript"
src="../../../external/simulate/jquery.simulate.js"></script>
-    <script type="text/javascript" src="sortable.js"></script>
+    <script type="text/javascript" src="sortable_core.js"></script>
+    <script type="text/javascript" src="sortable_defaults.js"></script>
+    <script type="text/javascript" src="sortable_events.js"></script>
+    <script type="text/javascript" src="sortable_methods.js"></script>
+    <script type="text/javascript" src="sortable_options.js"></script>
+    <script type="text/javascript" src="sortable_tickets.js"></script>
</head>
<body>
Modified: trunk/tests/unit/sortable/sortable_core.js
==============================================================================
--- trunk/tests/unit/sortable/sortable_core.js    (original)
+++ trunk/tests/unit/sortable/sortable_core.js    Mon Feb 2 16:33:00 2009
@@ -1,6 +1,27 @@
/*
* sortable_core.js
*/
+
+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)); }
+
(function($) {
module("sortable: core");
Modified: trunk/tests/unit/sortable/sortable_defaults.js
==============================================================================
--- trunk/tests/unit/sortable/sortable_defaults.js    (original)
+++ trunk/tests/unit/sortable/sortable_defaults.js    Mon Feb 2 16:33:00 2009
@@ -3,7 +3,30 @@
*/
var sortable_defaults = {
-    disabled: false
+    appendTo: "parent",
+    cancel: ":input,option",
+    connectWith: false,
+    cssNamespace: "ui",
+    cursor: 'default',
+    cursorAt: false,
+    delay: 0,
+    disabled: false,
+    distance: 1,
+    dropOnEmpty: true,
+    forcePlaceholderSize: false,
+    forceHelperSize: false,
+    handle: false,
+    helper: "original",
+    items: "> *",
+    opacity: false,
+    placeholder: false,
+    scope: "default",
+    scroll: true,
+    scrollSensitivity: 20,
+    scrollSpeed: 20,
+    sortIndicator: "???",
+    tolerance: "intersect",
+    zIndex: 1000
};
commonWidgetTests('sortable', { defaults: sortable_defaults });
Modified: trunk/tests/unit/sortable/sortable_events.js
==============================================================================
--- trunk/tests/unit/sortable/sortable_events.js    (original)
+++ trunk/tests/unit/sortable/sortable_events.js    Mon Feb 2 16:33:00 2009
@@ -5,7 +5,51 @@
module("sortable: events");
-test("testname", function() {
+test("start", function() {
+    ok(false, "missing test - untested code is broken code.");
+});
+
+test("sort", function() {
+    ok(false, "missing test - untested code is broken code.");
+});
+
+test("change", function() {
+    ok(false, "missing test - untested code is broken code.");
+});
+
+test("beforeStop", function() {
+    ok(false, "missing test - untested code is broken code.");
+});
+
+test("stop", function() {
+    ok(false, "missing test - untested code is broken code.");
+});
+
+test("update", function() {
+    ok(false, "missing test - untested code is broken code.");
+});
+
+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() {
    ok(false, "missing test - untested code is broken code.");
});
Modified: trunk/tests/unit/sortable/sortable_methods.js
==============================================================================
--- trunk/tests/unit/sortable/sortable_methods.js    (original)
+++ trunk/tests/unit/sortable/sortable_methods.js    Mon Feb 2 16:33:00 2009
@@ -5,8 +5,82 @@
module("sortable: methods");
-test("testname", function() {
-    ok(false, "missing test - untested code is broken code.");
+test("init", function() {
+    expect(6);
+
+    $("<div></div>").appendTo('body').sortable().remove();
+    ok(true, '.sortable() called on element');
+
+    $([]).sortable();
+    ok(true, '.sortable() called on empty collection');
+
+    $("<div></div>").sortable();
+    ok(true, '.sortable() called on disconnected DOMElement');
+
+    $("<div></div>").sortable().sortable("foo");
+    ok(true, 'arbitrary method called after init');
+
+    $("<div></div>").sortable().data("foo.sortable");
+    ok(true, 'arbitrary option getter after init');
+
+    $("<div></div>").sortable().data("foo.sortable", "bar");
+    ok(true, 'arbitrary option setter after init');
+});
+
+test("destroy", function() {
+    expect(6);
+
+    $("<div></div>").appendTo('body').sortable().sortable("destroy").remove();
+    ok(true, '.sortable("destroy") called on element');
+
+    $([]).sortable().sortable("destroy");
+    ok(true, '.sortable("destroy") called on empty collection');
+
+    $("<div></div>").sortable().sortable("destroy");
+    ok(true, '.sortable("destroy") called on disconnected DOMElement');
+
+    $("<div></div>").sortable().sortable("destroy").sortable("foo");
+    ok(true, 'arbitrary method called after destroy');
+
+    $("<div></div>").sortable().sortable("destroy").data("foo.sortable");
+    ok(true, 'arbitrary option getter after destroy');
+
+    
$("<div></div>").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, 40, 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, 40, 2, '.data("disabled.sortable", false)');
+});
+
+test("disable", function() {
+    expect(5);
+    el = $("#sortable").sortable({ disabled: false });
+    sort($("li", el)[0], 0, 40, 2, '.sortable({ disabled: false })');
+
+    el.sortable("disable");
+    sort($("li", el)[0], 0, 40, 0, 'disabled.sortable getter');
+
+    el.sortable("destroy");
+
+    el.sortable({ disabled: false });
+    sort($("li", el)[0], 0, 40, 2, '.sortable({ disabled: false })');
+    el.data("disabled.sortable", true);
+    equals(el.data("disabled.sortable"), true, "disabled.sortable setter");
+    sort($("li", el)[0], 0, 40, 0, '.data("disabled.sortable", true)');
});
})(jQuery);
Modified: trunk/tests/unit/sortable/sortable_options.js
==============================================================================
--- trunk/tests/unit/sortable/sortable_options.js    (original)
+++ trunk/tests/unit/sortable/sortable_options.js    Mon Feb 2 16:33:00 2009
@@ -5,7 +5,35 @@
module("sortable: options");
-test("testname", function() {
+test("{ appendTo: 'parent' }, default", function() {
+    ok(false, "missing test - untested code is broken code.");
+});
+
+test("{ appendTo: Selector }", function() {
+    ok(false, "missing test - untested code is broken code.");
+});
+
+test("{ axis: false }, default", function() {
+    ok(false, "missing test - untested code is broken code.");
+});
+
+test("{ axis: 'x' }", function() {
+    ok(false, "missing test - untested code is broken code.");
+});
+
+test("{ axis: 'y' }", function() {
+    ok(false, "missing test - untested code is broken code.");
+});
+
+test("{ axis: ? }, unexpected", function() {
+    ok(false, "missing test - untested code is broken code.");
+});
+
+test("{ cancel: ':input,button' }, default", function() {
+    ok(false, "missing test - untested code is broken code.");
+});
+
+test("{ cancel: Selector }", function() {
    ok(false, "missing test - untested code is broken code.");
});
Modified: trunk/tests/unit/sortable/sortable_tickets.js
==============================================================================
--- trunk/tests/unit/sortable/sortable_tickets.js    (original)
+++ trunk/tests/unit/sortable/sortable_tickets.js    Mon Feb 2 16:33:00 2009
@@ -5,8 +5,18 @@
module("sortable: tickets");
-test("testname", function() {
-    ok(false, "missing test - untested code is broken code.");
+test("#3019: Stop fires too early", function() {
+
+    var helper = null;
+    el = $("#sortable").sortable({
+        stop: function(event, ui) {
+            helper = ui.helper;
+        }
+    });
+
+    sort($("li", el)[0], 0, 40, 2, 'Dragging the sortable');
+    equals(helper, null, "helper should be false");
+
});
})(jQuery);