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 |