Chromium Code Reviews| Index: Source/WebKit/chromium/tests/WebFrameTest.cpp |
| diff --git a/Source/WebKit/chromium/tests/WebFrameTest.cpp b/Source/WebKit/chromium/tests/WebFrameTest.cpp |
| index c36270a0b6d95bfc19c75bffcaf1cfd2ea2df98f..a58531e271363d8ec8044f8027aa40b23da6847b 100644 |
| --- a/Source/WebKit/chromium/tests/WebFrameTest.cpp |
| +++ b/Source/WebKit/chromium/tests/WebFrameTest.cpp |
| @@ -357,6 +357,9 @@ TEST_F(WebFrameTest, DeviceScaleFactorUsesDefaultWithoutViewportTag) |
| TEST_F(WebFrameTest, FixedLayoutInitializeAtMinimumPageScale) |
| { |
| + WebCore::Settings::setMockScrollbarsEnabled(true); |
| + WebCore::Settings::setUsesOverlayScrollbars(true); |
| + |
| registerMockedHttpURLLoad("fixed_layout.html"); |
| FixedLayoutTestWebViewClient client; |
| @@ -374,6 +377,48 @@ TEST_F(WebFrameTest, FixedLayoutInitializeAtMinimumPageScale) |
| int defaultFixedLayoutWidth = 980; |
| float minimumPageScaleFactor = viewportWidth / (float) defaultFixedLayoutWidth; |
| EXPECT_EQ(minimumPageScaleFactor, m_webView->pageScaleFactor()); |
| + EXPECT_EQ(minimumPageScaleFactor, m_webView->minimumPageScaleFactor()); |
| + |
| + // Assume the user has pinch zoomed to page scale factor 2. |
| + float userPinchPageScaleFactor = 2; |
| + m_webView->setPageScaleFactorPreservingScrollOffset(userPinchPageScaleFactor); |
| + m_webView->layout(); |
| + |
| + // Make sure we don't reset to initial scale if the page continues to load. |
| + bool isNewNavigation; |
| + WebViewImpl* webViewImpl = static_cast<WebViewImpl*>(m_webView); |
| + webViewImpl ->didCommitLoad(&isNewNavigation, false); |
| + webViewImpl ->didChangeContentsSize(); |
| + EXPECT_EQ(userPinchPageScaleFactor, m_webView->pageScaleFactor()); |
| + |
| + // Make sure we don't reset to initial scale if the viewport size changes. |
| + m_webView->resize(WebSize(viewportWidth, viewportHeight + 100)); |
| + EXPECT_EQ(userPinchPageScaleFactor, m_webView->pageScaleFactor()); |
| +} |
| + |
| +TEST_F(WebFrameTest, WideDocumentInitializeAtMinimumPageScale) |
| +{ |
| + WebCore::Settings::setMockScrollbarsEnabled(true); |
| + WebCore::Settings::setUsesOverlayScrollbars(true); |
| + |
| + registerMockedHttpURLLoad("wide_document.html"); |
| + |
| + FixedLayoutTestWebViewClient client; |
| + client.m_screenInfo.deviceScaleFactor = 1; |
| + int viewportWidth = 640; |
| + int viewportHeight = 480; |
| + |
| + // Make sure we initialize to minimum scale, even if the window size |
| + // only becomes available after the load begins. |
| + m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "wide_document.html", true, 0, &client); |
| + m_webView->enableFixedLayoutMode(true); |
| + m_webView->settings()->setViewportEnabled(true); |
| + m_webView->resize(WebSize(viewportWidth, viewportHeight)); |
| + |
| + int wideDocumentWidth = 1500; |
| + float minimumPageScaleFactor = viewportWidth / (float) wideDocumentWidth; |
| + EXPECT_EQ(minimumPageScaleFactor, m_webView->pageScaleFactor()); |
| + EXPECT_EQ(minimumPageScaleFactor, m_webView->minimumPageScaleFactor()); |
| // Assume the user has pinch zoomed to page scale factor 2. |
| float userPinchPageScaleFactor = 2; |
| @@ -405,6 +450,7 @@ TEST_F(WebFrameTest, setInitializeAtMinimumPageScaleToFalse) |
| m_webView->enableFixedLayoutMode(true); |
| m_webView->settings()->setViewportEnabled(true); |
| m_webView->settings()->setInitializeAtMinimumPageScale(false); |
| + m_webView->settings()->setSupportDeprecatedTargetDensityDPI(true); |
| m_webView->resize(WebSize(viewportWidth, viewportHeight)); |
| // The page must be displayed at 100% zoom. |
| @@ -425,6 +471,7 @@ TEST_F(WebFrameTest, SetInitializeAtMinimumPageScaleToFalseAndNoWideViewport) |
| m_webView->settings()->setViewportEnabled(true); |
| m_webView->settings()->setInitializeAtMinimumPageScale(false); |
| m_webView->settings()->setUseWideViewport(false); |
| + m_webView->settings()->setSupportDeprecatedTargetDensityDPI(true); |
| m_webView->resize(WebSize(viewportWidth, viewportHeight)); |
| // The page must be displayed at 100% zoom, despite that it hosts a wide div element. |
| @@ -516,16 +563,21 @@ TEST_F(WebFrameTest, PageViewportInitialScaleOverridesInitializeAtMinimumScale) |
| TEST_F(WebFrameTest, setInitialPageScaleFactorPermanently) |
| { |
| + WebCore::Settings::setMockScrollbarsEnabled(true); |
| + WebCore::Settings::setUsesOverlayScrollbars(true); |
| + |
| registerMockedHttpURLLoad("fixed_layout.html"); |
| FixedLayoutTestWebViewClient client; |
| client.m_screenInfo.deviceScaleFactor = 1; |
| - float enforcedPageScalePactor = 2.0f; |
| + float enforcedPageScaleFactor = 2.0f; |
| m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "fixed_layout.html", true, 0, &client); |
| - m_webView->setInitialPageScaleOverride(enforcedPageScalePactor); |
| + m_webView->settings()->setSupportDeprecatedTargetDensityDPI(true); |
| + m_webView->setInitialPageScaleOverride(enforcedPageScaleFactor); |
| + m_webView->layout(); |
| - EXPECT_EQ(enforcedPageScalePactor, m_webView->pageScaleFactor()); |
| + EXPECT_EQ(enforcedPageScaleFactor, m_webView->pageScaleFactor()); |
| int viewportWidth = 640; |
| int viewportHeight = 480; |
| @@ -534,17 +586,14 @@ TEST_F(WebFrameTest, setInitialPageScaleFactorPermanently) |
| m_webView->resize(WebSize(viewportWidth, viewportHeight)); |
| m_webView->layout(); |
| - EXPECT_EQ(enforcedPageScalePactor, m_webView->pageScaleFactor()); |
| - |
| - m_webView->enableFixedLayoutMode(false); |
| - m_webView->settings()->setViewportEnabled(false); |
| - m_webView->layout(); |
| - |
| - EXPECT_EQ(enforcedPageScalePactor, m_webView->pageScaleFactor()); |
| + EXPECT_EQ(enforcedPageScaleFactor, m_webView->pageScaleFactor()); |
| m_webView->setInitialPageScaleOverride(-1); |
| m_webView->layout(); |
| - EXPECT_EQ(1.0f, m_webView->pageScaleFactor()); |
| + |
| + int defaultFixedLayoutWidth = 980; |
| + float minimumPageScaleFactor = viewportWidth / (float) defaultFixedLayoutWidth; |
| + EXPECT_EQ(minimumPageScaleFactor, m_webView->pageScaleFactor()); |
|
mnaganov (inactive)
2013/05/14 09:31:23
I'm a bit worried about this condition. There is a
aelias_OOO_until_Jul13
2013/05/14 21:39:52
OK, changed this to 1.0 + setInitializeAtMinimumPa
|
| } |
| TEST_F(WebFrameTest, PermanentInitialPageScaleFactorOverridesInitializeAtMinimumScale) |
| @@ -750,6 +799,8 @@ TEST_F(WebFrameTest, pageScaleFactorDoesNotApplyCssTransform) |
| TEST_F(WebFrameTest, targetDensityDpiHigh) |
| { |
| + WebCore::Settings::setMockScrollbarsEnabled(true); |
| + WebCore::Settings::setUsesOverlayScrollbars(true); |
| registerMockedHttpURLLoad("viewport-target-densitydpi-high.html"); |
| FixedLayoutTestWebViewClient client; |
| @@ -771,6 +822,8 @@ TEST_F(WebFrameTest, targetDensityDpiHigh) |
| TEST_F(WebFrameTest, targetDensityDpiDevice) |
| { |
| + WebCore::Settings::setMockScrollbarsEnabled(true); |
| + WebCore::Settings::setUsesOverlayScrollbars(true); |
| registerMockedHttpURLLoad("viewport-target-densitydpi-device.html"); |
| float deviceScaleFactors[] = { 1.0f, 4.0f / 3.0f, 2.0f }; |
| @@ -975,8 +1028,11 @@ TEST_F(WebFrameTest, pageScaleFactorUpdatesScrollbars) |
| EXPECT_EQ(view->scrollSize(WebCore::VerticalScrollbar), view->contentsSize().height() - view->visibleContentRect().height()); |
| } |
| -TEST_F(WebFrameTest, CanOverrideMaximumScaleFactor) |
| +TEST_F(WebFrameTest, CanOverrideScaleLimits) |
| { |
| + WebCore::Settings::setMockScrollbarsEnabled(true); |
| + WebCore::Settings::setUsesOverlayScrollbars(true); |
| + |
| registerMockedHttpURLLoad("no_scale_for_you.html"); |
| FixedLayoutTestWebViewClient client; |
| @@ -989,12 +1045,20 @@ TEST_F(WebFrameTest, CanOverrideMaximumScaleFactor) |
| m_webView->settings()->setViewportEnabled(true); |
| m_webView->resize(WebSize(viewportWidth, viewportHeight)); |
| - EXPECT_EQ(1.0f, m_webView->maximumPageScaleFactor()); |
| + EXPECT_EQ(2.0f, m_webView->minimumPageScaleFactor()); |
| + EXPECT_EQ(2.0f, m_webView->maximumPageScaleFactor()); |
| + |
| + m_webView->setIgnoreViewportTagScaleLimits(true); |
| + m_webView->layout(); |
| + |
| + EXPECT_EQ(1.0f, m_webView->minimumPageScaleFactor()); |
| + EXPECT_EQ(5.0f, m_webView->maximumPageScaleFactor()); |
| - m_webView->setIgnoreViewportTagMaximumScale(true); |
| + m_webView->setIgnoreViewportTagScaleLimits(false); |
| m_webView->layout(); |
| - EXPECT_EQ(4.0f, m_webView->maximumPageScaleFactor()); |
| + EXPECT_EQ(2.0f, m_webView->minimumPageScaleFactor()); |
| + EXPECT_EQ(2.0f, m_webView->maximumPageScaleFactor()); |
| } |
| TEST_F(WebFrameTest, updateOverlayScrollbarLayers) |