Chromium Code Reviews| Index: third_party/WebKit/LayoutTests/fast/dom/Window/window-scaled-viewport-properties.html |
| diff --git a/third_party/WebKit/LayoutTests/fast/dom/Window/window-scaled-viewport-properties.html b/third_party/WebKit/LayoutTests/fast/dom/Window/window-scaled-viewport-properties.html |
| index 790c0bfbb22286ea447e149c71c4098e7f569773..e25407e29e99b0575272594a576696d743214168 100644 |
| --- a/third_party/WebKit/LayoutTests/fast/dom/Window/window-scaled-viewport-properties.html |
| +++ b/third_party/WebKit/LayoutTests/fast/dom/Window/window-scaled-viewport-properties.html |
| @@ -4,6 +4,9 @@ |
| body { |
| padding: 0px; |
| margin: 0px; |
| + /* Overflow hidden so that the size of the scrollbar is not added to |
| + the innerHeight/Width properties. */ |
| + overflow: hidden; |
| } |
| .spacer { |
| @@ -27,18 +30,21 @@ |
| description("This test makes sure the window properties related to the\ |
| viewport remain correct under pinch-to-zoom."); |
| - debug('===Unscaled==='); |
| - debug(''); |
| - shouldBe('window.innerWidth', '800'); |
| - shouldBe('window.innerHeight', '600'); |
| + |
| + function testUnscaled () { |
| + debug('===Unscaled==='); |
| + debug(''); |
| + shouldBe('window.innerWidth', '1600'); |
|
bokan
2015/10/19 15:01:14
Can you add a comment here (or above at the setPag
ymalik
2015/10/20 21:27:14
Done.
|
| + shouldBe('window.innerHeight', '1200'); |
| + } |
| function testPinchedIn() { |
| debug(''); |
| debug('===Pinch Zoom in to 2X==='); |
| debug(''); |
| window.internals.setPageScaleFactor(2.0); |
| - shouldBe('window.innerWidth', '400'); |
| - shouldBe('window.innerHeight', '300'); |
| + shouldBe('window.innerWidth', '1600'); |
| + shouldBe('window.innerHeight', '1200'); |
| shouldBe('window.scrollX', '0'); |
| shouldBe('window.scrollY', '0'); |
| @@ -46,14 +52,14 @@ |
| shouldBe('window.scrollX', '10'); |
| shouldBe('window.scrollY', '20'); |
| window.scrollBy(1590, 1180); |
| - shouldBe('window.scrollX', '1600'); |
| - shouldBe('window.scrollY', '1200'); |
| + shouldBe('window.scrollX', '400'); |
| + shouldBe('window.scrollY', '300'); |
| window.scrollBy(-1600, -1200); |
| shouldBe('window.scrollX', '0'); |
| shouldBe('window.scrollY', '0'); |
| window.scrollTo(1600, 1200); |
| - shouldBe('window.scrollX', '1600'); |
| - shouldBe('window.scrollY', '1200'); |
| + shouldBe('window.scrollX', '400'); |
| + shouldBe('window.scrollY', '300'); |
|
bokan
2015/10/19 15:01:14
You can get rid of most of these scrollBy calls si
ymalik
2015/10/20 21:27:13
Done.
ymalik
2015/10/20 23:36:00
To be more clear about the change. I refactored th
|
| window.scrollTo(0, 0); |
| shouldBe('window.scrollX', '0'); |
| shouldBe('window.scrollY', '0'); |
| @@ -91,14 +97,17 @@ |
| debug('===Test OnScroll==='); |
| debug(''); |
| window.internals.setPageScaleFactor(1.0); |
| - shouldBe('window.innerWidth', '800'); |
| - shouldBe('window.innerHeight', '600'); |
| + shouldBe('window.innerWidth', '1600'); |
| + shouldBe('window.innerHeight', '1200'); |
| shouldBe('window.scrollX', '0'); |
| shouldBe('window.scrollY', '0'); |
| - // First scroll scrolls only the outer viewport. |
| + // First scroll should only scroll the visual viewport because the |
|
bokan
2015/10/19 15:01:14
None of the scrolls should be going to the visual
ymalik
2015/10/20 23:36:00
Yes, fixed the comment.
|
| + // layout and visual viewport are of different sizes (because of the |
| + // call to setPageScaleFactorLimits above). |
| // Second scrolls the outer and the inner. |
| - // Third scrolls only the inner. |
| + // Third scroll should have no affect because the layout viewport is |
| + // fully scrolled. |
| var scrolls = [100, 400, 100]; |
| var numScrollsReceived = 0; |
| var numRAFCalls = 0; |
| @@ -113,9 +122,8 @@ |
| var scrollAmount = scrolls[numScrollsReceived]; |
| window.scrollBy(scrollAmount, 0); |
|
bokan
2015/10/19 15:01:14
scrollBy won't ever scroll the inner viewport. Thi
ymalik
2015/10/20 23:36:00
Yes, this test doesn't cover the case when we actu
|
| } else if (numScrollsReceived == scrolls.length) { |
| - // Make sure scrollTo that moves only the inner viewport also |
| - // triggers a scroll event. |
| - window.scrollTo(1200, 0); |
| + testFailed("Received visual viewport scroll event"); |
| + finishJSTest(); |
| } else { |
| debug(''); |
| finishJSTest(); |
| @@ -127,8 +135,12 @@ |
| var failureSentinel = function() { |
| if (numRAFCalls == 0) { |
| window.scrollBy(scrolls[0], 0); |
| - }else if (numRAFCalls > numScrollsReceived) { |
| - testFailed("Failed to receive scroll event #" + (numScrollsReceived+1)); |
| + } else if (numRAFCalls == scrolls.length) { |
| + testPassed("Did not receive visual viewport scroll event"); |
| + debug(''); |
| + finishJSTest(); |
| + } else if (numRAFCalls > numScrollsReceived) { |
| + testFailed("Did not receive scroll event #" + (numScrollsReceived+1)); |
| finishJSTest(); |
| } |
| ++numRAFCalls; |
| @@ -139,12 +151,15 @@ |
| } |
| function forceLayout() { |
| - window.scrollTo(0, 0); |
| + window.scrollX; |
| } |
| function runTests() { |
| if (window.testRunner && window.internals) { |
| + // TODO(ymalik): The call to setPageScaleFactorLimits should force |
| + // layout. Fix that instead of forcing layout here. |
| forceLayout(); |
| + testUnscaled(); |
| testPinchedIn(); |
| testMaximallyPinchedOut(); |
| testOnScroll(); |