| 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 <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" | 
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 42 class TestPreferenceAPI : public PreferenceAPIBase { | 42 class TestPreferenceAPI : public PreferenceAPIBase { | 
| 43  public: | 43  public: | 
| 44   explicit TestPreferenceAPI(TestExtensionPrefs* test_extension_prefs, | 44   explicit TestPreferenceAPI(TestExtensionPrefs* test_extension_prefs, | 
| 45                              ContentSettingsService* content_settings) | 45                              ContentSettingsService* content_settings) | 
| 46       : test_extension_prefs_(test_extension_prefs), | 46       : test_extension_prefs_(test_extension_prefs), | 
| 47         content_settings_(content_settings) {} | 47         content_settings_(content_settings) {} | 
| 48   ~TestPreferenceAPI() {} | 48   ~TestPreferenceAPI() {} | 
| 49 | 49 | 
| 50  private: | 50  private: | 
| 51   // PreferenceAPIBase implementation. | 51   // PreferenceAPIBase implementation. | 
| 52   virtual ExtensionPrefs* extension_prefs() OVERRIDE { | 52   virtual ExtensionPrefs* extension_prefs() override { | 
| 53     return test_extension_prefs_->prefs(); | 53     return test_extension_prefs_->prefs(); | 
| 54   } | 54   } | 
| 55   virtual ExtensionPrefValueMap* extension_pref_value_map() OVERRIDE { | 55   virtual ExtensionPrefValueMap* extension_pref_value_map() override { | 
| 56     return test_extension_prefs_->extension_pref_value_map(); | 56     return test_extension_prefs_->extension_pref_value_map(); | 
| 57   } | 57   } | 
| 58   virtual scoped_refptr<ContentSettingsStore> content_settings_store() | 58   virtual scoped_refptr<ContentSettingsStore> content_settings_store() | 
| 59       OVERRIDE { | 59       override { | 
| 60     return content_settings_->content_settings_store(); | 60     return content_settings_->content_settings_store(); | 
| 61   } | 61   } | 
| 62 | 62 | 
| 63   TestExtensionPrefs* test_extension_prefs_; | 63   TestExtensionPrefs* test_extension_prefs_; | 
| 64   ContentSettingsService* content_settings_; | 64   ContentSettingsService* content_settings_; | 
| 65 | 65 | 
| 66   DISALLOW_COPY_AND_ASSIGN(TestPreferenceAPI); | 66   DISALLOW_COPY_AND_ASSIGN(TestPreferenceAPI); | 
| 67 }; | 67 }; | 
| 68 | 68 | 
| 69 class ExtensionControlledPrefsTest : public PrefsPrepopulatedTestBase { | 69 class ExtensionControlledPrefsTest : public PrefsPrepopulatedTestBase { | 
| 70  public: | 70  public: | 
| 71   ExtensionControlledPrefsTest(); | 71   ExtensionControlledPrefsTest(); | 
| 72   virtual ~ExtensionControlledPrefsTest(); | 72   virtual ~ExtensionControlledPrefsTest(); | 
| 73 | 73 | 
| 74   virtual void RegisterPreferences(user_prefs::PrefRegistrySyncable* registry) | 74   virtual void RegisterPreferences(user_prefs::PrefRegistrySyncable* registry) | 
| 75       OVERRIDE; | 75       override; | 
| 76   void InstallExtensionControlledPref(Extension* extension, | 76   void InstallExtensionControlledPref(Extension* extension, | 
| 77                                       const std::string& key, | 77                                       const std::string& key, | 
| 78                                       base::Value* value); | 78                                       base::Value* value); | 
| 79   void InstallExtensionControlledPrefIncognito(Extension* extension, | 79   void InstallExtensionControlledPrefIncognito(Extension* extension, | 
| 80                                                const std::string& key, | 80                                                const std::string& key, | 
| 81                                                base::Value* value); | 81                                                base::Value* value); | 
| 82   void InstallExtensionControlledPrefIncognitoSessionOnly( | 82   void InstallExtensionControlledPrefIncognitoSessionOnly( | 
| 83       Extension* extension, | 83       Extension* extension, | 
| 84       const std::string& key, | 84       const std::string& key, | 
| 85       base::Value* value); | 85       base::Value* value); | 
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 187     if (extensions[i]->id() == extension_id) { | 187     if (extensions[i]->id() == extension_id) { | 
| 188       installed_[i] = false; | 188       installed_[i] = false; | 
| 189       break; | 189       break; | 
| 190     } | 190     } | 
| 191   } | 191   } | 
| 192   prefs()->OnExtensionUninstalled(extension_id, Manifest::INTERNAL, false); | 192   prefs()->OnExtensionUninstalled(extension_id, Manifest::INTERNAL, false); | 
| 193 } | 193 } | 
| 194 | 194 | 
| 195 class ControlledPrefsInstallOneExtension | 195 class ControlledPrefsInstallOneExtension | 
| 196     : public ExtensionControlledPrefsTest { | 196     : public ExtensionControlledPrefsTest { | 
| 197   virtual void Initialize() OVERRIDE { | 197   virtual void Initialize() override { | 
| 198     InstallExtensionControlledPref(extension1(), | 198     InstallExtensionControlledPref(extension1(), | 
| 199                                    kPref1, | 199                                    kPref1, | 
| 200                                    new base::StringValue("val1")); | 200                                    new base::StringValue("val1")); | 
| 201   } | 201   } | 
| 202   virtual void Verify() OVERRIDE { | 202   virtual void Verify() override { | 
| 203     std::string actual = prefs()->pref_service()->GetString(kPref1); | 203     std::string actual = prefs()->pref_service()->GetString(kPref1); | 
| 204     EXPECT_EQ("val1", actual); | 204     EXPECT_EQ("val1", actual); | 
| 205   } | 205   } | 
| 206 }; | 206 }; | 
| 207 TEST_F(ControlledPrefsInstallOneExtension, | 207 TEST_F(ControlledPrefsInstallOneExtension, | 
| 208        ControlledPrefsInstallOneExtension) { } | 208        ControlledPrefsInstallOneExtension) { } | 
| 209 | 209 | 
| 210 // Check that we do not forget persistent incognito values after a reload. | 210 // Check that we do not forget persistent incognito values after a reload. | 
| 211 class ControlledPrefsInstallIncognitoPersistent | 211 class ControlledPrefsInstallIncognitoPersistent | 
| 212     : public ExtensionControlledPrefsTest { | 212     : public ExtensionControlledPrefsTest { | 
| 213  public: | 213  public: | 
| 214   virtual void Initialize() OVERRIDE { | 214   virtual void Initialize() override { | 
| 215     InstallExtensionControlledPref( | 215     InstallExtensionControlledPref( | 
| 216         extension1(), kPref1, new base::StringValue("val1")); | 216         extension1(), kPref1, new base::StringValue("val1")); | 
| 217     InstallExtensionControlledPrefIncognito( | 217     InstallExtensionControlledPrefIncognito( | 
| 218         extension1(), kPref1, new base::StringValue("val2")); | 218         extension1(), kPref1, new base::StringValue("val2")); | 
| 219     scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService()); | 219     scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService()); | 
| 220     std::string actual = incog_prefs->GetString(kPref1); | 220     std::string actual = incog_prefs->GetString(kPref1); | 
| 221     EXPECT_EQ("val2", actual); | 221     EXPECT_EQ("val2", actual); | 
| 222   } | 222   } | 
| 223 | 223 | 
| 224   virtual void Verify() OVERRIDE { | 224   virtual void Verify() override { | 
| 225     // Main pref service shall see only non-incognito settings. | 225     // Main pref service shall see only non-incognito settings. | 
| 226     std::string actual = prefs()->pref_service()->GetString(kPref1); | 226     std::string actual = prefs()->pref_service()->GetString(kPref1); | 
| 227     EXPECT_EQ("val1", actual); | 227     EXPECT_EQ("val1", actual); | 
| 228     // Incognito pref service shall see incognito values. | 228     // Incognito pref service shall see incognito values. | 
| 229     scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService()); | 229     scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService()); | 
| 230     actual = incog_prefs->GetString(kPref1); | 230     actual = incog_prefs->GetString(kPref1); | 
| 231     EXPECT_EQ("val2", actual); | 231     EXPECT_EQ("val2", actual); | 
| 232   } | 232   } | 
| 233 }; | 233 }; | 
| 234 TEST_F(ControlledPrefsInstallIncognitoPersistent, | 234 TEST_F(ControlledPrefsInstallIncognitoPersistent, | 
| 235        ControlledPrefsInstallIncognitoPersistent) { } | 235        ControlledPrefsInstallIncognitoPersistent) { } | 
| 236 | 236 | 
| 237 // Check that we forget 'session only' incognito values after a reload. | 237 // Check that we forget 'session only' incognito values after a reload. | 
| 238 class ControlledPrefsInstallIncognitoSessionOnly | 238 class ControlledPrefsInstallIncognitoSessionOnly | 
| 239     : public ExtensionControlledPrefsTest { | 239     : public ExtensionControlledPrefsTest { | 
| 240  public: | 240  public: | 
| 241   ControlledPrefsInstallIncognitoSessionOnly() : iteration_(0) {} | 241   ControlledPrefsInstallIncognitoSessionOnly() : iteration_(0) {} | 
| 242 | 242 | 
| 243   virtual void Initialize() OVERRIDE { | 243   virtual void Initialize() override { | 
| 244     InstallExtensionControlledPref( | 244     InstallExtensionControlledPref( | 
| 245         extension1(), kPref1, new base::StringValue("val1")); | 245         extension1(), kPref1, new base::StringValue("val1")); | 
| 246     InstallExtensionControlledPrefIncognitoSessionOnly( | 246     InstallExtensionControlledPrefIncognitoSessionOnly( | 
| 247         extension1(), kPref1, new base::StringValue("val2")); | 247         extension1(), kPref1, new base::StringValue("val2")); | 
| 248     scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService()); | 248     scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService()); | 
| 249     std::string actual = incog_prefs->GetString(kPref1); | 249     std::string actual = incog_prefs->GetString(kPref1); | 
| 250     EXPECT_EQ("val2", actual); | 250     EXPECT_EQ("val2", actual); | 
| 251   } | 251   } | 
| 252   virtual void Verify() OVERRIDE { | 252   virtual void Verify() override { | 
| 253     // Main pref service shall see only non-incognito settings. | 253     // Main pref service shall see only non-incognito settings. | 
| 254     std::string actual = prefs()->pref_service()->GetString(kPref1); | 254     std::string actual = prefs()->pref_service()->GetString(kPref1); | 
| 255     EXPECT_EQ("val1", actual); | 255     EXPECT_EQ("val1", actual); | 
| 256     // Incognito pref service shall see session-only incognito values only | 256     // Incognito pref service shall see session-only incognito values only | 
| 257     // 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 | 
| 258     // discarded. | 258     // discarded. | 
| 259     scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService()); | 259     scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService()); | 
| 260     actual = incog_prefs->GetString(kPref1); | 260     actual = incog_prefs->GetString(kPref1); | 
| 261     if (iteration_ == 0) { | 261     if (iteration_ == 0) { | 
| 262       EXPECT_EQ("val2", actual); | 262       EXPECT_EQ("val2", actual); | 
| 263     } else { | 263     } else { | 
| 264       EXPECT_EQ("val1", actual); | 264       EXPECT_EQ("val1", actual); | 
| 265     } | 265     } | 
| 266     ++iteration_; | 266     ++iteration_; | 
| 267   } | 267   } | 
| 268   int iteration_; | 268   int iteration_; | 
| 269 }; | 269 }; | 
| 270 TEST_F(ControlledPrefsInstallIncognitoSessionOnly, | 270 TEST_F(ControlledPrefsInstallIncognitoSessionOnly, | 
| 271        ControlledPrefsInstallIncognitoSessionOnly) { } | 271        ControlledPrefsInstallIncognitoSessionOnly) { } | 
| 272 | 272 | 
| 273 class ControlledPrefsUninstallExtension : public ExtensionControlledPrefsTest { | 273 class ControlledPrefsUninstallExtension : public ExtensionControlledPrefsTest { | 
| 274   virtual void Initialize() OVERRIDE { | 274   virtual void Initialize() override { | 
| 275     InstallExtensionControlledPref( | 275     InstallExtensionControlledPref( | 
| 276         extension1(), kPref1, new base::StringValue("val1")); | 276         extension1(), kPref1, new base::StringValue("val1")); | 
| 277     InstallExtensionControlledPref( | 277     InstallExtensionControlledPref( | 
| 278         extension1(), kPref2, new base::StringValue("val2")); | 278         extension1(), kPref2, new base::StringValue("val2")); | 
| 279     scoped_refptr<ContentSettingsStore> store = content_settings_store(); | 279     scoped_refptr<ContentSettingsStore> store = content_settings_store(); | 
| 280     ContentSettingsPattern pattern = | 280     ContentSettingsPattern pattern = | 
| 281         ContentSettingsPattern::FromString("http://[*.]example.com"); | 281         ContentSettingsPattern::FromString("http://[*.]example.com"); | 
| 282     store->SetExtensionContentSetting(extension1()->id(), | 282     store->SetExtensionContentSetting(extension1()->id(), | 
| 283                                       pattern, pattern, | 283                                       pattern, pattern, | 
| 284                                       CONTENT_SETTINGS_TYPE_IMAGES, | 284                                       CONTENT_SETTINGS_TYPE_IMAGES, | 
| 285                                       std::string(), | 285                                       std::string(), | 
| 286                                       CONTENT_SETTING_BLOCK, | 286                                       CONTENT_SETTING_BLOCK, | 
| 287                                       kExtensionPrefsScopeRegular); | 287                                       kExtensionPrefsScopeRegular); | 
| 288 | 288 | 
| 289     UninstallExtension(extension1()->id()); | 289     UninstallExtension(extension1()->id()); | 
| 290   } | 290   } | 
| 291   virtual void Verify() OVERRIDE { | 291   virtual void Verify() override { | 
| 292     EXPECT_FALSE(prefs()->HasPrefForExtension(extension1()->id())); | 292     EXPECT_FALSE(prefs()->HasPrefForExtension(extension1()->id())); | 
| 293 | 293 | 
| 294     std::string actual; | 294     std::string actual; | 
| 295     actual = prefs()->pref_service()->GetString(kPref1); | 295     actual = prefs()->pref_service()->GetString(kPref1); | 
| 296     EXPECT_EQ(kDefaultPref1, actual); | 296     EXPECT_EQ(kDefaultPref1, actual); | 
| 297     actual = prefs()->pref_service()->GetString(kPref2); | 297     actual = prefs()->pref_service()->GetString(kPref2); | 
| 298     EXPECT_EQ(kDefaultPref2, actual); | 298     EXPECT_EQ(kDefaultPref2, actual); | 
| 299   } | 299   } | 
| 300 }; | 300 }; | 
| 301 TEST_F(ControlledPrefsUninstallExtension, | 301 TEST_F(ControlledPrefsUninstallExtension, | 
| 302        ControlledPrefsUninstallExtension) { } | 302        ControlledPrefsUninstallExtension) { } | 
| 303 | 303 | 
| 304 // Tests triggering of notifications to registered observers. | 304 // Tests triggering of notifications to registered observers. | 
| 305 class ControlledPrefsNotifyWhenNeeded : public ExtensionControlledPrefsTest { | 305 class ControlledPrefsNotifyWhenNeeded : public ExtensionControlledPrefsTest { | 
| 306   virtual void Initialize() OVERRIDE { | 306   virtual void Initialize() override { | 
| 307     using testing::_; | 307     using testing::_; | 
| 308     using testing::Mock; | 308     using testing::Mock; | 
| 309     using testing::StrEq; | 309     using testing::StrEq; | 
| 310 | 310 | 
| 311     MockPrefChangeCallback observer(prefs()->pref_service()); | 311     MockPrefChangeCallback observer(prefs()->pref_service()); | 
| 312     PrefChangeRegistrar registrar; | 312     PrefChangeRegistrar registrar; | 
| 313     registrar.Init(prefs()->pref_service()); | 313     registrar.Init(prefs()->pref_service()); | 
| 314     registrar.Add(kPref1, observer.GetCallback()); | 314     registrar.Add(kPref1, observer.GetCallback()); | 
| 315 | 315 | 
| 316     MockPrefChangeCallback incognito_observer(prefs()->pref_service()); | 316     MockPrefChangeCallback incognito_observer(prefs()->pref_service()); | 
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 361     // Uninstall. | 361     // Uninstall. | 
| 362     EXPECT_CALL(observer, OnPreferenceChanged(_)); | 362     EXPECT_CALL(observer, OnPreferenceChanged(_)); | 
| 363     EXPECT_CALL(incognito_observer, OnPreferenceChanged(_)); | 363     EXPECT_CALL(incognito_observer, OnPreferenceChanged(_)); | 
| 364     UninstallExtension(extension1()->id()); | 364     UninstallExtension(extension1()->id()); | 
| 365     Mock::VerifyAndClearExpectations(&observer); | 365     Mock::VerifyAndClearExpectations(&observer); | 
| 366     Mock::VerifyAndClearExpectations(&incognito_observer); | 366     Mock::VerifyAndClearExpectations(&incognito_observer); | 
| 367 | 367 | 
| 368     registrar.Remove(kPref1); | 368     registrar.Remove(kPref1); | 
| 369     incognito_registrar.Remove(kPref1); | 369     incognito_registrar.Remove(kPref1); | 
| 370   } | 370   } | 
| 371   virtual void Verify() OVERRIDE { | 371   virtual void Verify() override { | 
| 372     std::string actual = prefs()->pref_service()->GetString(kPref1); | 372     std::string actual = prefs()->pref_service()->GetString(kPref1); | 
| 373     EXPECT_EQ(kDefaultPref1, actual); | 373     EXPECT_EQ(kDefaultPref1, actual); | 
| 374   } | 374   } | 
| 375 }; | 375 }; | 
| 376 TEST_F(ControlledPrefsNotifyWhenNeeded, | 376 TEST_F(ControlledPrefsNotifyWhenNeeded, | 
| 377        ControlledPrefsNotifyWhenNeeded) { } | 377        ControlledPrefsNotifyWhenNeeded) { } | 
| 378 | 378 | 
| 379 // Tests disabling an extension. | 379 // Tests disabling an extension. | 
| 380 class ControlledPrefsDisableExtension : public ExtensionControlledPrefsTest { | 380 class ControlledPrefsDisableExtension : public ExtensionControlledPrefsTest { | 
| 381   virtual void Initialize() OVERRIDE { | 381   virtual void Initialize() override { | 
| 382     InstallExtensionControlledPref( | 382     InstallExtensionControlledPref( | 
| 383         extension1(), kPref1, new base::StringValue("val1")); | 383         extension1(), kPref1, new base::StringValue("val1")); | 
| 384     std::string actual = prefs()->pref_service()->GetString(kPref1); | 384     std::string actual = prefs()->pref_service()->GetString(kPref1); | 
| 385     EXPECT_EQ("val1", actual); | 385     EXPECT_EQ("val1", actual); | 
| 386     prefs()->SetExtensionState(extension1()->id(), Extension::DISABLED); | 386     prefs()->SetExtensionState(extension1()->id(), Extension::DISABLED); | 
| 387   } | 387   } | 
| 388   virtual void Verify() OVERRIDE { | 388   virtual void Verify() override { | 
| 389     std::string actual = prefs()->pref_service()->GetString(kPref1); | 389     std::string actual = prefs()->pref_service()->GetString(kPref1); | 
| 390     EXPECT_EQ(kDefaultPref1, actual); | 390     EXPECT_EQ(kDefaultPref1, actual); | 
| 391   } | 391   } | 
| 392 }; | 392 }; | 
| 393 TEST_F(ControlledPrefsDisableExtension, ControlledPrefsDisableExtension) { } | 393 TEST_F(ControlledPrefsDisableExtension, ControlledPrefsDisableExtension) { } | 
| 394 | 394 | 
| 395 // Tests disabling and reenabling an extension. | 395 // Tests disabling and reenabling an extension. | 
| 396 class ControlledPrefsReenableExtension : public ExtensionControlledPrefsTest { | 396 class ControlledPrefsReenableExtension : public ExtensionControlledPrefsTest { | 
| 397   virtual void Initialize() OVERRIDE { | 397   virtual void Initialize() override { | 
| 398     InstallExtensionControlledPref( | 398     InstallExtensionControlledPref( | 
| 399         extension1(), kPref1, new base::StringValue("val1")); | 399         extension1(), kPref1, new base::StringValue("val1")); | 
| 400     prefs()->SetExtensionState(extension1()->id(), Extension::DISABLED); | 400     prefs()->SetExtensionState(extension1()->id(), Extension::DISABLED); | 
| 401     prefs()->SetExtensionState(extension1()->id(), Extension::ENABLED); | 401     prefs()->SetExtensionState(extension1()->id(), Extension::ENABLED); | 
| 402   } | 402   } | 
| 403   virtual void Verify() OVERRIDE { | 403   virtual void Verify() override { | 
| 404     std::string actual = prefs()->pref_service()->GetString(kPref1); | 404     std::string actual = prefs()->pref_service()->GetString(kPref1); | 
| 405     EXPECT_EQ("val1", actual); | 405     EXPECT_EQ("val1", actual); | 
| 406   } | 406   } | 
| 407 }; | 407 }; | 
| 408 TEST_F(ControlledPrefsDisableExtension, ControlledPrefsReenableExtension) { } | 408 TEST_F(ControlledPrefsDisableExtension, ControlledPrefsReenableExtension) { } | 
| 409 | 409 | 
| 410 // Mock class to test whether objects are deleted correctly. | 410 // Mock class to test whether objects are deleted correctly. | 
| 411 class MockStringValue : public base::StringValue { | 411 class MockStringValue : public base::StringValue { | 
| 412  public: | 412  public: | 
| 413   explicit MockStringValue(const std::string& in_value) | 413   explicit MockStringValue(const std::string& in_value) | 
| 414       : base::StringValue(in_value) { | 414       : base::StringValue(in_value) { | 
| 415   } | 415   } | 
| 416   virtual ~MockStringValue() { | 416   virtual ~MockStringValue() { | 
| 417     Die(); | 417     Die(); | 
| 418   } | 418   } | 
| 419   MOCK_METHOD0(Die, void()); | 419   MOCK_METHOD0(Die, void()); | 
| 420 }; | 420 }; | 
| 421 | 421 | 
| 422 class ControlledPrefsSetExtensionControlledPref | 422 class ControlledPrefsSetExtensionControlledPref | 
| 423     : public ExtensionControlledPrefsTest { | 423     : public ExtensionControlledPrefsTest { | 
| 424  public: | 424  public: | 
| 425   virtual void Initialize() OVERRIDE { | 425   virtual void Initialize() override { | 
| 426     MockStringValue* v1 = new MockStringValue("https://www.chromium.org"); | 426     MockStringValue* v1 = new MockStringValue("https://www.chromium.org"); | 
| 427     MockStringValue* v2 = new MockStringValue("https://www.chromium.org"); | 427     MockStringValue* v2 = new MockStringValue("https://www.chromium.org"); | 
| 428     MockStringValue* v1i = new MockStringValue("https://www.chromium.org"); | 428     MockStringValue* v1i = new MockStringValue("https://www.chromium.org"); | 
| 429     MockStringValue* v2i = new MockStringValue("https://www.chromium.org"); | 429     MockStringValue* v2i = new MockStringValue("https://www.chromium.org"); | 
| 430     // Ownership is taken, value shall not be deleted. | 430     // Ownership is taken, value shall not be deleted. | 
| 431     EXPECT_CALL(*v1, Die()).Times(0); | 431     EXPECT_CALL(*v1, Die()).Times(0); | 
| 432     EXPECT_CALL(*v1i, Die()).Times(0); | 432     EXPECT_CALL(*v1i, Die()).Times(0); | 
| 433     InstallExtensionControlledPref(extension1(), kPref1, v1); | 433     InstallExtensionControlledPref(extension1(), kPref1, v1); | 
| 434     InstallExtensionControlledPrefIncognito(extension1(), kPref1, v1i); | 434     InstallExtensionControlledPrefIncognito(extension1(), kPref1, v1i); | 
| 435     testing::Mock::VerifyAndClearExpectations(v1); | 435     testing::Mock::VerifyAndClearExpectations(v1); | 
| 436     testing::Mock::VerifyAndClearExpectations(v1i); | 436     testing::Mock::VerifyAndClearExpectations(v1i); | 
| 437     // Make sure there is no memory leak and both values are deleted. | 437     // Make sure there is no memory leak and both values are deleted. | 
| 438     EXPECT_CALL(*v1, Die()).Times(1); | 438     EXPECT_CALL(*v1, Die()).Times(1); | 
| 439     EXPECT_CALL(*v1i, Die()).Times(1); | 439     EXPECT_CALL(*v1i, Die()).Times(1); | 
| 440     EXPECT_CALL(*v2, Die()).Times(1); | 440     EXPECT_CALL(*v2, Die()).Times(1); | 
| 441     EXPECT_CALL(*v2i, Die()).Times(1); | 441     EXPECT_CALL(*v2i, Die()).Times(1); | 
| 442     InstallExtensionControlledPref(extension1(), kPref1, v2); | 442     InstallExtensionControlledPref(extension1(), kPref1, v2); | 
| 443     InstallExtensionControlledPrefIncognito(extension1(), kPref1, v2i); | 443     InstallExtensionControlledPrefIncognito(extension1(), kPref1, v2i); | 
| 444     prefs_.RecreateExtensionPrefs(); | 444     prefs_.RecreateExtensionPrefs(); | 
| 445     testing::Mock::VerifyAndClearExpectations(v1); | 445     testing::Mock::VerifyAndClearExpectations(v1); | 
| 446     testing::Mock::VerifyAndClearExpectations(v1i); | 446     testing::Mock::VerifyAndClearExpectations(v1i); | 
| 447     testing::Mock::VerifyAndClearExpectations(v2); | 447     testing::Mock::VerifyAndClearExpectations(v2); | 
| 448     testing::Mock::VerifyAndClearExpectations(v2i); | 448     testing::Mock::VerifyAndClearExpectations(v2i); | 
| 449   } | 449   } | 
| 450 | 450 | 
| 451   virtual void Verify() OVERRIDE { | 451   virtual void Verify() override { | 
| 452   } | 452   } | 
| 453 }; | 453 }; | 
| 454 TEST_F(ControlledPrefsSetExtensionControlledPref, | 454 TEST_F(ControlledPrefsSetExtensionControlledPref, | 
| 455        ControlledPrefsSetExtensionControlledPref) { } | 455        ControlledPrefsSetExtensionControlledPref) { } | 
| 456 | 456 | 
| 457 // Tests that the switches::kDisableExtensions command-line flag prevents | 457 // Tests that the switches::kDisableExtensions command-line flag prevents | 
| 458 // extension controlled preferences from being enacted. | 458 // extension controlled preferences from being enacted. | 
| 459 class ControlledPrefsDisableExtensions : public ExtensionControlledPrefsTest { | 459 class ControlledPrefsDisableExtensions : public ExtensionControlledPrefsTest { | 
| 460  public: | 460  public: | 
| 461   ControlledPrefsDisableExtensions() | 461   ControlledPrefsDisableExtensions() | 
| 462       : iteration_(0) {} | 462       : iteration_(0) {} | 
| 463   virtual ~ControlledPrefsDisableExtensions() {} | 463   virtual ~ControlledPrefsDisableExtensions() {} | 
| 464   virtual void Initialize() OVERRIDE { | 464   virtual void Initialize() override { | 
| 465     InstallExtensionControlledPref( | 465     InstallExtensionControlledPref( | 
| 466         extension1(), kPref1, new base::StringValue("val1")); | 466         extension1(), kPref1, new base::StringValue("val1")); | 
| 467     // This becomes only active in the second verification phase. | 467     // This becomes only active in the second verification phase. | 
| 468     prefs_.set_extensions_disabled(true); | 468     prefs_.set_extensions_disabled(true); | 
| 469   } | 469   } | 
| 470   virtual void Verify() OVERRIDE { | 470   virtual void Verify() override { | 
| 471     std::string actual = prefs()->pref_service()->GetString(kPref1); | 471     std::string actual = prefs()->pref_service()->GetString(kPref1); | 
| 472     if (iteration_ == 0) { | 472     if (iteration_ == 0) { | 
| 473       EXPECT_EQ("val1", actual); | 473       EXPECT_EQ("val1", actual); | 
| 474       ++iteration_; | 474       ++iteration_; | 
| 475     } else { | 475     } else { | 
| 476       EXPECT_EQ(kDefaultPref1, actual); | 476       EXPECT_EQ(kDefaultPref1, actual); | 
| 477     } | 477     } | 
| 478   } | 478   } | 
| 479 | 479 | 
| 480  private: | 480  private: | 
| 481   int iteration_; | 481   int iteration_; | 
| 482 }; | 482 }; | 
| 483 TEST_F(ControlledPrefsDisableExtensions, ControlledPrefsDisableExtensions) { } | 483 TEST_F(ControlledPrefsDisableExtensions, ControlledPrefsDisableExtensions) { } | 
| 484 | 484 | 
| 485 }  // namespace extensions | 485 }  // namespace extensions | 
| OLD | NEW | 
|---|