Chromium Code Reviews| 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 |