OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 942 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
953 // Make sure we don't reset to initial scale if the page continues to load. | 953 // Make sure we don't reset to initial scale if the page continues to load. |
954 webViewHelper.webViewImpl()->didCommitLoad(false, false); | 954 webViewHelper.webViewImpl()->didCommitLoad(false, false); |
955 webViewHelper.webViewImpl()->didChangeContentsSize(); | 955 webViewHelper.webViewImpl()->didChangeContentsSize(); |
956 EXPECT_EQ(userPinchPageScaleFactor, webViewHelper.webView()->pageScaleFactor
()); | 956 EXPECT_EQ(userPinchPageScaleFactor, webViewHelper.webView()->pageScaleFactor
()); |
957 | 957 |
958 // Make sure we don't reset to initial scale if the viewport size changes. | 958 // Make sure we don't reset to initial scale if the viewport size changes. |
959 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight + 100)
); | 959 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight + 100)
); |
960 EXPECT_EQ(userPinchPageScaleFactor, webViewHelper.webView()->pageScaleFactor
()); | 960 EXPECT_EQ(userPinchPageScaleFactor, webViewHelper.webView()->pageScaleFactor
()); |
961 } | 961 } |
962 | 962 |
| 963 TEST_F(WebFrameTest, DelayedViewportInitialScale) |
| 964 { |
| 965 UseMockScrollbarSettings mockScrollbarSettings; |
| 966 registerMockedHttpURLLoad("viewport-auto-initial-scale.html"); |
| 967 |
| 968 FixedLayoutTestWebViewClient client; |
| 969 client.m_screenInfo.deviceScaleFactor = 1; |
| 970 int viewportWidth = 640; |
| 971 int viewportHeight = 480; |
| 972 |
| 973 FrameTestHelpers::WebViewHelper webViewHelper; |
| 974 webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.htm
l", true, 0, &client); |
| 975 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 976 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 977 |
| 978 EXPECT_EQ(0.25f, webViewHelper.webView()->pageScaleFactor()); |
| 979 |
| 980 WebCore::Document* document = webViewHelper.webViewImpl()->page()->mainFrame
()->document(); |
| 981 WebCore::ViewportDescription description = document->viewportDescription(); |
| 982 description.zoom = 2; |
| 983 document->setViewportDescription(description); |
| 984 webViewHelper.webView()->layout(); |
| 985 EXPECT_EQ(2, webViewHelper.webView()->pageScaleFactor()); |
| 986 } |
| 987 |
963 TEST_F(WebFrameTest, setLoadWithOverviewModeToFalse) | 988 TEST_F(WebFrameTest, setLoadWithOverviewModeToFalse) |
964 { | 989 { |
965 UseMockScrollbarSettings mockScrollbarSettings; | 990 UseMockScrollbarSettings mockScrollbarSettings; |
966 registerMockedHttpURLLoad("viewport-auto-initial-scale.html"); | 991 registerMockedHttpURLLoad("viewport-auto-initial-scale.html"); |
967 | 992 |
968 FixedLayoutTestWebViewClient client; | 993 FixedLayoutTestWebViewClient client; |
969 client.m_screenInfo.deviceScaleFactor = 1; | 994 client.m_screenInfo.deviceScaleFactor = 1; |
970 int viewportWidth = 640; | 995 int viewportWidth = 640; |
971 int viewportHeight = 480; | 996 int viewportHeight = 480; |
972 | 997 |
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1185 | 1210 |
1186 TEST_F(WebFrameTest, PermanentInitialPageScaleFactorOverridesPageViewportInitial
Scale) | 1211 TEST_F(WebFrameTest, PermanentInitialPageScaleFactorOverridesPageViewportInitial
Scale) |
1187 { | 1212 { |
1188 UseMockScrollbarSettings mockScrollbarSettings; | 1213 UseMockScrollbarSettings mockScrollbarSettings; |
1189 registerMockedHttpURLLoad("viewport-wide-2x-initial-scale.html"); | 1214 registerMockedHttpURLLoad("viewport-wide-2x-initial-scale.html"); |
1190 | 1215 |
1191 FixedLayoutTestWebViewClient client; | 1216 FixedLayoutTestWebViewClient client; |
1192 client.m_screenInfo.deviceScaleFactor = 1; | 1217 client.m_screenInfo.deviceScaleFactor = 1; |
1193 int viewportWidth = 640; | 1218 int viewportWidth = 640; |
1194 int viewportHeight = 480; | 1219 int viewportHeight = 480; |
1195 float enforcedPageScalePactor = 0.5f; | 1220 float enforcedPageScaleFactor = 0.5f; |
1196 | 1221 |
1197 FrameTestHelpers::WebViewHelper webViewHelper; | 1222 FrameTestHelpers::WebViewHelper webViewHelper; |
1198 webViewHelper.initializeAndLoad(m_baseURL + "viewport-wide-2x-initial-scale.
html", true, 0, &client); | 1223 webViewHelper.initializeAndLoad(m_baseURL + "viewport-wide-2x-initial-scale.
html", true, 0, &client); |
1199 webViewHelper.webView()->settings()->setViewportEnabled(true); | 1224 webViewHelper.webView()->settings()->setViewportEnabled(true); |
1200 webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScalePactor
); | 1225 webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor
); |
1201 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1226 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
1202 | 1227 |
1203 EXPECT_EQ(enforcedPageScalePactor, webViewHelper.webView()->pageScaleFactor(
)); | 1228 EXPECT_EQ(enforcedPageScaleFactor, webViewHelper.webView()->pageScaleFactor(
)); |
1204 } | 1229 } |
1205 | 1230 |
1206 TEST_F(WebFrameTest, WideViewportInitialScaleDoesNotExpandFixedLayoutWidth) | 1231 TEST_F(WebFrameTest, WideViewportInitialScaleDoesNotExpandFixedLayoutWidth) |
1207 { | 1232 { |
1208 UseMockScrollbarSettings mockScrollbarSettings; | 1233 UseMockScrollbarSettings mockScrollbarSettings; |
1209 registerMockedHttpURLLoad("viewport-device-0.5x-initial-scale.html"); | 1234 registerMockedHttpURLLoad("viewport-device-0.5x-initial-scale.html"); |
1210 | 1235 |
1211 FixedLayoutTestWebViewClient client; | 1236 FixedLayoutTestWebViewClient client; |
1212 client.m_screenInfo.deviceScaleFactor = 1; | 1237 client.m_screenInfo.deviceScaleFactor = 1; |
1213 int viewportWidth = 640; | 1238 int viewportWidth = 640; |
1214 int viewportHeight = 480; | 1239 int viewportHeight = 480; |
1215 | 1240 |
1216 FrameTestHelpers::WebViewHelper webViewHelper; | 1241 FrameTestHelpers::WebViewHelper webViewHelper; |
1217 webViewHelper.initializeAndLoad(m_baseURL + "viewport-device-0.5x-initial-sc
ale.html", true, 0, &client); | 1242 webViewHelper.initializeAndLoad(m_baseURL + "viewport-device-0.5x-initial-sc
ale.html", true, 0, &client); |
1218 webViewHelper.webView()->settings()->setViewportEnabled(true); | 1243 webViewHelper.webView()->settings()->setViewportEnabled(true); |
1219 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 1244 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
1220 webViewHelper.webView()->settings()->setUseWideViewport(true); | 1245 webViewHelper.webView()->settings()->setUseWideViewport(true); |
1221 webViewHelper.webView()->settings()->setViewportMetaLayoutSizeQuirk(true); | 1246 webViewHelper.webView()->settings()->setViewportMetaLayoutSizeQuirk(true); |
1222 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1247 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
1223 | 1248 |
1224 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame
View()->layoutSize().width()); | 1249 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame
View()->layoutSize().width()); |
| 1250 EXPECT_EQ(1, webViewHelper.webView()->pageScaleFactor()); |
| 1251 |
| 1252 webViewHelper.webView()->setFixedLayoutSize(WebSize(2000, 1500)); |
| 1253 webViewHelper.webView()->layout(); |
| 1254 EXPECT_EQ(2000, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->l
ayoutSize().width()); |
| 1255 EXPECT_EQ(0.5f, webViewHelper.webView()->pageScaleFactor()); |
1225 } | 1256 } |
1226 | 1257 |
1227 TEST_F(WebFrameTest, WideViewportAndWideContentWithInitialScale) | 1258 TEST_F(WebFrameTest, WideViewportAndWideContentWithInitialScale) |
1228 { | 1259 { |
1229 UseMockScrollbarSettings mockScrollbarSettings; | 1260 UseMockScrollbarSettings mockScrollbarSettings; |
1230 registerMockedHttpURLLoad("wide_document_width_viewport.html"); | 1261 registerMockedHttpURLLoad("wide_document_width_viewport.html"); |
1231 | 1262 |
1232 FixedLayoutTestWebViewClient client; | 1263 FixedLayoutTestWebViewClient client; |
1233 client.m_screenInfo.deviceScaleFactor = 1; | 1264 client.m_screenInfo.deviceScaleFactor = 1; |
1234 int viewportWidth = 600; | 1265 int viewportWidth = 600; |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1341 | 1372 |
1342 EXPECT_EQ(viewportWidth / expectedPageScaleFactor, webViewHelper.webViewImpl
()->mainFrameImpl()->frameView()->layoutSize().width()); | 1373 EXPECT_EQ(viewportWidth / expectedPageScaleFactor, webViewHelper.webViewImpl
()->mainFrameImpl()->frameView()->layoutSize().width()); |
1343 EXPECT_EQ(expectedPageScaleFactor, webViewHelper.webView()->pageScaleFactor(
)); | 1374 EXPECT_EQ(expectedPageScaleFactor, webViewHelper.webView()->pageScaleFactor(
)); |
1344 | 1375 |
1345 webViewHelper.webView()->settings()->setUseWideViewport(true); | 1376 webViewHelper.webView()->settings()->setUseWideViewport(true); |
1346 webViewHelper.webView()->layout(); | 1377 webViewHelper.webView()->layout(); |
1347 EXPECT_EQ(viewportWidth / expectedPageScaleFactor, webViewHelper.webViewImpl
()->mainFrameImpl()->frameView()->layoutSize().width()); | 1378 EXPECT_EQ(viewportWidth / expectedPageScaleFactor, webViewHelper.webViewImpl
()->mainFrameImpl()->frameView()->layoutSize().width()); |
1348 EXPECT_EQ(expectedPageScaleFactor, webViewHelper.webView()->pageScaleFactor(
)); | 1379 EXPECT_EQ(expectedPageScaleFactor, webViewHelper.webView()->pageScaleFactor(
)); |
1349 } | 1380 } |
1350 | 1381 |
1351 TEST_F(WebFrameTest, ScaleFactorShouldNotOscillate) | |
1352 { | |
1353 UseMockScrollbarSettings mockScrollbarSettings; | |
1354 registerMockedHttpURLLoad("scale_oscillate.html"); | |
1355 | |
1356 FixedLayoutTestWebViewClient client; | |
1357 client.m_screenInfo.deviceScaleFactor = static_cast<float>(1.325); | |
1358 int viewportWidth = 800; | |
1359 int viewportHeight = 1057; | |
1360 | |
1361 FrameTestHelpers::WebViewHelper webViewHelper; | |
1362 webViewHelper.initializeAndLoad(m_baseURL + "scale_oscillate.html", true, 0,
&client); | |
1363 webViewHelper.webView()->settings()->setViewportEnabled(true); | |
1364 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | |
1365 webViewHelper.webView()->layout(); | |
1366 } | |
1367 | |
1368 TEST_F(WebFrameTest, setPageScaleFactorDoesNotLayout) | 1382 TEST_F(WebFrameTest, setPageScaleFactorDoesNotLayout) |
1369 { | 1383 { |
1370 UseMockScrollbarSettings mockScrollbarSettings; | 1384 UseMockScrollbarSettings mockScrollbarSettings; |
1371 registerMockedHttpURLLoad("fixed_layout.html"); | 1385 registerMockedHttpURLLoad("fixed_layout.html"); |
1372 | 1386 |
1373 FixedLayoutTestWebViewClient client; | 1387 FixedLayoutTestWebViewClient client; |
1374 client.m_screenInfo.deviceScaleFactor = 1; | 1388 client.m_screenInfo.deviceScaleFactor = 1; |
1375 // Small viewport to ensure there are always scrollbars. | 1389 // Small viewport to ensure there are always scrollbars. |
1376 int viewportWidth = 64; | 1390 int viewportWidth = 64; |
1377 int viewportHeight = 48; | 1391 int viewportHeight = 48; |
(...skipping 3290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4668 | 4682 |
4669 FrameTestHelpers::loadFrame(frame, | 4683 FrameTestHelpers::loadFrame(frame, |
4670 "javascript:window.frames[1].location.assign('" + m_baseURL + "find.html
')"); | 4684 "javascript:window.frames[1].location.assign('" + m_baseURL + "find.html
')"); |
4671 runPendingTasks(); | 4685 runPendingTasks(); |
4672 Platform::current()->unitTestSupport()->serveAsynchronousMockedRequests(); | 4686 Platform::current()->unitTestSupport()->serveAsynchronousMockedRequests(); |
4673 EXPECT_EQ(client.frame(), iframe); | 4687 EXPECT_EQ(client.frame(), iframe); |
4674 EXPECT_FALSE(client.replacesCurrentHistoryItem()); | 4688 EXPECT_FALSE(client.replacesCurrentHistoryItem()); |
4675 } | 4689 } |
4676 | 4690 |
4677 } // namespace | 4691 } // namespace |
OLD | NEW |