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

Side by Side Diff: chrome/browser/extensions/api/preference/preference_api_prefs_unittest.cc

Issue 108643002: ABANDONED: Remove Chrome dependencies from TestExtensionPrefs. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <string> 5 #include <string>
6 6
7 #include "base/memory/ref_counted.h" 7 #include "base/memory/ref_counted.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/prefs/mock_pref_change_callback.h" 9 #include "base/prefs/mock_pref_change_callback.h"
10 #include "base/values.h" 10 #include "base/values.h"
11 #include "chrome/browser/extensions/api/preference/preference_api.h" 11 #include "chrome/browser/extensions/api/preference/preference_api.h"
12 #include "chrome/browser/extensions/extension_pref_store.h"
12 #include "chrome/browser/extensions/extension_prefs.h" 13 #include "chrome/browser/extensions/extension_prefs.h"
13 #include "chrome/browser/extensions/extension_prefs_unittest.h" 14 #include "chrome/browser/extensions/extension_prefs_unittest.h"
15 #include "chrome/browser/prefs/pref_service_mock_factory.h"
16 #include "chrome/browser/prefs/pref_service_syncable.h"
14 #include "chrome/test/base/testing_profile.h" 17 #include "chrome/test/base/testing_profile.h"
15 #include "components/user_prefs/pref_registry_syncable.h" 18 #include "components/user_prefs/pref_registry_syncable.h"
16 #include "extensions/common/extension.h" 19 #include "extensions/common/extension.h"
17 #include "testing/gtest/include/gtest/gtest.h" 20 #include "testing/gtest/include/gtest/gtest.h"
18 21
19 using base::Value; 22 using base::Value;
20 23
21 namespace extensions { 24 namespace extensions {
22 25
23 namespace { 26 namespace {
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 Extension* extension, 77 Extension* extension,
75 const std::string& key, 78 const std::string& key,
76 base::Value* value); 79 base::Value* value);
77 void InstallExtension(Extension* extension); 80 void InstallExtension(Extension* extension);
78 void UninstallExtension(const std::string& extension_id); 81 void UninstallExtension(const std::string& extension_id);
79 82
80 protected: 83 protected:
81 void EnsureExtensionInstalled(Extension* extension); 84 void EnsureExtensionInstalled(Extension* extension);
82 void EnsureExtensionUninstalled(const std::string& extension_id); 85 void EnsureExtensionUninstalled(const std::string& extension_id);
83 86
87 // Creates a new incognito PrefService from |test_extension_prefs_|.
88 scoped_ptr<PrefService> CreateIncognitoPrefService();
89
84 TestPreferenceAPI test_preference_api_; 90 TestPreferenceAPI test_preference_api_;
85 }; 91 };
86 92
87 ExtensionControlledPrefsTest::ExtensionControlledPrefsTest() 93 ExtensionControlledPrefsTest::ExtensionControlledPrefsTest()
88 : PrefsPrepopulatedTestBase(), 94 : PrefsPrepopulatedTestBase(new PrefServiceMockFactory),
89 test_preference_api_(&prefs_) { 95 test_preference_api_(&prefs_) {
90 } 96 }
91 97
92 ExtensionControlledPrefsTest::~ExtensionControlledPrefsTest() { 98 ExtensionControlledPrefsTest::~ExtensionControlledPrefsTest() {
93 } 99 }
94 100
95 void ExtensionControlledPrefsTest::RegisterPreferences( 101 void ExtensionControlledPrefsTest::RegisterPreferences(
96 user_prefs::PrefRegistrySyncable* registry) { 102 user_prefs::PrefRegistrySyncable* registry) {
97 registry->RegisterStringPref( 103 registry->RegisterStringPref(
98 kPref1, kDefaultPref1, user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 104 kPref1, kDefaultPref1, user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 extension4() }; 173 extension4() };
168 for (size_t i = 0; i < kNumInstalledExtensions; ++i) { 174 for (size_t i = 0; i < kNumInstalledExtensions; ++i) {
169 if (extensions[i]->id() == extension_id) { 175 if (extensions[i]->id() == extension_id) {
170 installed_[i] = false; 176 installed_[i] = false;
171 break; 177 break;
172 } 178 }
173 } 179 }
174 prefs()->OnExtensionUninstalled(extension_id, Manifest::INTERNAL, false); 180 prefs()->OnExtensionUninstalled(extension_id, Manifest::INTERNAL, false);
175 } 181 }
176 182
183 scoped_ptr<PrefService>
184 ExtensionControlledPrefsTest::CreateIncognitoPrefService() {
185 // This downcast is safe due to the PrefServiceMockFactory that was passed to
186 // TestExtensionPrefs by way of PrefsPrepopulatedTestBase.
187 PrefServiceSyncable* pref_service =
188 static_cast<PrefServiceSyncable*>(prefs_.pref_service());
189 return scoped_ptr<PrefService>(pref_service->CreateIncognitoPrefService(
190 new ExtensionPrefStore(prefs_.extension_pref_value_map(), true))).Pass();
191 }
192
177 class ControlledPrefsInstallOneExtension 193 class ControlledPrefsInstallOneExtension
178 : public ExtensionControlledPrefsTest { 194 : public ExtensionControlledPrefsTest {
179 virtual void Initialize() OVERRIDE { 195 virtual void Initialize() OVERRIDE {
180 InstallExtensionControlledPref(extension1(), 196 InstallExtensionControlledPref(extension1(),
181 kPref1, 197 kPref1,
182 new base::StringValue("val1")); 198 new base::StringValue("val1"));
183 } 199 }
184 virtual void Verify() OVERRIDE { 200 virtual void Verify() OVERRIDE {
185 std::string actual = prefs()->pref_service()->GetString(kPref1); 201 std::string actual = prefs()->pref_service()->GetString(kPref1);
186 EXPECT_EQ("val1", actual); 202 EXPECT_EQ("val1", actual);
187 } 203 }
188 }; 204 };
189 TEST_F(ControlledPrefsInstallOneExtension, 205 TEST_F(ControlledPrefsInstallOneExtension,
190 ControlledPrefsInstallOneExtension) { } 206 ControlledPrefsInstallOneExtension) { }
191 207
192 // Check that we do not forget persistent incognito values after a reload. 208 // Check that we do not forget persistent incognito values after a reload.
193 class ControlledPrefsInstallIncognitoPersistent 209 class ControlledPrefsInstallIncognitoPersistent
194 : public ExtensionControlledPrefsTest { 210 : public ExtensionControlledPrefsTest {
195 public: 211 public:
196 virtual void Initialize() OVERRIDE { 212 virtual void Initialize() OVERRIDE {
197 InstallExtensionControlledPref( 213 InstallExtensionControlledPref(
198 extension1(), kPref1, new base::StringValue("val1")); 214 extension1(), kPref1, new base::StringValue("val1"));
199 InstallExtensionControlledPrefIncognito( 215 InstallExtensionControlledPrefIncognito(
200 extension1(), kPref1, new base::StringValue("val2")); 216 extension1(), kPref1, new base::StringValue("val2"));
201 scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService()); 217 scoped_ptr<PrefService> incog_prefs(CreateIncognitoPrefService());
202 std::string actual = incog_prefs->GetString(kPref1); 218 std::string actual = incog_prefs->GetString(kPref1);
203 EXPECT_EQ("val2", actual); 219 EXPECT_EQ("val2", actual);
204 } 220 }
205 221
206 virtual void Verify() OVERRIDE { 222 virtual void Verify() OVERRIDE {
207 // Main pref service shall see only non-incognito settings. 223 // Main pref service shall see only non-incognito settings.
208 std::string actual = prefs()->pref_service()->GetString(kPref1); 224 std::string actual = prefs()->pref_service()->GetString(kPref1);
209 EXPECT_EQ("val1", actual); 225 EXPECT_EQ("val1", actual);
210 // Incognito pref service shall see incognito values. 226 // Incognito pref service shall see incognito values.
211 scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService()); 227 scoped_ptr<PrefService> incog_prefs(CreateIncognitoPrefService());
212 actual = incog_prefs->GetString(kPref1); 228 actual = incog_prefs->GetString(kPref1);
213 EXPECT_EQ("val2", actual); 229 EXPECT_EQ("val2", actual);
214 } 230 }
215 }; 231 };
216 TEST_F(ControlledPrefsInstallIncognitoPersistent, 232 TEST_F(ControlledPrefsInstallIncognitoPersistent,
217 ControlledPrefsInstallIncognitoPersistent) { } 233 ControlledPrefsInstallIncognitoPersistent) { }
218 234
219 // Check that we forget 'session only' incognito values after a reload. 235 // Check that we forget 'session only' incognito values after a reload.
220 class ControlledPrefsInstallIncognitoSessionOnly 236 class ControlledPrefsInstallIncognitoSessionOnly
221 : public ExtensionControlledPrefsTest { 237 : public ExtensionControlledPrefsTest {
222 public: 238 public:
223 ControlledPrefsInstallIncognitoSessionOnly() : iteration_(0) {} 239 ControlledPrefsInstallIncognitoSessionOnly() : iteration_(0) {}
224 240
225 virtual void Initialize() OVERRIDE { 241 virtual void Initialize() OVERRIDE {
226 InstallExtensionControlledPref( 242 InstallExtensionControlledPref(
227 extension1(), kPref1, new base::StringValue("val1")); 243 extension1(), kPref1, new base::StringValue("val1"));
228 InstallExtensionControlledPrefIncognitoSessionOnly( 244 InstallExtensionControlledPrefIncognitoSessionOnly(
229 extension1(), kPref1, new base::StringValue("val2")); 245 extension1(), kPref1, new base::StringValue("val2"));
230 scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService()); 246 scoped_ptr<PrefService> incog_prefs(CreateIncognitoPrefService());
231 std::string actual = incog_prefs->GetString(kPref1); 247 std::string actual = incog_prefs->GetString(kPref1);
232 EXPECT_EQ("val2", actual); 248 EXPECT_EQ("val2", actual);
233 } 249 }
234 virtual void Verify() OVERRIDE { 250 virtual void Verify() OVERRIDE {
235 // Main pref service shall see only non-incognito settings. 251 // Main pref service shall see only non-incognito settings.
236 std::string actual = prefs()->pref_service()->GetString(kPref1); 252 std::string actual = prefs()->pref_service()->GetString(kPref1);
237 EXPECT_EQ("val1", actual); 253 EXPECT_EQ("val1", actual);
238 // Incognito pref service shall see session-only incognito values only 254 // Incognito pref service shall see session-only incognito values only
239 // during first run. Once the pref service was reloaded, all values shall be 255 // during first run. Once the pref service was reloaded, all values shall be
240 // discarded. 256 // discarded.
241 scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService()); 257 scoped_ptr<PrefService> incog_prefs(CreateIncognitoPrefService());
242 actual = incog_prefs->GetString(kPref1); 258 actual = incog_prefs->GetString(kPref1);
243 if (iteration_ == 0) { 259 if (iteration_ == 0) {
244 EXPECT_EQ("val2", actual); 260 EXPECT_EQ("val2", actual);
245 } else { 261 } else {
246 EXPECT_EQ("val1", actual); 262 EXPECT_EQ("val1", actual);
247 } 263 }
248 ++iteration_; 264 ++iteration_;
249 } 265 }
250 int iteration_; 266 int iteration_;
251 }; 267 };
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 using testing::_; 305 using testing::_;
290 using testing::Mock; 306 using testing::Mock;
291 using testing::StrEq; 307 using testing::StrEq;
292 308
293 MockPrefChangeCallback observer(prefs()->pref_service()); 309 MockPrefChangeCallback observer(prefs()->pref_service());
294 PrefChangeRegistrar registrar; 310 PrefChangeRegistrar registrar;
295 registrar.Init(prefs()->pref_service()); 311 registrar.Init(prefs()->pref_service());
296 registrar.Add(kPref1, observer.GetCallback()); 312 registrar.Add(kPref1, observer.GetCallback());
297 313
298 MockPrefChangeCallback incognito_observer(prefs()->pref_service()); 314 MockPrefChangeCallback incognito_observer(prefs()->pref_service());
299 scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService()); 315 scoped_ptr<PrefService> incog_prefs(CreateIncognitoPrefService());
300 PrefChangeRegistrar incognito_registrar; 316 PrefChangeRegistrar incognito_registrar;
301 incognito_registrar.Init(incog_prefs.get()); 317 incognito_registrar.Init(incog_prefs.get());
302 incognito_registrar.Add(kPref1, incognito_observer.GetCallback()); 318 incognito_registrar.Add(kPref1, incognito_observer.GetCallback());
303 319
304 // Write value and check notification. 320 // Write value and check notification.
305 EXPECT_CALL(observer, OnPreferenceChanged(_)); 321 EXPECT_CALL(observer, OnPreferenceChanged(_));
306 EXPECT_CALL(incognito_observer, OnPreferenceChanged(_)); 322 EXPECT_CALL(incognito_observer, OnPreferenceChanged(_));
307 InstallExtensionControlledPref(extension1(), kPref1, 323 InstallExtensionControlledPref(extension1(), kPref1,
308 new base::StringValue("https://www.chromium.org")); 324 new base::StringValue("https://www.chromium.org"));
309 Mock::VerifyAndClearExpectations(&observer); 325 Mock::VerifyAndClearExpectations(&observer);
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
458 EXPECT_EQ(kDefaultPref1, actual); 474 EXPECT_EQ(kDefaultPref1, actual);
459 } 475 }
460 } 476 }
461 477
462 private: 478 private:
463 int iteration_; 479 int iteration_;
464 }; 480 };
465 TEST_F(ControlledPrefsDisableExtensions, ControlledPrefsDisableExtensions) { } 481 TEST_F(ControlledPrefsDisableExtensions, ControlledPrefsDisableExtensions) { }
466 482
467 } // namespace extensions 483 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698