Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2247)

Unified Diff: Source/web/tests/WebFrameTest.cpp

Issue 78963008: Moved remaining legacy viewport tests to unit tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/web/tests/WebFrameTest.cpp
diff --git a/Source/web/tests/WebFrameTest.cpp b/Source/web/tests/WebFrameTest.cpp
index bd52f357308a5aef9510c41ef3b0788cb2418baa..33ef8eacc6c5c947dcc1b54a0aed15cc0707d59b 100644
--- a/Source/web/tests/WebFrameTest.cpp
+++ b/Source/web/tests/WebFrameTest.cpp
@@ -98,10 +98,15 @@ using WebCore::HitTestRequest;
using WebCore::Range;
using blink::URLTestHelpers::toKURL;
using blink::FrameTestHelpers::runPendingTasks;
+using blink::FrameTestHelpers::setViewportSettings;
+using blink::FrameTestHelpers::UseMockScrollbarSettings;
+using blink::FrameTestHelpers::UseAndroidViewportUAStylesheet;
namespace {
const int touchPointPadding = 32;
+const int androidDefaultLayoutWidth = 980;
+
#define EXPECT_EQ_RECT(a, b) \
EXPECT_EQ(a.x(), b.x()); \
@@ -136,6 +141,9 @@ private:
OwnPtr<WebLayerTreeView> m_layerTreeView;
};
+class UseAndroidTestConfig : public UseMockScrollbarSettings, public UseAndroidViewportUAStylesheet {
+};
+
class WebFrameTest : public testing::Test {
protected:
WebFrameTest()
@@ -181,22 +189,6 @@ protected:
std::string m_chromeURL;
};
-class UseMockScrollbarSettings {
-public:
- UseMockScrollbarSettings()
- {
- WebCore::Settings::setMockScrollbarsEnabled(true);
- WebCore::RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(true);
- EXPECT_TRUE(WebCore::ScrollbarTheme::theme()->usesOverlayScrollbars());
- }
-
- ~UseMockScrollbarSettings()
- {
- WebCore::Settings::setMockScrollbarsEnabled(false);
- WebCore::RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(false);
- }
-};
-
TEST_F(WebFrameTest, ContentText)
{
registerMockedHttpURLLoad("iframes_test.html");
@@ -629,31 +621,30 @@ TEST_F(WebFrameTest, DispatchMessageEventWithOriginCheck)
EXPECT_EQ(std::string::npos, content.find("Message 2."));
}
-class FixedLayoutTestWebViewClient : public WebViewClient {
+class ViewportWebViewClient : public WebViewClient {
public:
virtual WebScreenInfo screenInfo() OVERRIDE { return m_screenInfo; }
WebScreenInfo m_screenInfo;
};
-TEST_F(WebFrameTest, FrameViewNeedsLayoutOnFixedLayoutResize)
+TEST_F(WebFrameTest, FrameViewNeedsLayoutOnViewportResize)
{
- UseMockScrollbarSettings mockScrollbarSettings;
- registerMockedHttpURLLoad("fixed_layout.html");
+ UseAndroidTestConfig useAndroidTestConfig;
+ registerMockedHttpURLLoad("no_viewport_tag.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
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.
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &client);
- webViewHelper.webView()->settings()->setViewportEnabled(true);
+ webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
webViewHelper.webView()->layout();
- webViewHelper.webViewImpl()->setFixedLayoutSize(WebCore::IntSize(100, 100));
+ webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->setLayoutSize(WebCore::IntSize(100, 100));
EXPECT_TRUE(webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->needsLayout());
int prevLayoutCount = webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutCount();
@@ -663,20 +654,19 @@ TEST_F(WebFrameTest, FrameViewNeedsLayoutOnFixedLayoutResize)
webViewHelper.webViewImpl()->layout();
}
-TEST_F(WebFrameTest, ChangeInFixedLayoutTriggersTextAutosizingRecalculate)
+TEST_F(WebFrameTest, ChangeInViewportLayoutSizeTriggersTextAutosizingRecalculate)
{
- UseMockScrollbarSettings mockScrollbarSettings;
- registerMockedHttpURLLoad("fixed_layout.html");
+ UseAndroidTestConfig useAndroidTestConfig;
+ registerMockedHttpURLLoad("no_viewport_tag.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
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.
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &client);
- webViewHelper.webView()->settings()->setViewportEnabled(true);
+ webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0, &client, setViewportSettings);
WebCore::Document* document = webViewHelper.webViewImpl()->page()->mainFrame()->document();
document->settings()->setTextAutosizingEnabled(true);
@@ -716,8 +706,8 @@ TEST_F(WebFrameTest, ChangeInFixedLayoutTriggersTextAutosizingRecalculate)
TEST_F(WebFrameTest, FixedLayoutSizeStopsResizeFromChangingLayoutSize)
{
- UseMockScrollbarSettings mockScrollbarSettings;
- registerMockedHttpURLLoad("fixed_layout.html");
+ UseAndroidTestConfig useAndroidTestConfig;
+ registerMockedHttpURLLoad("no_viewport_tag.html");
int viewportWidth = 640;
int viewportHeight = 480;
@@ -726,8 +716,7 @@ TEST_F(WebFrameTest, FixedLayoutSizeStopsResizeFromChangingLayoutSize)
int fixedLayoutHeight = viewportHeight / 2;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html");
- webViewHelper.webView()->settings()->setViewportEnabled(true);
+ webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", false, 0, 0, setViewportSettings);
webViewHelper.webView()->setFixedLayoutSize(WebSize(fixedLayoutWidth, fixedLayoutHeight));
webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
webViewHelper.webView()->layout();
@@ -738,8 +727,8 @@ TEST_F(WebFrameTest, FixedLayoutSizeStopsResizeFromChangingLayoutSize)
TEST_F(WebFrameTest, FixedLayoutSizePreventsResizeFromChangingPageScale)
{
- UseMockScrollbarSettings mockScrollbarSettings;
- registerMockedHttpURLLoad("fixed_layout.html");
+ UseAndroidTestConfig useAndroidTestConfig;
+ registerMockedHttpURLLoad("no_viewport_tag.html");
int viewportWidth = 640;
int viewportHeight = 480;
@@ -748,8 +737,7 @@ TEST_F(WebFrameTest, FixedLayoutSizePreventsResizeFromChangingPageScale)
int fixedLayoutHeight = viewportHeight / 2;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html");
- webViewHelper.webView()->settings()->setViewportEnabled(true);
+ webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", false, 0, 0, setViewportSettings);
webViewHelper.webView()->setFixedLayoutSize(WebSize(fixedLayoutWidth, fixedLayoutHeight));
webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
webViewHelper.webView()->layout();
@@ -762,8 +750,8 @@ TEST_F(WebFrameTest, FixedLayoutSizePreventsResizeFromChangingPageScale)
TEST_F(WebFrameTest, FixedLayoutSizePreventsLayoutFromChangingPageScale)
{
- UseMockScrollbarSettings mockScrollbarSettings;
- registerMockedHttpURLLoad("fixed_layout.html");
+ UseAndroidTestConfig useAndroidTestConfig;
+ registerMockedHttpURLLoad("no_viewport_tag.html");
int viewportWidth = 640;
int viewportHeight = 480;
@@ -772,8 +760,7 @@ TEST_F(WebFrameTest, FixedLayoutSizePreventsLayoutFromChangingPageScale)
int fixedLayoutHeight = viewportHeight * 2;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html");
- webViewHelper.webView()->settings()->setViewportEnabled(true);
+ webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", false, 0, 0, setViewportSettings);
webViewHelper.webView()->setFixedLayoutSize(WebSize(viewportWidth, viewportHeight));
webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
webViewHelper.webView()->layout();
@@ -787,7 +774,7 @@ TEST_F(WebFrameTest, FixedLayoutSizePreventsLayoutFromChangingPageScale)
TEST_F(WebFrameTest, PreferredSizeAndContentSizeReportedCorrectlyWithZeroHeightFixedLayout)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad("200-by-300.html");
int windowWidth = 100;
@@ -797,12 +784,11 @@ TEST_F(WebFrameTest, PreferredSizeAndContentSizeReportedCorrectlyWithZeroHeightF
int divWidth = 200;
int divHeight = 300;
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "200-by-300.html", true, 0, &client);
- webViewHelper.webView()->settings()->setViewportEnabled(true);
+ webViewHelper.initializeAndLoad(m_baseURL + "200-by-300.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->resize(WebSize(windowWidth, windowHeight));
webViewHelper.webView()->setFixedLayoutSize(WebSize(viewportWidth, viewportHeight));
webViewHelper.webView()->layout();
@@ -816,19 +802,18 @@ TEST_F(WebFrameTest, PreferredSizeAndContentSizeReportedCorrectlyWithZeroHeightF
TEST_F(WebFrameTest, DisablingFixedLayoutSizeSetsCorrectLayoutSize)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad("no_viewport_tag.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1;
int viewportWidth = 640;
int viewportHeight = 480;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0, &client);
+ webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDPI(true);
webViewHelper.webView()->settings()->setUseWideViewport(true);
- webViewHelper.webView()->settings()->setViewportEnabled(true);
webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
webViewHelper.webView()->setFixedLayoutSize(WebSize(viewportWidth, viewportHeight));
@@ -839,24 +824,22 @@ TEST_F(WebFrameTest, DisablingFixedLayoutSizeSetsCorrectLayoutSize)
webViewHelper.webView()->setFixedLayoutSize(WebSize(0, 0));
EXPECT_TRUE(webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->needsLayout());
webViewHelper.webView()->layout();
- EXPECT_EQ(980, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->contentsSize().width());
+ EXPECT_EQ(androidDefaultLayoutWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->contentsSize().width());
}
TEST_F(WebFrameTest, DeviceScaleFactorUsesDefaultWithoutViewportTag)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad("no_viewport_tag.html");
int viewportWidth = 640;
int viewportHeight = 480;
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 2;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0, &client);
-
- webViewHelper.webView()->settings()->setViewportEnabled(true);
+ webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
webViewHelper.webView()->layout();
@@ -872,13 +855,13 @@ TEST_F(WebFrameTest, DeviceScaleFactorUsesDefaultWithoutViewportTag)
webViewHelper.webView()->mainFrame()->contentAsText(1024).utf8();
}
-TEST_F(WebFrameTest, FixedLayoutInitializeAtMinimumScale)
+TEST_F(WebFrameTest, InitializeAtMinimumScaleWhenViewportEnabled)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
- registerMockedHttpURLLoad("fixed_layout.html");
+ registerMockedHttpURLLoad("no_viewport_tag.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1;
int viewportWidth = 640;
int viewportHeight = 480;
@@ -886,12 +869,10 @@ TEST_F(WebFrameTest, FixedLayoutInitializeAtMinimumScale)
// Make sure we initialize to minimum scale, even if the window size
// only becomes available after the load begins.
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &client);
- webViewHelper.webView()->settings()->setViewportEnabled(true);
+ webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
- int defaultFixedLayoutWidth = 980;
- float minimumPageScaleFactor = viewportWidth / (float) defaultFixedLayoutWidth;
+ float minimumPageScaleFactor = viewportWidth / (float) androidDefaultLayoutWidth;
EXPECT_EQ(minimumPageScaleFactor, webViewHelper.webView()->pageScaleFactor());
EXPECT_EQ(minimumPageScaleFactor, webViewHelper.webView()->minimumPageScaleFactor());
@@ -912,11 +893,11 @@ TEST_F(WebFrameTest, FixedLayoutInitializeAtMinimumScale)
TEST_F(WebFrameTest, WideDocumentInitializeAtMinimumScale)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad("wide_document.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1;
int viewportWidth = 640;
int viewportHeight = 480;
@@ -924,8 +905,7 @@ TEST_F(WebFrameTest, WideDocumentInitializeAtMinimumScale)
// Make sure we initialize to minimum scale, even if the window size
// only becomes available after the load begins.
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "wide_document.html", true, 0, &client);
- webViewHelper.webView()->settings()->setViewportEnabled(true);
+ webViewHelper.initializeAndLoad(m_baseURL + "wide_document.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
int wideDocumentWidth = 1500;
@@ -950,17 +930,16 @@ TEST_F(WebFrameTest, WideDocumentInitializeAtMinimumScale)
TEST_F(WebFrameTest, DelayedViewportInitialScale)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad("viewport-auto-initial-scale.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1;
int viewportWidth = 640;
int viewportHeight = 480;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.html", true, 0, &client);
- webViewHelper.webView()->settings()->setViewportEnabled(true);
+ webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
EXPECT_EQ(0.25f, webViewHelper.webView()->pageScaleFactor());
@@ -975,17 +954,16 @@ TEST_F(WebFrameTest, DelayedViewportInitialScale)
TEST_F(WebFrameTest, setLoadWithOverviewModeToFalse)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad("viewport-auto-initial-scale.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1;
int viewportWidth = 640;
int viewportHeight = 480;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.html", true, 0, &client);
- webViewHelper.webView()->settings()->setViewportEnabled(true);
+ webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
webViewHelper.webView()->settings()->setLoadWithOverviewMode(false);
webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
@@ -996,17 +974,16 @@ TEST_F(WebFrameTest, setLoadWithOverviewModeToFalse)
TEST_F(WebFrameTest, SetLoadWithOverviewModeToFalseAndNoWideViewport)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad("large-div.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1;
int viewportWidth = 640;
int viewportHeight = 480;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "large-div.html", true, 0, &client);
- webViewHelper.webView()->settings()->setViewportEnabled(true);
+ webViewHelper.initializeAndLoad(m_baseURL + "large-div.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->settings()->setLoadWithOverviewMode(false);
webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
webViewHelper.webView()->settings()->setUseWideViewport(false);
@@ -1016,27 +993,18 @@ TEST_F(WebFrameTest, SetLoadWithOverviewModeToFalseAndNoWideViewport)
EXPECT_EQ(1.0f, webViewHelper.webView()->pageScaleFactor());
}
-// Viewport settings need to be set before the page gets loaded
-static void enableViewportSettings(WebSettings* settings)
-{
- settings->setViewportMetaEnabled(true);
- settings->setViewportEnabled(true);
- settings->setMainFrameResizesAreOrientationChanges(true);
-}
-
TEST_F(WebFrameTest, NoWideViewportIgnoresPageViewportWidth)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad("viewport-auto-initial-scale.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1;
int viewportWidth = 640;
int viewportHeight = 480;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.html", true, 0, &client);
- webViewHelper.webView()->settings()->setViewportEnabled(true);
+ webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
webViewHelper.webView()->settings()->setUseWideViewport(false);
webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
@@ -1048,16 +1016,16 @@ TEST_F(WebFrameTest, NoWideViewportIgnoresPageViewportWidth)
TEST_F(WebFrameTest, NoWideViewportIgnoresPageViewportWidthButAccountsScale)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad("viewport-wide-2x-initial-scale.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1;
int viewportWidth = 640;
int viewportHeight = 480;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "viewport-wide-2x-initial-scale.html", true, 0, &client, enableViewportSettings);
+ webViewHelper.initializeAndLoad(m_baseURL + "viewport-wide-2x-initial-scale.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
webViewHelper.webView()->settings()->setUseWideViewport(false);
webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
@@ -1068,80 +1036,79 @@ TEST_F(WebFrameTest, NoWideViewportIgnoresPageViewportWidthButAccountsScale)
EXPECT_EQ(viewportHeight / 2, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->contentsSize().height());
}
-TEST_F(WebFrameTest, WideViewportSetsTo980WithoutViewportTag)
+TEST_F(WebFrameTest, WideViewportSetsToDefaultWidthWithoutViewportTag)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad("no_viewport_tag.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1;
int viewportWidth = 640;
int viewportHeight = 480;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0, &client);
+ webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
webViewHelper.webView()->settings()->setUseWideViewport(true);
- webViewHelper.webView()->settings()->setViewportEnabled(true);
webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
- EXPECT_EQ(980, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->contentsSize().width());
- EXPECT_EQ(980.0 / viewportWidth * viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->contentsSize().height());
+ EXPECT_EQ(androidDefaultLayoutWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->contentsSize().width());
+ EXPECT_EQ(static_cast<float>(androidDefaultLayoutWidth) / viewportWidth * viewportHeight,
+ webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->contentsSize().height());
}
TEST_F(WebFrameTest, NoWideViewportAndHeightInMeta)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad("viewport-height-1000.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1;
int viewportWidth = 640;
int viewportHeight = 480;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "viewport-height-1000.html", true, 0, &client);
+ webViewHelper.initializeAndLoad(m_baseURL + "viewport-height-1000.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
webViewHelper.webView()->settings()->setUseWideViewport(false);
- webViewHelper.webView()->settings()->setViewportEnabled(true);
webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->contentsSize().width());
}
-TEST_F(WebFrameTest, WideViewportSetsTo980WithAutoWidth)
+TEST_F(WebFrameTest, WideViewportSetsToDefaultWidthWithAutoWidth)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad("viewport-2x-initial-scale.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1;
int viewportWidth = 640;
int viewportHeight = 480;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "viewport-2x-initial-scale.html", true, 0, &client);
+ webViewHelper.initializeAndLoad(m_baseURL + "viewport-2x-initial-scale.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
webViewHelper.webView()->settings()->setUseWideViewport(true);
- webViewHelper.webView()->settings()->setViewportEnabled(true);
webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
- EXPECT_EQ(980, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->contentsSize().width());
- EXPECT_EQ(980.0 / viewportWidth * viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->contentsSize().height());
+ EXPECT_EQ(androidDefaultLayoutWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->contentsSize().width());
+ EXPECT_EQ(static_cast<float>(androidDefaultLayoutWidth) / viewportWidth * viewportHeight,
+ webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->contentsSize().height());
}
TEST_F(WebFrameTest, PageViewportInitialScaleOverridesLoadWithOverviewMode)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad("viewport-wide-2x-initial-scale.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1;
int viewportWidth = 640;
int viewportHeight = 480;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "viewport-wide-2x-initial-scale.html", true, 0, &client, enableViewportSettings);
+ webViewHelper.initializeAndLoad(m_baseURL + "viewport-wide-2x-initial-scale.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->settings()->setLoadWithOverviewMode(false);
webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
@@ -1151,20 +1118,19 @@ TEST_F(WebFrameTest, PageViewportInitialScaleOverridesLoadWithOverviewMode)
TEST_F(WebFrameTest, setInitialPageScaleFactorPermanently)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
- registerMockedHttpURLLoad("fixed_layout.html");
+ registerMockedHttpURLLoad("no_viewport_tag.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1;
float enforcedPageScaleFactor = 2.0f;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &client);
+ webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
webViewHelper.webView()->settings()->setLoadWithOverviewMode(false);
webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor);
- webViewHelper.webView()->settings()->setViewportEnabled(true);
webViewHelper.webView()->layout();
EXPECT_EQ(enforcedPageScaleFactor, webViewHelper.webView()->pageScaleFactor());
@@ -1183,17 +1149,17 @@ TEST_F(WebFrameTest, setInitialPageScaleFactorPermanently)
TEST_F(WebFrameTest, PermanentInitialPageScaleFactorOverridesLoadWithOverviewMode)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad("viewport-auto-initial-scale.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1;
int viewportWidth = 640;
int viewportHeight = 480;
float enforcedPageScaleFactor = 0.5f;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.html", true, 0, &client, enableViewportSettings);
+ webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->settings()->setLoadWithOverviewMode(false);
webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor);
webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
@@ -1203,17 +1169,17 @@ TEST_F(WebFrameTest, PermanentInitialPageScaleFactorOverridesLoadWithOverviewMod
TEST_F(WebFrameTest, PermanentInitialPageScaleFactorOverridesPageViewportInitialScale)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad("viewport-wide-2x-initial-scale.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1;
int viewportWidth = 640;
int viewportHeight = 480;
float enforcedPageScaleFactor = 0.5f;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "viewport-wide-2x-initial-scale.html", true, 0, &client, enableViewportSettings);
+ webViewHelper.initializeAndLoad(m_baseURL + "viewport-wide-2x-initial-scale.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor);
webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
@@ -1222,7 +1188,8 @@ TEST_F(WebFrameTest, PermanentInitialPageScaleFactorOverridesPageViewportInitial
TEST_F(WebFrameTest, SmallPermanentInitialPageScaleFactorIsClobbered)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
+
const char* pages[] = {
// These pages trigger the clobbering condition. There must be a matching item in "pageScaleFactors" array.
"viewport-device-0.5x-initial-scale.html",
@@ -1235,7 +1202,7 @@ TEST_F(WebFrameTest, SmallPermanentInitialPageScaleFactorIsClobbered)
for (size_t i = 0; i < ARRAY_SIZE(pages); ++i)
registerMockedHttpURLLoad(pages[i]);
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1;
int viewportWidth = 400;
int viewportHeight = 300;
@@ -1244,8 +1211,7 @@ TEST_F(WebFrameTest, SmallPermanentInitialPageScaleFactorIsClobbered)
for (size_t i = 0; i < ARRAY_SIZE(pages); ++i) {
for (int quirkEnabled = 0; quirkEnabled <= 1; ++quirkEnabled) {
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + pages[i], true, 0, &client);
- webViewHelper.webView()->settings()->setViewportEnabled(true);
+ webViewHelper.initializeAndLoad(m_baseURL + pages[i], true, 0, &client, setViewportSettings);
webViewHelper.webView()->settings()->setClobberUserAgentInitialScaleQuirk(quirkEnabled);
webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor);
webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
@@ -1258,17 +1224,16 @@ TEST_F(WebFrameTest, SmallPermanentInitialPageScaleFactorIsClobbered)
TEST_F(WebFrameTest, PermanentInitialPageScaleFactorAffectsLayoutWidth)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1;
int viewportWidth = 640;
int viewportHeight = 480;
float enforcedPageScaleFactor = 0.5;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad("about:blank", true, 0, &client);
- webViewHelper.webView()->settings()->setViewportEnabled(true);
+ webViewHelper.initializeAndLoad("about:blank", true, 0, &client, setViewportSettings);
webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
webViewHelper.webView()->settings()->setUseWideViewport(false);
webViewHelper.webView()->settings()->setLoadWithOverviewMode(false);
@@ -1281,16 +1246,16 @@ TEST_F(WebFrameTest, PermanentInitialPageScaleFactorAffectsLayoutWidth)
TEST_F(WebFrameTest, WideViewportInitialScaleDoesNotExpandFixedLayoutWidth)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad("viewport-device-0.5x-initial-scale.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1;
int viewportWidth = 640;
int viewportHeight = 480;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "viewport-device-0.5x-initial-scale.html", true, 0, &client, enableViewportSettings);
+ webViewHelper.initializeAndLoad(m_baseURL + "viewport-device-0.5x-initial-scale.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
webViewHelper.webView()->settings()->setUseWideViewport(true);
webViewHelper.webView()->settings()->setViewportMetaLayoutSizeQuirk(true);
@@ -1307,16 +1272,16 @@ TEST_F(WebFrameTest, WideViewportInitialScaleDoesNotExpandFixedLayoutWidth)
TEST_F(WebFrameTest, WideViewportAndWideContentWithInitialScale)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad("wide_document_width_viewport.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1;
int viewportWidth = 600;
int viewportHeight = 800;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad("about:blank", true, 0, &client, enableViewportSettings);
+ webViewHelper.initializeAndLoad("about:blank", true, 0, &client, setViewportSettings);
webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
webViewHelper.webView()->settings()->setUseWideViewport(true);
webViewHelper.webView()->settings()->setViewportMetaLayoutSizeQuirk(true);
@@ -1334,17 +1299,16 @@ TEST_F(WebFrameTest, WideViewportAndWideContentWithInitialScale)
TEST_F(WebFrameTest, WideViewportQuirkClobbersHeight)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad("viewport-height-1000.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1;
int viewportWidth = 600;
int viewportHeight = 800;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad("about:blank", true, 0, &client);
- webViewHelper.webView()->settings()->setViewportEnabled(true);
+ webViewHelper.initializeAndLoad("about:blank", true, 0, &client, setViewportSettings);
webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
webViewHelper.webView()->settings()->setUseWideViewport(false);
webViewHelper.webView()->settings()->setViewportMetaLayoutSizeQuirk(true);
@@ -1360,17 +1324,16 @@ TEST_F(WebFrameTest, WideViewportQuirkClobbersHeight)
TEST_F(WebFrameTest, LayoutSize320Quirk)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad("viewport/viewport-30.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1;
int viewportWidth = 600;
int viewportHeight = 800;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad("about:blank", true, 0, &client);
- webViewHelper.webView()->settings()->setViewportEnabled(true);
+ webViewHelper.initializeAndLoad("about:blank", true, 0, &client, setViewportSettings);
webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
webViewHelper.webView()->settings()->setUseWideViewport(true);
webViewHelper.webView()->settings()->setViewportMetaLayoutSizeQuirk(true);
@@ -1403,16 +1366,16 @@ TEST_F(WebFrameTest, LayoutSize320Quirk)
TEST_F(WebFrameTest, ZeroValuesQuirk)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad("viewport-zero-values.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1;
int viewportWidth = 640;
int viewportHeight = 480;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initialize(true, 0, &client, enableViewportSettings);
+ webViewHelper.initialize(true, 0, &client, setViewportSettings);
webViewHelper.webView()->settings()->setViewportMetaZeroValuesQuirk(true);
webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
webViewHelper.webView()->settings()->setViewportMetaLayoutSizeQuirk(true);
@@ -1433,7 +1396,7 @@ TEST_F(WebFrameTest, OverflowHiddenDisablesScrolling)
{
registerMockedHttpURLLoad("body-overflow-hidden.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1;
int viewportWidth = 640;
int viewportHeight = 480;
@@ -1452,7 +1415,7 @@ TEST_F(WebFrameTest, IgnoreOverflowHiddenQuirk)
{
registerMockedHttpURLLoad("body-overflow-hidden.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1;
int viewportWidth = 640;
int viewportHeight = 480;
@@ -1470,17 +1433,17 @@ TEST_F(WebFrameTest, IgnoreOverflowHiddenQuirk)
TEST_F(WebFrameTest, NonZeroValuesNoQuirk)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad("viewport-nonzero-values.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1;
int viewportWidth = 640;
int viewportHeight = 480;
float expectedPageScaleFactor = 0.5f;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initialize(true, 0, &client, enableViewportSettings);
+ webViewHelper.initialize(true, 0, &client, setViewportSettings);
webViewHelper.webView()->settings()->setViewportMetaZeroValuesQuirk(true);
webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "viewport-nonzero-values.html");
@@ -1498,18 +1461,17 @@ TEST_F(WebFrameTest, NonZeroValuesNoQuirk)
TEST_F(WebFrameTest, setPageScaleFactorDoesNotLayout)
{
- UseMockScrollbarSettings mockScrollbarSettings;
- registerMockedHttpURLLoad("fixed_layout.html");
+ UseAndroidTestConfig useAndroidTestConfig;
+ registerMockedHttpURLLoad("no_viewport_tag.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1;
// Small viewport to ensure there are always scrollbars.
int viewportWidth = 64;
int viewportHeight = 48;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &client);
- webViewHelper.webView()->settings()->setViewportEnabled(true);
+ webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
webViewHelper.webView()->layout();
@@ -1521,18 +1483,17 @@ TEST_F(WebFrameTest, setPageScaleFactorDoesNotLayout)
TEST_F(WebFrameTest, setPageScaleFactorWithOverlayScrollbarsDoesNotLayout)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
- registerMockedHttpURLLoad("fixed_layout.html");
+ registerMockedHttpURLLoad("no_viewport_tag.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1;
int viewportWidth = 640;
int viewportHeight = 480;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &client);
- webViewHelper.webView()->settings()->setViewportEnabled(true);
+ webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
webViewHelper.webView()->layout();
@@ -1545,14 +1506,14 @@ TEST_F(WebFrameTest, setPageScaleFactorWithOverlayScrollbarsDoesNotLayout)
TEST_F(WebFrameTest, setPageScaleFactorBeforeFrameHasView)
{
- registerMockedHttpURLLoad("fixed_layout.html");
+ registerMockedHttpURLLoad("no_viewport_tag.html");
float pageScaleFactor = 3;
FrameTestHelpers::WebViewHelper webViewHelper;
webViewHelper.initializeAndLoad("about:html", true, 0, 0);
webViewHelper.webView()->setPageScaleFactor(pageScaleFactor, WebPoint());
- FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "fixed_layout.html");
+ FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "no_viewport_tag.html");
Platform::current()->unitTestSupport()->serveAsynchronousMockedRequests();
WebCore::FrameView* view = webViewHelper.webViewImpl()->mainFrameImpl()->frameView();
EXPECT_EQ(pageScaleFactor, view->visibleContentScaleFactor());
@@ -1560,17 +1521,16 @@ TEST_F(WebFrameTest, setPageScaleFactorBeforeFrameHasView)
TEST_F(WebFrameTest, pageScaleFactorWrittenToHistoryItem)
{
- UseMockScrollbarSettings mockScrollbarSettings;
- registerMockedHttpURLLoad("fixed_layout.html");
+ UseAndroidTestConfig useAndroidTestConfig;
+ registerMockedHttpURLLoad("no_viewport_tag.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1;
int viewportWidth = 640;
int viewportHeight = 480;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &client);
- webViewHelper.webView()->settings()->setViewportEnabled(true);
+ webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
webViewHelper.webView()->layout();
@@ -1584,18 +1544,17 @@ TEST_F(WebFrameTest, pageScaleFactorWrittenToHistoryItem)
TEST_F(WebFrameTest, pageScaleFactorShrinksViewport)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad("large-div.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1;
// Small viewport to ensure there are always scrollbars.
int viewportWidth = 64;
int viewportHeight = 48;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "large-div.html", true, 0, &client);
- webViewHelper.webView()->settings()->setViewportEnabled(true);
+ webViewHelper.initializeAndLoad(m_baseURL + "large-div.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
webViewHelper.webView()->layout();
@@ -1620,32 +1579,31 @@ TEST_F(WebFrameTest, pageScaleFactorShrinksViewport)
TEST_F(WebFrameTest, pageScaleFactorDoesNotApplyCssTransform)
{
- UseMockScrollbarSettings mockScrollbarSettings;
- registerMockedHttpURLLoad("fixed_layout.html");
+ UseAndroidTestConfig useAndroidTestConfig;
+ registerMockedHttpURLLoad("no_viewport_tag.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1;
int viewportWidth = 640;
int viewportHeight = 480;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &client);
- webViewHelper.webView()->settings()->setViewportEnabled(true);
+ webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
webViewHelper.webView()->layout();
webViewHelper.webView()->setPageScaleFactor(2, WebPoint());
- EXPECT_EQ(980, webViewHelper.webViewImpl()->page()->mainFrame()->contentRenderer()->unscaledDocumentRect().width());
- EXPECT_EQ(980, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->contentsSize().width());
+ EXPECT_EQ(androidDefaultLayoutWidth, webViewHelper.webViewImpl()->page()->mainFrame()->contentRenderer()->unscaledDocumentRect().width());
+ EXPECT_EQ(androidDefaultLayoutWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->contentsSize().width());
}
TEST_F(WebFrameTest, targetDensityDpiHigh)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad("viewport-target-densitydpi-high.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
// high-dpi = 240
float targetDpi = 240.0f;
float deviceScaleFactors[] = { 1.0f, 4.0f / 3.0f, 2.0f };
@@ -1658,7 +1616,7 @@ TEST_F(WebFrameTest, targetDensityDpiHigh)
client.m_screenInfo.deviceScaleFactor = deviceScaleFactor;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "viewport-target-densitydpi-high.html", true, 0, &client, enableViewportSettings);
+ webViewHelper.initializeAndLoad(m_baseURL + "viewport-target-densitydpi-high.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDPI(true);
webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
@@ -1674,12 +1632,12 @@ TEST_F(WebFrameTest, targetDensityDpiHigh)
TEST_F(WebFrameTest, targetDensityDpiDevice)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad("viewport-target-densitydpi-device.html");
float deviceScaleFactors[] = { 1.0f, 4.0f / 3.0f, 2.0f };
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
int viewportWidth = 640;
int viewportHeight = 480;
@@ -1687,7 +1645,7 @@ TEST_F(WebFrameTest, targetDensityDpiDevice)
client.m_screenInfo.deviceScaleFactor = deviceScaleFactors[i];
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "viewport-target-densitydpi-device.html", true, 0, &client, enableViewportSettings);
+ webViewHelper.initializeAndLoad(m_baseURL + "viewport-target-densitydpi-device.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDPI(true);
webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
@@ -1700,12 +1658,12 @@ TEST_F(WebFrameTest, targetDensityDpiDevice)
TEST_F(WebFrameTest, targetDensityDpiDeviceAndFixedWidth)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad("viewport-target-densitydpi-device-and-fixed-width.html");
float deviceScaleFactors[] = { 1.0f, 4.0f / 3.0f, 2.0f };
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
int viewportWidth = 640;
int viewportHeight = 480;
@@ -1713,7 +1671,7 @@ TEST_F(WebFrameTest, targetDensityDpiDeviceAndFixedWidth)
client.m_screenInfo.deviceScaleFactor = deviceScaleFactors[i];
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "viewport-target-densitydpi-device-and-fixed-width.html", true, 0, &client, enableViewportSettings);
+ webViewHelper.initializeAndLoad(m_baseURL + "viewport-target-densitydpi-device-and-fixed-width.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDPI(true);
webViewHelper.webView()->settings()->setUseWideViewport(true);
@@ -1727,16 +1685,16 @@ TEST_F(WebFrameTest, targetDensityDpiDeviceAndFixedWidth)
TEST_F(WebFrameTest, NoWideViewportAndScaleLessThanOne)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad("viewport-initial-scale-less-than-1.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1.33f;
int viewportWidth = 640;
int viewportHeight = 480;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "viewport-initial-scale-less-than-1.html", true, 0, &client, enableViewportSettings);
+ webViewHelper.initializeAndLoad(m_baseURL + "viewport-initial-scale-less-than-1.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDPI(true);
webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
webViewHelper.webView()->settings()->setUseWideViewport(false);
@@ -1750,16 +1708,16 @@ TEST_F(WebFrameTest, NoWideViewportAndScaleLessThanOne)
TEST_F(WebFrameTest, NoWideViewportAndScaleLessThanOneWithDeviceWidth)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad("viewport-initial-scale-less-than-1-device-width.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1.33f;
int viewportWidth = 640;
int viewportHeight = 480;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "viewport-initial-scale-less-than-1-device-width.html", true, 0, &client, enableViewportSettings);
+ webViewHelper.initializeAndLoad(m_baseURL + "viewport-initial-scale-less-than-1-device-width.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDPI(true);
webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
webViewHelper.webView()->settings()->setUseWideViewport(false);
@@ -1774,16 +1732,16 @@ TEST_F(WebFrameTest, NoWideViewportAndScaleLessThanOneWithDeviceWidth)
TEST_F(WebFrameTest, NoWideViewportAndNoViewportWithInitialPageScaleOverride)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad("large-div.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
int viewportWidth = 640;
int viewportHeight = 480;
float enforcedPageScaleFactor = 5.0f;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "large-div.html", true, 0, &client, enableViewportSettings);
+ webViewHelper.initializeAndLoad(m_baseURL + "large-div.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
webViewHelper.webView()->settings()->setUseWideViewport(false);
webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor);
@@ -1797,16 +1755,15 @@ TEST_F(WebFrameTest, NoWideViewportAndNoViewportWithInitialPageScaleOverride)
TEST_F(WebFrameTest, NoUserScalableQuirkIgnoresViewportScale)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad("viewport-initial-scale-and-user-scalable-no.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
int viewportWidth = 640;
int viewportHeight = 480;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "viewport-initial-scale-and-user-scalable-no.html", true, 0, &client);
- webViewHelper.webView()->settings()->setViewportEnabled(true);
+ webViewHelper.initializeAndLoad(m_baseURL + "viewport-initial-scale-and-user-scalable-no.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->settings()->setViewportMetaNonUserScalableQuirk(true);
webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
webViewHelper.webView()->layout();
@@ -1818,17 +1775,16 @@ TEST_F(WebFrameTest, NoUserScalableQuirkIgnoresViewportScale)
TEST_F(WebFrameTest, NoUserScalableQuirkIgnoresViewportScaleForNonWideViewport)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad("viewport-initial-scale-and-user-scalable-no.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1.33f;
int viewportWidth = 640;
int viewportHeight = 480;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "viewport-initial-scale-and-user-scalable-no.html", true, 0, &client);
- webViewHelper.webView()->settings()->setViewportEnabled(true);
+ webViewHelper.initializeAndLoad(m_baseURL + "viewport-initial-scale-and-user-scalable-no.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDPI(true);
webViewHelper.webView()->settings()->setViewportMetaNonUserScalableQuirk(true);
webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
@@ -1843,16 +1799,15 @@ TEST_F(WebFrameTest, NoUserScalableQuirkIgnoresViewportScaleForNonWideViewport)
TEST_F(WebFrameTest, NoUserScalableQuirkIgnoresViewportScaleForWideViewport)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad("viewport-2x-initial-scale-non-user-scalable.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
int viewportWidth = 640;
int viewportHeight = 480;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "viewport-2x-initial-scale-non-user-scalable.html", true, 0, &client);
- webViewHelper.webView()->settings()->setViewportEnabled(true);
+ webViewHelper.initializeAndLoad(m_baseURL + "viewport-2x-initial-scale-non-user-scalable.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->settings()->setViewportMetaNonUserScalableQuirk(true);
webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
webViewHelper.webView()->settings()->setUseWideViewport(true);
@@ -1878,13 +1833,13 @@ protected:
const WebSize scrollOffset,
const WebSize viewportSize,
const bool shouldScaleRelativeToViewportWidth) {
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad(url);
const float aspectRatio = static_cast<float>(viewportSize.width) / viewportSize.height;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + url, true, 0, 0, enableViewportSettings);
+ webViewHelper.initializeAndLoad(m_baseURL + url, true, 0, 0, setViewportSettings);
// Origin scrollOffsets preserved under resize.
{
@@ -1967,10 +1922,10 @@ TEST_F(WebFrameResizeTest, ResizeYieldsCorrectScrollAndScaleForFixedWidth)
url, initialPageScaleFactor, scrollOffset, viewportSize, shouldScaleRelativeToViewportWidth);
}
-TEST_F(WebFrameResizeTest, ResizeYieldsCorrectScrollAndScaleForFixedLayout)
+TEST_F(WebFrameResizeTest, ResizeYieldsCorrectScrollAndScaleForDesktop)
{
- // With a fixed layout, pageScaleFactor scales by the relative change in viewport width.
- const char* url = "resize_scroll_fixed_layout.html";
+ // On a desktop page (no viewport tag), pageScaleFactor scales by the relative change in viewport width.
+ const char* url = "resize_scroll_desktop.html";
const float initialPageScaleFactor = 2;
const WebSize scrollOffset(200, 400);
const WebSize viewportSize(320, 240);
@@ -1982,17 +1937,16 @@ TEST_F(WebFrameResizeTest, ResizeYieldsCorrectScrollAndScaleForFixedLayout)
TEST_F(WebFrameTest, pageScaleFactorScalesPaintClip)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad("large-div.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1;
int viewportWidth = 50;
int viewportHeight = 50;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "large-div.html", true, 0, &client);
- webViewHelper.webView()->settings()->setViewportEnabled(true);
+ webViewHelper.initializeAndLoad(m_baseURL + "large-div.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
webViewHelper.webView()->layout();
@@ -2023,17 +1977,16 @@ TEST_F(WebFrameTest, pageScaleFactorScalesPaintClip)
TEST_F(WebFrameTest, pageScaleFactorUpdatesScrollbars)
{
- UseMockScrollbarSettings mockScrollbarSettings;
- registerMockedHttpURLLoad("fixed_layout.html");
+ UseAndroidTestConfig useAndroidTestConfig;
+ registerMockedHttpURLLoad("no_viewport_tag.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1;
int viewportWidth = 640;
int viewportHeight = 480;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &client);
- webViewHelper.webView()->settings()->setViewportEnabled(true);
+ webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
webViewHelper.webView()->layout();
@@ -2049,17 +2002,17 @@ TEST_F(WebFrameTest, pageScaleFactorUpdatesScrollbars)
TEST_F(WebFrameTest, CanOverrideScaleLimits)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad("no_scale_for_you.html");
- FixedLayoutTestWebViewClient client;
+ ViewportWebViewClient client;
client.m_screenInfo.deviceScaleFactor = 1;
int viewportWidth = 640;
int viewportHeight = 480;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "no_scale_for_you.html", true, 0, &client, enableViewportSettings);
+ webViewHelper.initializeAndLoad(m_baseURL + "no_scale_for_you.html", true, 0, &client, setViewportSettings);
webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
EXPECT_EQ(2.0f, webViewHelper.webView()->minimumPageScaleFactor());
@@ -2080,7 +2033,7 @@ TEST_F(WebFrameTest, CanOverrideScaleLimits)
TEST_F(WebFrameTest, updateOverlayScrollbarLayers)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
registerMockedHttpURLLoad("large-div.html");
@@ -2234,8 +2187,7 @@ TEST_F(WebFrameTest, DivAutoZoomVeryTallTest)
int viewportWidth = 640 / deviceScaleFactor;
int viewportHeight = 1280 / deviceScaleFactor;
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + "very_tall_div.html");
- webViewHelper.webView()->settings()->setViewportEnabled(true);
+ webViewHelper.initializeAndLoad(m_baseURL + "very_tall_div.html", false, 0, 0, setViewportSettings);
webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
webViewHelper.webView()->setPageScaleFactorLimits(1.0f, 4);
webViewHelper.webView()->setDeviceScaleFactor(deviceScaleFactor);
@@ -2623,16 +2575,16 @@ TEST_F(WebFrameTest, ReloadWhileProvisional)
{
// Test that reloading while the previous load is still pending does not cause the initial
// request to get lost.
- registerMockedHttpURLLoad("fixed_layout.html");
+ registerMockedHttpURLLoad("no_viewport_tag.html");
TestReloadWhileProvisionalFrameClient webFrameClient;
FrameTestHelpers::WebViewHelper webViewHelper;
webViewHelper.initialize(false, &webFrameClient);
- FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "fixed_layout.html");
+ FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "no_viewport_tag.html");
// start reload before first request is delivered.
webViewHelper.webView()->mainFrame()->reload(true);
Platform::current()->unitTestSupport()->serveAsynchronousMockedRequests();
- ASSERT_EQ(WebURL(toKURL(m_baseURL + "fixed_layout.html")),
+ ASSERT_EQ(WebURL(toKURL(m_baseURL + "no_viewport_tag.html")),
webViewHelper.webView()->mainFrame()->dataSource()->request().url());
}
@@ -3794,7 +3746,7 @@ TEST_F(WebFrameTest, DisambiguationPopupNoContainer)
TEST_F(WebFrameTest, DisambiguationPopupMobileSite)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
const std::string htmlFile = "disambiguation_popup_mobile_site.html";
registerMockedHttpURLLoad(htmlFile);
@@ -3803,8 +3755,7 @@ TEST_F(WebFrameTest, DisambiguationPopupMobileSite)
// Make sure we initialize to minimum scale, even if the window size
// only becomes available after the load begins.
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + htmlFile, true, 0, &client);
- webViewHelper.webView()->settings()->setViewportEnabled(true);
+ webViewHelper.initializeAndLoad(m_baseURL + htmlFile, true, 0, &client, setViewportSettings);
webViewHelper.webView()->resize(WebSize(1000, 1000));
webViewHelper.webView()->layout();
@@ -3831,7 +3782,7 @@ TEST_F(WebFrameTest, DisambiguationPopupMobileSite)
TEST_F(WebFrameTest, DisambiguationPopupViewportSite)
{
- UseMockScrollbarSettings mockScrollbarSettings;
+ UseAndroidTestConfig useAndroidTestConfig;
const std::string htmlFile = "disambiguation_popup_viewport_site.html";
registerMockedHttpURLLoad(htmlFile);
@@ -3840,8 +3791,7 @@ TEST_F(WebFrameTest, DisambiguationPopupViewportSite)
// Make sure we initialize to minimum scale, even if the window size
// only becomes available after the load begins.
FrameTestHelpers::WebViewHelper webViewHelper;
- webViewHelper.initializeAndLoad(m_baseURL + htmlFile, true, 0, &client);
- webViewHelper.webView()->settings()->setViewportEnabled(true);
+ webViewHelper.initializeAndLoad(m_baseURL + htmlFile, true, 0, &client, setViewportSettings);
webViewHelper.webView()->resize(WebSize(1000, 1000));
webViewHelper.webView()->layout();

Powered by Google App Engine
This is Rietveld 408576698