From dc5254aa0703f9f7fd9d290c3078a5e9267160d9 Mon Sep 17 00:00:00 2001 From: Mike Sherov Date: Sat, 23 Mar 2013 04:12:52 +0200 Subject: Draggable: Handle containment set to false after init, and style improvements. Fixes #8962 - Containment doesn't properly update --- tests/unit/draggable/draggable_options.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'tests/unit/draggable') diff --git a/tests/unit/draggable/draggable_options.js b/tests/unit/draggable/draggable_options.js index f4fca0b2e..bf47b4354 100644 --- a/tests/unit/draggable/draggable_options.js +++ b/tests/unit/draggable/draggable_options.js @@ -378,7 +378,7 @@ test( "containment, account for border", function() { }); test( "containment, default, switching after initialization", function() { - expect( 2 ); + expect( 3 ); var element = $( "#draggable1" ).draggable({ containment: false }); @@ -393,9 +393,8 @@ test( "containment, default, switching after initialization", function() { TestHelpers.draggable.testDrag( element, element, -100, -100, 0, 0 ); - // TODO: Switching back to false does not update to false - // element.draggable( "option", "containment", false ); - // TestHelpers.draggable.testDrag( element, element, -100, -100, -100, -100 ); + element.draggable( "option", "containment", false ); + TestHelpers.draggable.testDrag( element, element, -100, -100, -100, -100 ); }); test( "{ cursor: 'auto' }, default", function() { -- cgit v1.2.3 From e9faec96ed0152a4943efa838b9025d63e3e3093 Mon Sep 17 00:00:00 2001 From: Mike Sherov Date: Tue, 26 Mar 2013 09:18:00 -0400 Subject: Draggable Tests: Test that removing an element on drop doesn't cause a draggable error. Fixes #9159 - Draggable Tests: Write test case for #8269 --- tests/unit/draggable/draggable_core.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'tests/unit/draggable') diff --git a/tests/unit/draggable/draggable_core.js b/tests/unit/draggable/draggable_core.js index 2090f2fd9..ab63c3703 100644 --- a/tests/unit/draggable/draggable_core.js +++ b/tests/unit/draggable/draggable_core.js @@ -85,4 +85,24 @@ test( "resizable handle with complex markup (#8756 / #8757)", function() { equal( target.width(), 200, "compare width" ); }); +test( "#8269: Removing draggable element on drop", function() { + expect( 1 ); + + var element = $( "#draggable1" ).wrap( "
" ).draggable(), + dropOffset = $( "#droppable" ).offset(); + + $( "#droppable" ).droppable({ + drop: function() { + $( "#wrapper" ).remove(); + ok( true, "element removed from DOM on drop" ); + } + }); + + element.simulate( "drag", { + handle: "corner", + x: dropOffset.left, + y: dropOffset.top + }); +}); + })( jQuery ); -- cgit v1.2.3 From 38f93c4ac19d85649e08f666086c1234ff7360f3 Mon Sep 17 00:00:00 2001 From: Mike Sherov Date: Tue, 26 Mar 2013 09:18:58 -0400 Subject: Draggable Tests: Minor style fixes and removing unnecessary setup and teardown for core tests. --- tests/unit/draggable/draggable_core.js | 21 +++++---------------- tests/unit/draggable/draggable_options.js | 4 ++-- 2 files changed, 7 insertions(+), 18 deletions(-) (limited to 'tests/unit/draggable') diff --git a/tests/unit/draggable/draggable_core.js b/tests/unit/draggable/draggable_core.js index ab63c3703..f22d483a6 100644 --- a/tests/unit/draggable/draggable_core.js +++ b/tests/unit/draggable/draggable_core.js @@ -4,18 +4,7 @@ (function( $ ) { -var relativeElement, absoluteElement; - -module( "draggable: core", { - setup: function() { - relativeElement = $("
Relative
").appendTo("#qunit-fixture"); - absoluteElement = $("
Absolute
").appendTo("#qunit-fixture"); - }, - teardown: function() { - relativeElement.remove(); - absoluteElement.remove(); - } -}); +module( "draggable: core" ); test( "element types", function() { var typeNames = ( @@ -55,18 +44,18 @@ test( "element types", function() { test( "No options, relative", function() { expect( 1 ); - TestHelpers.draggable.shouldMove( relativeElement.draggable() ); + TestHelpers.draggable.shouldMove( $( "#draggable1" ).draggable() ); }); test( "No options, absolute", function() { expect( 1 ); - TestHelpers.draggable.shouldMove( absoluteElement.draggable() ); + TestHelpers.draggable.shouldMove( $( "#draggable2" ).draggable() ); }); test( "resizable handle with complex markup (#8756 / #8757)", function() { expect( 2 ); - relativeElement + $( "#draggable1" ) .append( $("
") .addClass("ui-resizable-handle ui-resizable-w") @@ -74,7 +63,7 @@ test( "resizable handle with complex markup (#8756 / #8757)", function() { ); var handle = $(".ui-resizable-w div"), - target = relativeElement.draggable().resizable({ handles: "all" }); + target = $( "#draggable1" ).draggable().resizable({ handles: "all" }); // todo: fix resizable so it doesn't require a mouseover handle.simulate("mouseover").simulate( "drag", { dx: -50 } ); diff --git a/tests/unit/draggable/draggable_options.js b/tests/unit/draggable/draggable_options.js index bf47b4354..8e1fde0bd 100644 --- a/tests/unit/draggable/draggable_options.js +++ b/tests/unit/draggable/draggable_options.js @@ -1056,11 +1056,11 @@ test( "scope", function() { $( "#droppable" ).droppable({ scope: "tasks" }); - TestHelpers.draggable.testDrag( element, element, 100, 100, 0, 0, "revert: valid reverts when dropped on a droppable" ); + TestHelpers.draggable.testDrag( element, element, 100, 100, 0, 0, "revert: valid reverts when dropped on a droppable in scope" ); $( "#droppable" ).droppable( "destroy" ).droppable({ scope: "nottasks" }); - TestHelpers.draggable.testDrag( element, element, 100, 100, 100, 100, "revert: valid reverts when dropped on a droppable" ); + TestHelpers.draggable.testDrag( element, element, 100, 100, 100, 100, "revert: valid reverts when dropped on a droppable out of scope" ); }); test( "scroll, scrollSensitivity, and scrollSpeed", function() { -- cgit v1.2.3 From 204a0423be63e0032f72b2ba1830a9b8dcebb9ee Mon Sep 17 00:00:00 2001 From: Mike Sherov Date: Sun, 31 Mar 2013 12:19:43 -0400 Subject: Draggable Tests: Fix IE8 test failures by accounting for the IE8 testswarm IFRAME positioning bug. --- tests/unit/draggable/draggable_options.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'tests/unit/draggable') diff --git a/tests/unit/draggable/draggable_options.js b/tests/unit/draggable/draggable_options.js index 8e1fde0bd..6a0cd593b 100644 --- a/tests/unit/draggable/draggable_options.js +++ b/tests/unit/draggable/draggable_options.js @@ -1112,7 +1112,8 @@ test( "#6817: auto scroll goes double distance when dragging", function() { scroll: true, stop: function( e, ui ) { equal( ui.offset.top, newY, "offset of item matches pointer position after scroll" ); - equal( ui.offset.top - offsetBefore.top, distance, "offset of item only moves expected distance after scroll" ); + // TODO: fix IE8 testswarm IFRAME positioning bug so closeEnough can be turned back to equal + closeEnough( ui.offset.top - offsetBefore.top, distance, 1, "offset of item only moves expected distance after scroll" ); } }), scrollSensitivity = element.draggable( "option", "scrollSensitivity" ), @@ -1137,7 +1138,7 @@ test( "#6817: auto scroll goes double distance when dragging", function() { }); test( "snap, snapMode, and snapTolerance", function() { - expect( 9 ); + expect( 10 ); var newX, newY, snapTolerance = 15, @@ -1163,7 +1164,9 @@ test( "snap, snapMode, and snapTolerance", function() { moves: 1 }); - deepEqual( element.offset(), { top: newY, left: newX }, "doesn't snap outside the snapTolerance" ); + // TODO: fix IE8 testswarm IFRAME positioning bug so closeEnough can be turned back to equal + closeEnough( element.offset().left, newX, 1, "doesn't snap outside the snapTolerance" ); + closeEnough( element.offset().top, newY, 1, "doesn't snap outside the snapTolerance" ); newX += 3; @@ -1257,7 +1260,7 @@ test( "snap, snapMode, and snapTolerance", function() { }); test( "#8459: element can snap to an element that was removed during drag", function() { - expect( 1 ); + expect( 2 ); var newX, newY, snapTolerance = 15, @@ -1286,7 +1289,9 @@ test( "#8459: element can snap to an element that was removed during drag", func moves: 1 }); - deepEqual( element.offset(), { top: newY, left: newX }, "doesn't snap to a removed element" ); + // TODO: fix IE8 testswarm IFRAME positioning bug so closeEnough can be turned back to equal + closeEnough( element.offset().left, newX, 1, "doesn't snap to a removed element" ); + closeEnough( element.offset().top, newY, 1, "doesn't snap to a removed element" ); }); test( "#8165: Snapping large rectangles to small rectangles doesn't snap properly", function() { -- cgit v1.2.3