diff options
author | Richard Worth <rdworth@gmail.com> | 2009-02-02 06:34:44 +0000 |
---|---|---|
committer | Richard Worth <rdworth@gmail.com> | 2009-02-02 06:34:44 +0000 |
commit | c42164097caca488ac1b1761a6678793f2c3322f (patch) | |
tree | d0aedf0a519699f8e4de10cf7139ac830c14818e /tests/unit/draggable/draggable_core.js | |
parent | c3046b9d798b406803beaf83dc42e0171672fe89 (diff) | |
download | jquery-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.js | 71 |
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, "<" + typeName + ">"); + 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); |