| Index: content/renderer/render_view_browsertest.cc
|
| diff --git a/content/renderer/render_view_browsertest.cc b/content/renderer/render_view_browsertest.cc
|
| index 8148e14cb1757d307b27daa599910cdf34e3f658..4605b0215a8f6e96a6e0ab0029438229dcbf6565 100644
|
| --- a/content/renderer/render_view_browsertest.cc
|
| +++ b/content/renderer/render_view_browsertest.cc
|
| @@ -1698,3 +1698,33 @@ TEST_F(RenderViewImplTest, GetCompositionCharacterBoundsTest) {
|
| }
|
| view()->OnImeConfirmComposition(empty_string, ui::Range::InvalidRange());
|
| }
|
| +
|
| +TEST_F(RenderViewImplTest, ZoomLimit) {
|
| + const double kMinZoomLevel =
|
| + WebKit::WebView::zoomFactorToZoomLevel(content::kMinimumZoomFactor);
|
| + const double kMaxZoomLevel =
|
| + WebKit::WebView::zoomFactorToZoomLevel(content::kMaximumZoomFactor);
|
| +
|
| + ViewMsg_Navigate_Params params;
|
| + params.page_id = -1;
|
| + params.navigation_type = ViewMsg_Navigate_Type::NORMAL;
|
| +
|
| + // Verifies navigation to a URL with preset zoom level indeed sets the level.
|
| + // Regression test for http://crbug.com/139559, where the level was not
|
| + // properly set when it is out of the default zoom limits of WebView.
|
| + params.url = GURL("data:text/html,min_zoomlimit_test");
|
| + view()->OnSetZoomLevelForLoadingURL(params.url, kMinZoomLevel);
|
| + view()->OnNavigate(params);
|
| + ProcessPendingMessages();
|
| + EXPECT_DOUBLE_EQ(kMinZoomLevel, view()->GetWebView()->zoomLevel());
|
| +
|
| + // It should work even when the zoom limit is temporarily changed in the page.
|
| + view()->GetWebView()->zoomLimitsChanged(
|
| + WebKit::WebView::zoomFactorToZoomLevel(1.0),
|
| + WebKit::WebView::zoomFactorToZoomLevel(1.0));
|
| + params.url = GURL("data:text/html,max_zoomlimit_test");
|
| + view()->OnSetZoomLevelForLoadingURL(params.url, kMaxZoomLevel);
|
| + view()->OnNavigate(params);
|
| + ProcessPendingMessages();
|
| + EXPECT_DOUBLE_EQ(kMaxZoomLevel, view()->GetWebView()->zoomLevel());
|
| +}
|
|
|