aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMike Sherov <mike.sherov@gmail.com>2013-03-27 16:47:57 -0400
committerMike Sherov <mike.sherov@gmail.com>2013-04-12 14:45:48 -0400
commitd345a0d7db841a143dcfdd3fb6fa6141cda435e9 (patch)
tree8acb573c1635ce16e7439404e0295b209a508ad1 /tests
parentdd58f9832ba34cf99bc3245d0c4c6ccc486a2ddc (diff)
downloadjquery-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.js8
-rw-r--r--tests/unit/draggable/draggable_core.js8
-rw-r--r--tests/unit/draggable/draggable_options.js27
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 );