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

Unified Diff: chrome/browser/profiles/off_the_record_profile_impl_unittest.cc

Issue 393133002: Migrate HostZoomMap to live in StoragePartition. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments; patch for landing. Created 6 years, 1 month 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/profiles/off_the_record_profile_impl.cc ('k') | chrome/browser/profiles/profile.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/profiles/off_the_record_profile_impl_unittest.cc
diff --git a/chrome/browser/profiles/off_the_record_profile_impl_unittest.cc b/chrome/browser/profiles/off_the_record_profile_impl_unittest.cc
deleted file mode 100644
index 86184c2420e86ea1a096238d03c82ffc579ba00e..0000000000000000000000000000000000000000
--- a/chrome/browser/profiles/off_the_record_profile_impl_unittest.cc
+++ /dev/null
@@ -1,189 +0,0 @@
-// Copyright (c) 2012 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 "chrome/browser/profiles/off_the_record_profile_impl.h"
-
-#include "base/prefs/pref_registry_simple.h"
-#include "base/prefs/pref_service.h"
-#include "base/prefs/scoped_user_pref_update.h"
-#include "base/run_loop.h"
-#include "chrome/browser/prefs/browser_prefs.h"
-#include "chrome/browser/ui/zoom/chrome_zoom_level_prefs.h"
-#include "chrome/common/pref_names.h"
-#include "chrome/test/base/browser_with_test_window_test.h"
-#include "chrome/test/base/testing_browser_process.h"
-#include "chrome/test/base/testing_io_thread_state.h"
-#include "chrome/test/base/testing_pref_service_syncable.h"
-#include "chrome/test/base/testing_profile.h"
-#include "chrome/test/base/testing_profile_manager.h"
-#include "content/public/browser/host_zoom_map.h"
-#include "content/public/common/page_zoom.h"
-#include "net/dns/mock_host_resolver.h"
-
-using content::HostZoomMap;
-
-namespace {
-
-class TestingProfileWithHostZoomMap : public TestingProfile {
- public:
- TestingProfileWithHostZoomMap() {
- HostZoomMap* host_zoom_map = HostZoomMap::GetDefaultForBrowserContext(this);
- zoom_subscription_ = host_zoom_map->AddZoomLevelChangedCallback(
- base::Bind(&TestingProfileWithHostZoomMap::OnZoomLevelChanged,
- base::Unretained(this)));
- zoom_level_prefs_.reset(
- new chrome::ChromeZoomLevelPrefs(GetPrefs(), GetPath()));
- zoom_level_prefs_->InitPrefsAndCopyToHostZoomMap(GetPath(), host_zoom_map);
- }
-
- ~TestingProfileWithHostZoomMap() override {}
-
- // Profile overrides:
- PrefService* GetOffTheRecordPrefs() override { return GetPrefs(); }
-
- private:
- void OnZoomLevelChanged(const HostZoomMap::ZoomLevelChange& change) {
-
- if (change.mode != HostZoomMap::ZOOM_CHANGED_FOR_HOST)
- return;
-
- HostZoomMap* host_zoom_map = HostZoomMap::GetDefaultForBrowserContext(this);
-
- double level = change.zoom_level;
- std::string per_host_zoom_levels(prefs::kPartitionPerHostZoomLevels);
- per_host_zoom_levels.append(".0");
- DictionaryPrefUpdate update(GetPrefs(),
- prefs::kPartitionPerHostZoomLevels);
- base::DictionaryValue* host_zoom_dictionary = update.Get();
- if (content::ZoomValuesEqual(level, host_zoom_map->GetDefaultZoomLevel())) {
- host_zoom_dictionary->RemoveWithoutPathExpansion(change.host, NULL);
- } else {
- host_zoom_dictionary->SetWithoutPathExpansion(
- change.host, new base::FundamentalValue(level));
- }
- }
-
- scoped_ptr<HostZoomMap::Subscription> zoom_subscription_;
- scoped_ptr<chrome::ChromeZoomLevelPrefs> zoom_level_prefs_;
-
- DISALLOW_COPY_AND_ASSIGN(TestingProfileWithHostZoomMap);
-};
-
-} // namespace
-
-// We need to have a BrowserProcess in g_browser_process variable, since
-// OffTheRecordProfileImpl ctor uses it in
-// ProfileIOData::InitializeProfileParams.
-class OffTheRecordProfileImplTest : public BrowserWithTestWindowTest {
- protected:
- OffTheRecordProfileImplTest() {}
-
- ~OffTheRecordProfileImplTest() override {}
-
- // testing::Test overrides:
- void SetUp() override {
- profile_manager_.reset(new TestingProfileManager(browser_process()));
- ASSERT_TRUE(profile_manager_->SetUp());
-
- testing_io_thread_state_.reset(new chrome::TestingIOThreadState());
- testing_io_thread_state_->io_thread_state()->globals()->host_resolver.reset(
- new net::MockHostResolver());
-
- BrowserWithTestWindowTest::SetUp();
- }
-
- void TearDown() override {
- BrowserWithTestWindowTest::TearDown();
-
- testing_io_thread_state_.reset();
-
- profile_manager_.reset();
- }
-
- // BrowserWithTestWindowTest overrides:
- TestingProfile* CreateProfile() override {
- return new TestingProfileWithHostZoomMap;
- }
-
- private:
- TestingBrowserProcess* browser_process() {
- return TestingBrowserProcess::GetGlobal();
- }
-
- scoped_ptr<TestingProfileManager> profile_manager_;
- scoped_ptr<chrome::TestingIOThreadState> testing_io_thread_state_;
-
- DISALLOW_COPY_AND_ASSIGN(OffTheRecordProfileImplTest);
-};
-
-// Test four things:
-// 1. Host zoom maps of parent profile and child profile are different.
-// 2. Child host zoom map inherites zoom level at construction.
-// 3. Change of zoom level doesn't propagate from child to parent.
-// 4. Change of zoom level propagate from parent to child.
-TEST_F(OffTheRecordProfileImplTest, GetHostZoomMap) {
- // Constants for test case.
- const std::string host("example.com");
- const double zoom_level_25 = 2.5;
- const double zoom_level_30 = 3.0;
- const double zoom_level_40 = 4.0;
-
- // The TestingProfile from CreateProfile above is the parent.
- TestingProfile* parent_profile = GetProfile();
- ASSERT_TRUE(parent_profile);
- ASSERT_TRUE(parent_profile->GetPrefs());
- ASSERT_TRUE(parent_profile->GetOffTheRecordPrefs());
-
- // Prepare parent host zoom map.
- HostZoomMap* parent_zoom_map =
- HostZoomMap::GetDefaultForBrowserContext(parent_profile);
- ASSERT_TRUE(parent_zoom_map);
-
- parent_zoom_map->SetZoomLevelForHost(host, zoom_level_25);
- ASSERT_EQ(parent_zoom_map->GetZoomLevelForHostAndScheme("http", host),
- zoom_level_25);
-
- // TODO(yosin) We need to wait ProfileImpl::Observe done for
- // OnZoomLevelChanged.
-
- // Prepare an off the record profile owned by the parent profile.
- parent_profile->SetOffTheRecordProfile(
- scoped_ptr<Profile>(new OffTheRecordProfileImpl(parent_profile)));
- OffTheRecordProfileImpl* child_profile =
- static_cast<OffTheRecordProfileImpl*>(
- parent_profile->GetOffTheRecordProfile());
- child_profile->InitIoData();
- child_profile->InitHostZoomMap();
-
- // Prepare child host zoom map.
- HostZoomMap* child_zoom_map =
- HostZoomMap::GetDefaultForBrowserContext(child_profile);
- ASSERT_TRUE(child_zoom_map);
-
- // Verify.
- EXPECT_NE(parent_zoom_map, child_zoom_map);
-
- EXPECT_EQ(parent_zoom_map->GetZoomLevelForHostAndScheme("http", host),
- child_zoom_map->GetZoomLevelForHostAndScheme("http", host)) <<
- "Child must inherit from parent.";
-
- child_zoom_map->SetZoomLevelForHost(host, zoom_level_30);
- ASSERT_EQ(
- child_zoom_map->GetZoomLevelForHostAndScheme("http", host),
- zoom_level_30);
-
- EXPECT_NE(parent_zoom_map->GetZoomLevelForHostAndScheme("http", host),
- child_zoom_map->GetZoomLevelForHostAndScheme("http", host)) <<
- "Child change must not propagate to parent.";
-
- parent_zoom_map->SetZoomLevelForHost(host, zoom_level_40);
- ASSERT_EQ(
- parent_zoom_map->GetZoomLevelForHostAndScheme("http", host),
- zoom_level_40);
-
- EXPECT_EQ(parent_zoom_map->GetZoomLevelForHostAndScheme("http", host),
- child_zoom_map->GetZoomLevelForHostAndScheme("http", host)) <<
- "Parent change should propagate to child.";
- base::RunLoop().RunUntilIdle();
-}
« no previous file with comments | « chrome/browser/profiles/off_the_record_profile_impl.cc ('k') | chrome/browser/profiles/profile.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698