| OLD | NEW |
| 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 <stddef.h> | 5 #include <stddef.h> |
| 6 | 6 |
| 7 #include <memory> |
| 7 #include <string> | 8 #include <string> |
| 8 | 9 |
| 9 #include "base/macros.h" | 10 #include "base/macros.h" |
| 10 #include "base/memory/ref_counted.h" | 11 #include "base/memory/ref_counted.h" |
| 11 #include "base/memory/scoped_ptr.h" | |
| 12 #include "base/values.h" | 12 #include "base/values.h" |
| 13 #include "chrome/browser/extensions/api/content_settings/content_settings_servic
e.h" | 13 #include "chrome/browser/extensions/api/content_settings/content_settings_servic
e.h" |
| 14 #include "chrome/browser/extensions/api/preference/preference_api.h" | 14 #include "chrome/browser/extensions/api/preference/preference_api.h" |
| 15 #include "chrome/browser/extensions/extension_prefs_unittest.h" | 15 #include "chrome/browser/extensions/extension_prefs_unittest.h" |
| 16 #include "chrome/test/base/testing_profile.h" | 16 #include "chrome/test/base/testing_profile.h" |
| 17 #include "components/pref_registry/pref_registry_syncable.h" | 17 #include "components/pref_registry/pref_registry_syncable.h" |
| 18 #include "components/prefs/mock_pref_change_callback.h" | 18 #include "components/prefs/mock_pref_change_callback.h" |
| 19 #include "extensions/browser/extension_prefs.h" | 19 #include "extensions/browser/extension_prefs.h" |
| 20 #include "extensions/common/extension.h" | 20 #include "extensions/common/extension.h" |
| 21 #include "testing/gtest/include/gtest/gtest.h" | 21 #include "testing/gtest/include/gtest/gtest.h" |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 206 | 206 |
| 207 // Check that we do not forget persistent incognito values after a reload. | 207 // Check that we do not forget persistent incognito values after a reload. |
| 208 class ControlledPrefsInstallIncognitoPersistent | 208 class ControlledPrefsInstallIncognitoPersistent |
| 209 : public ExtensionControlledPrefsTest { | 209 : public ExtensionControlledPrefsTest { |
| 210 public: | 210 public: |
| 211 void Initialize() override { | 211 void Initialize() override { |
| 212 InstallExtensionControlledPref( | 212 InstallExtensionControlledPref( |
| 213 extension1(), kPref1, new base::StringValue("val1")); | 213 extension1(), kPref1, new base::StringValue("val1")); |
| 214 InstallExtensionControlledPrefIncognito( | 214 InstallExtensionControlledPrefIncognito( |
| 215 extension1(), kPref1, new base::StringValue("val2")); | 215 extension1(), kPref1, new base::StringValue("val2")); |
| 216 scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService()); | 216 std::unique_ptr<PrefService> incog_prefs( |
| 217 prefs_.CreateIncognitoPrefService()); |
| 217 std::string actual = incog_prefs->GetString(kPref1); | 218 std::string actual = incog_prefs->GetString(kPref1); |
| 218 EXPECT_EQ("val2", actual); | 219 EXPECT_EQ("val2", actual); |
| 219 } | 220 } |
| 220 | 221 |
| 221 void Verify() override { | 222 void Verify() override { |
| 222 // Main pref service shall see only non-incognito settings. | 223 // Main pref service shall see only non-incognito settings. |
| 223 std::string actual = prefs()->pref_service()->GetString(kPref1); | 224 std::string actual = prefs()->pref_service()->GetString(kPref1); |
| 224 EXPECT_EQ("val1", actual); | 225 EXPECT_EQ("val1", actual); |
| 225 // Incognito pref service shall see incognito values. | 226 // Incognito pref service shall see incognito values. |
| 226 scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService()); | 227 std::unique_ptr<PrefService> incog_prefs( |
| 228 prefs_.CreateIncognitoPrefService()); |
| 227 actual = incog_prefs->GetString(kPref1); | 229 actual = incog_prefs->GetString(kPref1); |
| 228 EXPECT_EQ("val2", actual); | 230 EXPECT_EQ("val2", actual); |
| 229 } | 231 } |
| 230 }; | 232 }; |
| 231 TEST_F(ControlledPrefsInstallIncognitoPersistent, | 233 TEST_F(ControlledPrefsInstallIncognitoPersistent, |
| 232 ControlledPrefsInstallIncognitoPersistent) { } | 234 ControlledPrefsInstallIncognitoPersistent) { } |
| 233 | 235 |
| 234 // Check that we forget 'session only' incognito values after a reload. | 236 // Check that we forget 'session only' incognito values after a reload. |
| 235 class ControlledPrefsInstallIncognitoSessionOnly | 237 class ControlledPrefsInstallIncognitoSessionOnly |
| 236 : public ExtensionControlledPrefsTest { | 238 : public ExtensionControlledPrefsTest { |
| 237 public: | 239 public: |
| 238 ControlledPrefsInstallIncognitoSessionOnly() : iteration_(0) {} | 240 ControlledPrefsInstallIncognitoSessionOnly() : iteration_(0) {} |
| 239 | 241 |
| 240 void Initialize() override { | 242 void Initialize() override { |
| 241 InstallExtensionControlledPref( | 243 InstallExtensionControlledPref( |
| 242 extension1(), kPref1, new base::StringValue("val1")); | 244 extension1(), kPref1, new base::StringValue("val1")); |
| 243 InstallExtensionControlledPrefIncognitoSessionOnly( | 245 InstallExtensionControlledPrefIncognitoSessionOnly( |
| 244 extension1(), kPref1, new base::StringValue("val2")); | 246 extension1(), kPref1, new base::StringValue("val2")); |
| 245 scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService()); | 247 std::unique_ptr<PrefService> incog_prefs( |
| 248 prefs_.CreateIncognitoPrefService()); |
| 246 std::string actual = incog_prefs->GetString(kPref1); | 249 std::string actual = incog_prefs->GetString(kPref1); |
| 247 EXPECT_EQ("val2", actual); | 250 EXPECT_EQ("val2", actual); |
| 248 } | 251 } |
| 249 void Verify() override { | 252 void Verify() override { |
| 250 // Main pref service shall see only non-incognito settings. | 253 // Main pref service shall see only non-incognito settings. |
| 251 std::string actual = prefs()->pref_service()->GetString(kPref1); | 254 std::string actual = prefs()->pref_service()->GetString(kPref1); |
| 252 EXPECT_EQ("val1", actual); | 255 EXPECT_EQ("val1", actual); |
| 253 // Incognito pref service shall see session-only incognito values only | 256 // Incognito pref service shall see session-only incognito values only |
| 254 // during first run. Once the pref service was reloaded, all values shall be | 257 // during first run. Once the pref service was reloaded, all values shall be |
| 255 // discarded. | 258 // discarded. |
| 256 scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService()); | 259 std::unique_ptr<PrefService> incog_prefs( |
| 260 prefs_.CreateIncognitoPrefService()); |
| 257 actual = incog_prefs->GetString(kPref1); | 261 actual = incog_prefs->GetString(kPref1); |
| 258 if (iteration_ == 0) { | 262 if (iteration_ == 0) { |
| 259 EXPECT_EQ("val2", actual); | 263 EXPECT_EQ("val2", actual); |
| 260 } else { | 264 } else { |
| 261 EXPECT_EQ("val1", actual); | 265 EXPECT_EQ("val1", actual); |
| 262 } | 266 } |
| 263 ++iteration_; | 267 ++iteration_; |
| 264 } | 268 } |
| 265 int iteration_; | 269 int iteration_; |
| 266 }; | 270 }; |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 304 using testing::_; | 308 using testing::_; |
| 305 using testing::Mock; | 309 using testing::Mock; |
| 306 using testing::StrEq; | 310 using testing::StrEq; |
| 307 | 311 |
| 308 MockPrefChangeCallback observer(prefs()->pref_service()); | 312 MockPrefChangeCallback observer(prefs()->pref_service()); |
| 309 PrefChangeRegistrar registrar; | 313 PrefChangeRegistrar registrar; |
| 310 registrar.Init(prefs()->pref_service()); | 314 registrar.Init(prefs()->pref_service()); |
| 311 registrar.Add(kPref1, observer.GetCallback()); | 315 registrar.Add(kPref1, observer.GetCallback()); |
| 312 | 316 |
| 313 MockPrefChangeCallback incognito_observer(prefs()->pref_service()); | 317 MockPrefChangeCallback incognito_observer(prefs()->pref_service()); |
| 314 scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService()); | 318 std::unique_ptr<PrefService> incog_prefs( |
| 319 prefs_.CreateIncognitoPrefService()); |
| 315 PrefChangeRegistrar incognito_registrar; | 320 PrefChangeRegistrar incognito_registrar; |
| 316 incognito_registrar.Init(incog_prefs.get()); | 321 incognito_registrar.Init(incog_prefs.get()); |
| 317 incognito_registrar.Add(kPref1, incognito_observer.GetCallback()); | 322 incognito_registrar.Add(kPref1, incognito_observer.GetCallback()); |
| 318 | 323 |
| 319 // Write value and check notification. | 324 // Write value and check notification. |
| 320 EXPECT_CALL(observer, OnPreferenceChanged(_)); | 325 EXPECT_CALL(observer, OnPreferenceChanged(_)); |
| 321 EXPECT_CALL(incognito_observer, OnPreferenceChanged(_)); | 326 EXPECT_CALL(incognito_observer, OnPreferenceChanged(_)); |
| 322 InstallExtensionControlledPref(extension1(), kPref1, | 327 InstallExtensionControlledPref(extension1(), kPref1, |
| 323 new base::StringValue("https://www.chromium.org")); | 328 new base::StringValue("https://www.chromium.org")); |
| 324 Mock::VerifyAndClearExpectations(&observer); | 329 Mock::VerifyAndClearExpectations(&observer); |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 474 EXPECT_EQ(kDefaultPref1, actual); | 479 EXPECT_EQ(kDefaultPref1, actual); |
| 475 } | 480 } |
| 476 } | 481 } |
| 477 | 482 |
| 478 private: | 483 private: |
| 479 int iteration_; | 484 int iteration_; |
| 480 }; | 485 }; |
| 481 TEST_F(ControlledPrefsDisableExtensions, ControlledPrefsDisableExtensions) { } | 486 TEST_F(ControlledPrefsDisableExtensions, ControlledPrefsDisableExtensions) { } |
| 482 | 487 |
| 483 } // namespace extensions | 488 } // namespace extensions |
| OLD | NEW |