Index: content/browser/host_zoom_map_impl_browsertest.cc |
diff --git a/content/browser/host_zoom_map_impl_browsertest.cc b/content/browser/host_zoom_map_impl_browsertest.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..aef97a3f1473c7e16acb42448a09a585498d54cd |
--- /dev/null |
+++ b/content/browser/host_zoom_map_impl_browsertest.cc |
@@ -0,0 +1,80 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "content/browser/host_zoom_map_impl.h" |
+ |
+#include "content/public/browser/render_process_host.h" |
+#include "content/public/browser/render_view_host.h" |
+#include "content/public/browser/web_contents.h" |
+#include "content/public/test/content_browser_test.h" |
+#include "content/shell/browser/shell.h" |
+#include "url/gurl.h" |
+ |
+namespace content { |
+ |
+class HostZoomMapImplBrowserTest : public ContentBrowserTest { |
+}; |
+ |
+void RunTestForURL(const GURL& url, |
+ Shell* shell, |
+ double host_zoom_level, |
+ double temp_zoom_level) { |
+ shell->LoadURL(url); |
+ WebContents* web_contents = shell->web_contents(); |
+ |
+ HostZoomMapImpl* host_zoom_map = static_cast<HostZoomMapImpl*>( |
+ HostZoomMap::GetForWebContents(web_contents)); |
+ |
+ int view_id = web_contents->GetRoutingID(); |
+ int render_process_id = web_contents->GetRenderProcessHost()->GetID(); |
+ |
+ // Assume caller has set the zoom level to |host_zoom_level| using |
+ // either a host or host+scheme entry in the HostZoomMap prior to |
+ // calling this function. |
+ EXPECT_DOUBLE_EQ(host_zoom_level, host_zoom_map->GetZoomLevelForView( |
+ url, render_process_id, view_id)); |
Charlie Reis
2015/02/13 20:47:08
nit: Wrong indent.
wjmaclean
2015/02/13 21:01:15
Done.
|
+ |
+ // Make sure that GetZoomLevelForView() works for temporary zoom levels. |
+ host_zoom_map->SetTemporaryZoomLevel(render_process_id, view_id, |
+ temp_zoom_level); |
+ EXPECT_DOUBLE_EQ(temp_zoom_level, host_zoom_map->GetZoomLevelForView( |
+ url, render_process_id, view_id)); |
Charlie Reis
2015/02/13 20:47:08
nit: Wrong indent.
wjmaclean
2015/02/13 21:01:15
Done.
|
+ // Clear the temporary zoom level in case subsequent test calls use the same |
+ // web_contents. |
+ host_zoom_map->ClearTemporaryZoomLevel(render_process_id, view_id); |
+} |
+ |
+IN_PROC_BROWSER_TEST_F(HostZoomMapImplBrowserTest, GetZoomForView_Host) { |
Charlie Reis
2015/02/13 20:47:08
nit: Comment.
wjmaclean
2015/02/13 21:01:15
Done.
|
+ GURL url("http://abc.com"); |
+ |
+ HostZoomMap* host_zoom_map = |
+ HostZoomMap::GetForWebContents(shell()->web_contents()); |
+ |
+ double default_zoom_level = host_zoom_map->GetDefaultZoomLevel(); |
+ double host_zoom_level = default_zoom_level + 1.0; |
+ double temp_zoom_level = default_zoom_level + 2.0; |
+ |
+ host_zoom_map->SetZoomLevelForHost(url.host(), host_zoom_level); |
+ |
+ RunTestForURL(url, shell(), host_zoom_level, temp_zoom_level); |
+} |
+ |
+IN_PROC_BROWSER_TEST_F(HostZoomMapImplBrowserTest, |
Charlie Reis
2015/02/13 20:47:08
nit: Comment.
wjmaclean
2015/02/13 21:01:15
Done.
|
+ GetZoomForView_HostAndScheme) { |
+ GURL url("http://abc.com"); |
+ |
+ HostZoomMap* host_zoom_map = |
+ HostZoomMap::GetForWebContents(shell()->web_contents()); |
+ |
+ double default_zoom_level = host_zoom_map->GetDefaultZoomLevel(); |
+ double host_zoom_level = default_zoom_level + 1.0; |
+ double temp_zoom_level = default_zoom_level + 2.0; |
+ |
+ host_zoom_map->SetZoomLevelForHostAndScheme(url.scheme(), url.host(), |
+ host_zoom_level); |
+ |
+ RunTestForURL(url, shell(), host_zoom_level, temp_zoom_level); |
+} |
+ |
+} // namespace content |