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

Unified Diff: chrome/browser/extensions/api/tabs/tabs_test.cc

Issue 1051013002: Add default zoom functionality to chrome.tabs Zoom API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments. Created 5 years, 9 months 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
« no previous file with comments | « chrome/browser/extensions/api/tabs/tabs_api.cc ('k') | chrome/common/extensions/api/tabs.json » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/api/tabs/tabs_test.cc
diff --git a/chrome/browser/extensions/api/tabs/tabs_test.cc b/chrome/browser/extensions/api/tabs/tabs_test.cc
index 38309a6a13404ec1b909ac5565e8a24fb4b30bcc..05b552cf38f7bdfc2a5babe263eb511050d92d9d 100644
--- a/chrome/browser/extensions/api/tabs/tabs_test.cc
+++ b/chrome/browser/extensions/api/tabs/tabs_test.cc
@@ -22,8 +22,11 @@
#include "chrome/browser/ui/browser_commands.h"
#include "chrome/browser/ui/browser_window.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
+#include "chrome/browser/ui/zoom/chrome_zoom_level_prefs.h"
#include "chrome/test/base/in_process_browser_test.h"
#include "chrome/test/base/ui_test_utils.h"
+#include "content/public/browser/browser_context.h"
+#include "content/public/browser/storage_partition.h"
#include "content/public/common/page_zoom.h"
#include "content/public/common/url_constants.h"
#include "extensions/browser/api_test_utils.h"
@@ -666,6 +669,10 @@ class ExtensionTabsZoomTest : public ExtensionTabsTest {
std::string* mode,
std::string* scope);
+ // Runs chrome.tabs.getZoomSettings() and returns default zoom.
+ testing::AssertionResult RunGetDefaultZoom(int tab_id,
+ double* default_zoom_factor);
+
// Runs chrome.tabs.setZoom(), expecting an error.
std::string RunSetZoomExpectError(int tab_id,
double zoom_factor);
@@ -694,8 +701,7 @@ bool ExtensionTabsZoomTest::RunSetZoom(int tab_id, double zoom_factor) {
return utils::RunFunction(
set_zoom_function.get(),
- base::StringPrintf("[%u, %lf]", tab_id, zoom_factor),
- browser(),
+ base::StringPrintf("[%u, %lf]", tab_id, zoom_factor), browser(),
extension_function_test_utils::NONE);
}
@@ -768,6 +774,32 @@ testing::AssertionResult ExtensionTabsZoomTest::RunGetZoomSettings(
return testing::AssertionSuccess();
}
+testing::AssertionResult ExtensionTabsZoomTest::RunGetDefaultZoom(
+ int tab_id,
+ double* default_zoom_factor) {
+ DCHECK(default_zoom_factor);
+ scoped_refptr<TabsGetZoomSettingsFunction> get_zoom_settings_function(
+ new TabsGetZoomSettingsFunction());
+ get_zoom_settings_function->set_extension(extension_.get());
+ get_zoom_settings_function->set_has_callback(true);
+
+ scoped_ptr<base::DictionaryValue> get_zoom_settings_result(
+ utils::ToDictionary(utils::RunFunctionAndReturnSingleResult(
+ get_zoom_settings_function.get(),
+ base::StringPrintf("[%u]", tab_id),
+ browser())));
+
+ if (!get_zoom_settings_result)
+ return testing::AssertionFailure() << "no result";
+
+ if (!get_zoom_settings_result->GetDouble("default_zoom_factor",
+ default_zoom_factor))
+ return testing::AssertionFailure()
+ << "default zoom factor not found in result";
not at google - send to devlin 2015/04/02 14:41:21 The body of this should be in braces, both the con
wjmaclean 2015/04/02 14:59:24 Done.
+
+ return testing::AssertionSuccess();
+}
+
std::string ExtensionTabsZoomTest::RunSetZoomExpectError(int tab_id,
double zoom_factor) {
scoped_refptr<TabsSetZoomFunction> set_zoom_function(
@@ -847,6 +879,64 @@ IN_PROC_BROWSER_TEST_F(ExtensionTabsZoomTest, SetAndGetZoom) {
EXPECT_EQ(kZoomLevel, zoom_factor);
}
+IN_PROC_BROWSER_TEST_F(ExtensionTabsZoomTest, GetDefaultZoom) {
+ content::OpenURLParams params(GetOpenParams(url::kAboutBlankURL));
+ content::WebContents* web_contents = OpenUrlAndWaitForLoad(params.url);
+ int tab_id = ExtensionTabUtil::GetTabId(web_contents);
+
+ ui_zoom::ZoomController* zoom_controller =
+ ui_zoom::ZoomController::FromWebContents(web_contents);
+ double default_zoom_factor = -1.0;
+ EXPECT_TRUE(RunGetDefaultZoom(tab_id, &default_zoom_factor));
+ EXPECT_TRUE(content::ZoomValuesEqual(
+ zoom_controller->GetDefaultZoomLevel(),
+ content::ZoomFactorToZoomLevel(default_zoom_factor)));
+
+ // Change the default zoom level and verify GetDefaultZoom returns the
+ // correct value.
+ content::StoragePartition* partition =
+ content::BrowserContext::GetStoragePartition(
+ web_contents->GetBrowserContext(), web_contents->GetSiteInstance());
+ chrome::ChromeZoomLevelPrefs* zoom_prefs =
+ static_cast<chrome::ChromeZoomLevelPrefs*>(
+ partition->GetZoomLevelDelegate());
+
+ double default_zoom_level = zoom_controller->GetDefaultZoomLevel();
+ zoom_prefs->SetDefaultZoomLevelPref(default_zoom_level + 0.5);
+ default_zoom_factor = -1.0;
+ EXPECT_TRUE(RunGetDefaultZoom(tab_id, &default_zoom_factor));
+ EXPECT_TRUE(content::ZoomValuesEqual(
+ default_zoom_level + 0.5,
+ content::ZoomFactorToZoomLevel(default_zoom_factor)));
+}
+
+IN_PROC_BROWSER_TEST_F(ExtensionTabsZoomTest, SetToDefaultZoom) {
+ content::OpenURLParams params(GetOpenParams(url::kAboutBlankURL));
+ content::WebContents* web_contents = OpenUrlAndWaitForLoad(params.url);
+ int tab_id = ExtensionTabUtil::GetTabId(web_contents);
+
+ ui_zoom::ZoomController* zoom_controller =
+ ui_zoom::ZoomController::FromWebContents(web_contents);
+ double default_zoom_level = zoom_controller->GetDefaultZoomLevel();
+ double new_default_zoom_level = default_zoom_level + 0.42;
+
+ content::StoragePartition* partition =
+ content::BrowserContext::GetStoragePartition(
+ web_contents->GetBrowserContext(), web_contents->GetSiteInstance());
+ chrome::ChromeZoomLevelPrefs* zoom_prefs =
+ static_cast<chrome::ChromeZoomLevelPrefs*>(
+ partition->GetZoomLevelDelegate());
+
+ zoom_prefs->SetDefaultZoomLevelPref(new_default_zoom_level);
+
+ double observed_zoom_factor = -1.0;
+ EXPECT_TRUE(RunSetZoom(tab_id, 0.0));
+ EXPECT_TRUE(RunGetZoom(tab_id, &observed_zoom_factor));
+ EXPECT_TRUE(content::ZoomValuesEqual(
+ new_default_zoom_level,
+ content::ZoomFactorToZoomLevel(observed_zoom_factor)));
+}
+
IN_PROC_BROWSER_TEST_F(ExtensionTabsZoomTest, ZoomSettings) {
// In this test we need two URLs that (1) represent real pages (i.e. they
// load without causing an error page load), (2) have different domains, and
« no previous file with comments | « chrome/browser/extensions/api/tabs/tabs_api.cc ('k') | chrome/common/extensions/api/tabs.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698