Skip to content

Commit 49c3fb7

Browse files
DaveSteinmikesherov
authored andcommitted
Draggable Tests: Ensure scrolling and dragging tests assert correctly
1 parent aa425ab commit 49c3fb7

File tree

5 files changed

+31
-14
lines changed

5 files changed

+31
-14
lines changed

tests/unit/draggable/draggable_core.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,7 @@ test( "ui-draggable-handle managed correctly in nested draggables", function() {
344344
// http://bugs.jqueryui.com/ticket/7772
345345
// when css 'right' is set, element resizes on drag
346346
test( "setting right/bottom css shouldn't cause resize", function() {
347-
expect( 3 );
347+
expect( 4 );
348348

349349
var finalOffset,
350350
element = $( "#draggable3" ),
@@ -362,7 +362,8 @@ test( "setting right/bottom css shouldn't cause resize", function() {
362362

363363
closeEnough( element.width(), origWidth, 1, "element retains width" );
364364
closeEnough( element.height(), origHeight, 1, "element retains height" );
365-
deepEqual( finalOffset, origOffset, "element moves the correct distance" );
365+
closeEnough( finalOffset.top, origOffset.top, "element moves the correct vertical distance" );
366+
closeEnough( finalOffset.top, origOffset.top, "element moves the correct horizontal distance" );
366367
});
367368

368369
})( jQuery );

tests/unit/draggable/draggable_methods.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ test( "destroy", function() {
5151
});
5252

5353
test( "enable", function() {
54-
expect( 7 );
54+
expect( 11 );
5555

5656
element.draggable({ disabled: true });
5757
TestHelpers.draggable.shouldNotDrag( element, ".draggable({ disabled: true })" );
@@ -74,7 +74,7 @@ test( "enable", function() {
7474
});
7575

7676
test( "disable", function() {
77-
expect( 10 );
77+
expect( 14 );
7878

7979
element = $( "#draggable2" ).draggable({ disabled: false });
8080
TestHelpers.draggable.shouldMove( element, ".draggable({ disabled: false })" );

tests/unit/draggable/draggable_options.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ test( "axis, default, switching after initialization", function() {
156156
});
157157

158158
test( "{ cancel: 'input,textarea,button,select,option' }, default", function() {
159-
expect( 2 );
159+
expect( 4 );
160160

161161
$( "<div id='draggable-option-cancel-default'><input type='text'></div>" ).appendTo( "#qunit-fixture" );
162162

@@ -171,7 +171,7 @@ test( "{ cancel: 'input,textarea,button,select,option' }, default", function() {
171171
});
172172

173173
test( "{ cancel: 'span' }", function() {
174-
expect( 2 );
174+
expect( 4 );
175175

176176
var element = $( "#draggable2" ).draggable();
177177
TestHelpers.draggable.shouldMove( element, "cancel: default, span dragged", "#draggable2 span" );
@@ -228,7 +228,7 @@ test( "{ cancel: Selectors }, matching parent selector", function() {
228228
*/
229229

230230
test( "cancelement, default, switching after initialization", function() {
231-
expect( 2 );
231+
expect( 6 );
232232

233233
$( "<div id='draggable-option-cancel-default'><input type='text'></div>" ).appendTo( "#qunit-fixture" );
234234

@@ -615,7 +615,7 @@ test( "cursorAt, switching after initialization", function() {
615615
});
616616

617617
test( "disabled", function() {
618-
expect( 4 );
618+
expect( 6 );
619619

620620
var element = $( "#draggable1" ).draggable();
621621

@@ -660,7 +660,7 @@ test( "grid, switching after initialization", function() {
660660
});
661661

662662
test( "{ handle: 'span' }", function() {
663-
expect( 4 );
663+
expect( 6 );
664664

665665
var element = $( "#draggable2" ).draggable({ handle: "span" });
666666

@@ -670,7 +670,7 @@ test( "{ handle: 'span' }", function() {
670670
});
671671

672672
test( "handle, default, switching after initialization", function() {
673-
expect( 10 );
673+
expect( 12 );
674674

675675
var element = $( "#draggable2" ).draggable();
676676

tests/unit/draggable/draggable_test_helpers.js

+16-2
Original file line numberDiff line numberDiff line change
@@ -63,14 +63,28 @@ TestHelpers.draggable = {
6363
},
6464
shouldNotDrag: function( el, msg, handle ) {
6565
handle = handle || el;
66-
$( el ).bind( "dragstop", function() {
66+
67+
var newOffset,
68+
element = $( el ),
69+
beginOffset = element.offset();
70+
71+
element.bind( "dragstop", function() {
6772
ok( false, "should not drag " + msg );
6873
});
74+
6975
$( handle ).simulate( "drag", {
7076
dx: 100,
7177
dy: 100
7278
});
73-
$( el ).unbind( "dragstop" );
79+
80+
newOffset = element.offset();
81+
82+
// Also assert that draggable did not move, to ensure it isn't just
83+
// that drag did not fire and draggable still somehow moved
84+
equal( newOffset.left, beginOffset.left, "Offset left should not be different" );
85+
equal( newOffset.top, beginOffset.top, "Offset top should not be different" );
86+
87+
element.unbind( "dragstop" );
7488
},
7589
setScrollable: function( what, isScrollable ) {
7690
var overflow = isScrollable ? "scroll" : "hidden";

tests/unit/testsuite.js

+4-2
Original file line numberDiff line numberDiff line change
@@ -205,9 +205,11 @@ TestHelpers.onFocus= function( element, onFocus ) {
205205
};
206206

207207
TestHelpers.forceScrollableWindow = function( appendTo ) {
208+
// The main testable area is 10000x10000 so to enforce scrolling,
209+
// this DIV must be greater than 10000 to work
208210
return $( "<div>" ).css({
209-
height: "10000px",
210-
width: "10000px"
211+
height: "11000px",
212+
width: "11000px"
211213
}).appendTo( appendTo || "#qunit-fixture" );
212214
};
213215

0 commit comments

Comments
 (0)