]> source.dussan.org Git - jquery-ui.git/commitdiff
Draggable Tests: fix IE scroll tests affected by focus issues. 1195/head
authorMike Sherov <mike.sherov@gmail.com>
Tue, 18 Feb 2014 03:10:29 +0000 (22:10 -0500)
committerMike Sherov <mike.sherov@gmail.com>
Tue, 18 Feb 2014 17:48:06 +0000 (12:48 -0500)
Calling element.focus() causes scroll in IE. In order to correctly test scroll behavior,
we must calculate scrollTop on the drag event, before .focus is called.

tests/unit/draggable/draggable_options.js

index eba6c47315d48daa75683801677a4e721f935e25..4cebe4dfb8bc3451a5b828fd4c677a83ada91ac2 100644 (file)
@@ -835,7 +835,8 @@ test( "scroll, scrollSensitivity, and scrollSpeed", function() {
 
        TestHelpers.draggable.setScrollable( "#main", false );
 
-       var viewportHeight = $( window ).height(),
+       var currentScrollTop,
+               viewportHeight = $( window ).height(),
                element = $( "#draggable1" ).draggable({ scroll: true }).appendTo( "#qunit-fixture" ),
                scrollSensitivity = element.draggable( "option", "scrollSensitivity" ),
                scrollSpeed = element.draggable( "option", "scrollSpeed" );
@@ -845,14 +846,16 @@ test( "scroll, scrollSensitivity, and scrollSpeed", function() {
                left: 1
        });
 
+       $( element ).one( "drag", function() {
+               equal( $( window ).scrollTop(), 0, "scroll: true doesn't scroll when the element is dragged outside of scrollSensitivity" );
+       });
+
        element.simulate( "drag", {
                dx: 1,
                y: viewportHeight - scrollSensitivity - 1,
                moves: 1
        });
 
-       ok( $( window ).scrollTop() === 0, "scroll: true doesn't scroll when the element is dragged outside of scrollSensitivity" );
-
        element.draggable( "option", "scrollSensitivity", scrollSensitivity + 10 );
 
        element.offset({
@@ -860,14 +863,18 @@ test( "scroll, scrollSensitivity, and scrollSpeed", function() {
                left: 1
        });
 
+       currentScrollTop = $( window ).scrollTop();
+
+       $( element ).one( "drag", function() {
+               ok( $( window ).scrollTop() - currentScrollTop, scrollSpeed, "scroll: true scrolls when the element is dragged within scrollSensitivity" );
+       });
+
        element.simulate( "drag", {
                dx: 1,
                y: viewportHeight - scrollSensitivity - 1,
                moves: 1
        });
 
-       ok( $( window ).scrollTop() === scrollSpeed, "scroll: true scrolls when the element is dragged within scrollSensitivity" );
-
        TestHelpers.draggable.restoreScroll( document );
 });