aboutsummaryrefslogtreecommitdiffstats
path: root/tests/unit/draggable/draggable_core.js
diff options
context:
space:
mode:
authorRichard Worth <rdworth@gmail.com>2009-02-02 06:34:44 +0000
committerRichard Worth <rdworth@gmail.com>2009-02-02 06:34:44 +0000
commitc42164097caca488ac1b1761a6678793f2c3322f (patch)
treed0aedf0a519699f8e4de10cf7139ac830c14818e /tests/unit/draggable/draggable_core.js
parentc3046b9d798b406803beaf83dc42e0171672fe89 (diff)
downloadjquery-ui-c42164097caca488ac1b1761a6678793f2c3322f.tar.gz
jquery-ui-c42164097caca488ac1b1761a6678793f2c3322f.zip
draggable unit tests: cleanup
Diffstat (limited to 'tests/unit/draggable/draggable_core.js')
-rw-r--r--tests/unit/draggable/draggable_core.js71
1 files changed, 71 insertions, 0 deletions
diff --git a/tests/unit/draggable/draggable_core.js b/tests/unit/draggable/draggable_core.js
new file mode 100644
index 000000000..ab3b36c4e
--- /dev/null
+++ b/tests/unit/draggable/draggable_core.js
@@ -0,0 +1,71 @@
+/*
+ * draggable unit tests
+ */
+
+//
+// Draggable Test Helper Functions
+//
+
+var el, offsetBefore, offsetAfter, dragged;
+
+var drag = function(handle, dx, dy) {
+ var element = el.data("draggable").element;
+ offsetBefore = el.offset();
+ $(handle).simulate("drag", {
+ dx: dx || 0,
+ dy: dy || 0
+ });
+ dragged = { dx: dx, dy: dy };
+ offsetAfter = el.offset();
+}
+
+var moved = function (dx, dy, msg) {
+ msg = msg ? msg + "." : "";
+ var actual = { left: offsetAfter.left, top: offsetAfter.top };
+ var expected = { left: offsetBefore.left + dx, top: offsetBefore.top + dy };
+ same(actual, expected, 'dragged[' + dragged.dx + ', ' + dragged.dy + '] ' + msg);
+}
+
+function restoreScroll(what) {
+ if(what) {
+ $(document).scrollTop(0); $(document).scrollLeft(0);
+ } else {
+ $("#main")[0].scrollTop = 0; $("#main")[0].scrollLeft = 0;
+ }
+}
+
+(function($) {
+
+module("draggable");
+
+test("element types", function() {
+ var typeNames = ('p,h1,h2,h3,h4,h5,h6,blockquote,ol,ul,dl,div,form'
+ + ',table,fieldset,address,ins,del,em,strong,q,cite,dfn,abbr'
+ + ',acronym,code,samp,kbd,var,img,object,hr'
+ + ',input,button,label,select,iframe').split(',');
+
+ $.each(typeNames, function(i) {
+ var typeName = typeNames[i];
+ el = $(document.createElement(typeName)).appendTo('body');
+ (typeName == 'table' && el.append("<tr><td>content</td></tr>"));
+ el.draggable({ cancel: '' });
+ drag(el, 50, 50);
+ moved(50, 50, "&lt;" + typeName + "&gt;");
+ el.draggable("destroy");
+ el.remove();
+ });
+});
+
+test("No options, relative", function() {
+ el = $("#draggable1").draggable();
+ drag(el, 50, 50);
+ moved(50, 50);
+});
+
+test("No options, absolute", function() {
+ el = $("#draggable2").draggable();
+ drag(el, 50, 50);
+ moved(50, 50);
+});
+
+})(jQuery);