diff options
author | Mike Sherov <mike.sherov@gmail.com> | 2013-03-27 16:47:57 -0400 |
---|---|---|
committer | Mike Sherov <mike.sherov@gmail.com> | 2013-04-12 14:45:48 -0400 |
commit | d345a0d7db841a143dcfdd3fb6fa6141cda435e9 (patch) | |
tree | 8acb573c1635ce16e7439404e0295b209a508ad1 /tests | |
parent | dd58f9832ba34cf99bc3245d0c4c6ccc486a2ddc (diff) | |
download | jquery-ui-d345a0d7db841a143dcfdd3fb6fa6141cda435e9.tar.gz jquery-ui-d345a0d7db841a143dcfdd3fb6fa6141cda435e9.zip |
Draggable: allow draggable to defer destroying itself upon DOM removal until after stop is fired. Fixes #6889 - Draggable: Cursor doesn't revert to pre-dragging state after revert action when original element is removed.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/jquery.simulate.js | 8 | ||||
-rw-r--r-- | tests/unit/draggable/draggable_core.js | 8 | ||||
-rw-r--r-- | tests/unit/draggable/draggable_options.js | 27 |
3 files changed, 39 insertions, 4 deletions
diff --git a/tests/jquery.simulate.js b/tests/jquery.simulate.js index 6e2f3ba8e..0a0c42487 100644 --- a/tests/jquery.simulate.js +++ b/tests/jquery.simulate.js @@ -316,8 +316,12 @@ $.extend( $.simulate.prototype, { this.simulateEvent( document, "mousemove", coord ); } - this.simulateEvent( target, "mouseup", coord ); - this.simulateEvent( target, "click", coord ); + if ( $.contains( document, target ) ) { + this.simulateEvent( target, "mouseup", coord ); + this.simulateEvent( target, "click", coord ); + } else { + this.simulateEvent( document, "mouseup", coord ); + } } }); diff --git a/tests/unit/draggable/draggable_core.js b/tests/unit/draggable/draggable_core.js index 53703843d..dd71bd48b 100644 --- a/tests/unit/draggable/draggable_core.js +++ b/tests/unit/draggable/draggable_core.js @@ -75,9 +75,13 @@ test( "resizable handle with complex markup (#8756 / #8757)", function() { }); test( "#8269: Removing draggable element on drop", function() { - expect( 1 ); + expect( 2 ); - var element = $( "#draggable1" ).wrap( "<div id='wrapper' />" ).draggable(), + var element = $( "#draggable1" ).wrap( "<div id='wrapper' />" ).draggable({ + stop: function() { + ok( true, "stop still called despite element being removed from DOM on drop" ); + } + }), dropOffset = $( "#droppable" ).offset(); $( "#droppable" ).droppable({ diff --git a/tests/unit/draggable/draggable_options.js b/tests/unit/draggable/draggable_options.js index 635d318e7..c361318b1 100644 --- a/tests/unit/draggable/draggable_options.js +++ b/tests/unit/draggable/draggable_options.js @@ -451,6 +451,33 @@ test( "{ cursor: 'move' }", function() { equal( after, before, "after drag: cursor restored" ); }); +test( "#6889: Cursor doesn't revert to pre-dragging state after revert action when original element is removed", function() { + function getCursor() { + return $( "body" ).css( "cursor" ); + } + + expect( 2 ); + + var element = $( "#draggable1" ).wrap( "<div id='wrapper' />" ).draggable({ + cursor: "move", + revert: true, + revertDuration: 0, + start: function() { + notEqual( getCursor(), expected, "start callback: cursor '" + expected + "'" ); + $( "#wrapper" ).remove(); + }, + stop: function() { + equal( getCursor(), expected, "after drag: cursor restored" ); + } + }), + expected = getCursor(); + + element.simulate( "drag", { + dx: -1, + dy: -1 + }); +}); + test( "cursor, default, switching after initialization", function() { expect( 3 ); |