]> source.dussan.org Git - jquery.git/commitdiff
Tests: Reset iframe window scroll after updating html/document position
authorRichard Gibson <richard.gibson@gmail.com>
Fri, 28 Apr 2017 04:46:39 +0000 (00:46 -0400)
committerGitHub <noreply@github.com>
Fri, 28 Apr 2017 04:46:39 +0000 (00:46 -0400)
Ref 1d2df772b4d6e5dbf91df6e75f4a1809f7879ab0
Closes gh-3649

test/unit/offset.js

index c202b1d209b08b85649149eedb1ecfa3e476c427..d569309249917bed781814c7bf87be695aa43f75 100644 (file)
@@ -31,7 +31,10 @@ var supportsFixedPosition, supportsScroll, alwaysScrollable,
                        null,
                        "offset/boxes.html",
                        function( assert, $, win, doc ) {
+                               var scrollTop = win.pageYOffset,
+                                       scrollLeft = win.pageXOffset;
                                doc.documentElement.style.position = "fixed";
+                               win.scrollTo( scrollLeft, scrollTop );
                                alwaysScrollable = win.pageXOffset !== 0;
                                done();
                        },
@@ -656,14 +659,18 @@ QUnit.test( "chaining", function( assert ) {
                        var label = "nonzero box properties - html." + htmlPos + " body." + bodyPos;
                        testIframe( label, "offset/boxes.html", function( assert, $, win, doc ) {
 
-                               // Define expectations at runtime so alwaysScrollable is correct
-                               var expectations = getExpectations( htmlPos, bodyPos );
+                               var scrollTop = win.pageYOffset,
+                                       scrollLeft = win.pageXOffset,
+
+                                       // Define expectations at runtime so alwaysScrollable is correct
+                                       expectations = getExpectations( htmlPos, bodyPos );
 
                                assert.expect( 3 * Object.keys( expectations ).length );
 
-                               // Setup documentElement and body styles
+                               // Setup documentElement and body styles, preserving scroll position
                                doc.documentElement.style.position = htmlPos;
                                doc.body.style.position = bodyPos;
+                               win.scrollTo( scrollLeft, scrollTop );
 
                                // Verify expected document offset
                                supportjQuery.each( expectations, function( id, descriptor ) {