| 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" |
| 11 #include "chrome/browser/extensions/./extension_prefs_unittest.h" | 11 #include "chrome/browser/extensions/./extension_prefs_unittest.h" |
| 12 #include "chrome/browser/extensions/api/content_settings/content_settings_servic
e.h" |
| 12 #include "chrome/browser/extensions/api/preference/preference_api.h" | 13 #include "chrome/browser/extensions/api/preference/preference_api.h" |
| 13 #include "chrome/test/base/testing_profile.h" | 14 #include "chrome/test/base/testing_profile.h" |
| 14 #include "components/user_prefs/pref_registry_syncable.h" | 15 #include "components/user_prefs/pref_registry_syncable.h" |
| 15 #include "extensions/browser/extension_prefs.h" | 16 #include "extensions/browser/extension_prefs.h" |
| 16 #include "extensions/common/extension.h" | 17 #include "extensions/common/extension.h" |
| 17 #include "testing/gtest/include/gtest/gtest.h" | 18 #include "testing/gtest/include/gtest/gtest.h" |
| 18 | 19 |
| 19 using base::Value; | 20 using base::Value; |
| 20 | 21 |
| 21 namespace extensions { | 22 namespace extensions { |
| (...skipping 11 matching lines...) Expand all Loading... |
| 33 const char kDefaultPref3[] = "default pref 3"; | 34 const char kDefaultPref3[] = "default pref 3"; |
| 34 const char kDefaultPref4[] = "default pref 4"; | 35 const char kDefaultPref4[] = "default pref 4"; |
| 35 | 36 |
| 36 } // namespace | 37 } // namespace |
| 37 | 38 |
| 38 // An implementation of the PreferenceAPI which returns the ExtensionPrefs and | 39 // An implementation of the PreferenceAPI which returns the ExtensionPrefs and |
| 39 // ExtensionPrefValueMap from the TestExtensionPrefs, rather than from a | 40 // ExtensionPrefValueMap from the TestExtensionPrefs, rather than from a |
| 40 // profile (which we don't create in unittests). | 41 // profile (which we don't create in unittests). |
| 41 class TestPreferenceAPI : public PreferenceAPIBase { | 42 class TestPreferenceAPI : public PreferenceAPIBase { |
| 42 public: | 43 public: |
| 43 explicit TestPreferenceAPI(TestExtensionPrefs* test_extension_prefs) | 44 explicit TestPreferenceAPI(TestExtensionPrefs* test_extension_prefs, |
| 44 : test_extension_prefs_(test_extension_prefs) { } | 45 ContentSettingsService* content_settings) |
| 45 ~TestPreferenceAPI() { } | 46 : test_extension_prefs_(test_extension_prefs), |
| 47 content_settings_(content_settings) {} |
| 48 ~TestPreferenceAPI() {} |
| 49 |
| 46 private: | 50 private: |
| 47 // PreferenceAPIBase implementation. | 51 // PreferenceAPIBase implementation. |
| 48 virtual ExtensionPrefs* extension_prefs() OVERRIDE { | 52 virtual ExtensionPrefs* extension_prefs() OVERRIDE { |
| 49 return test_extension_prefs_->prefs(); | 53 return test_extension_prefs_->prefs(); |
| 50 } | 54 } |
| 51 virtual ExtensionPrefValueMap* extension_pref_value_map() OVERRIDE { | 55 virtual ExtensionPrefValueMap* extension_pref_value_map() OVERRIDE { |
| 52 return test_extension_prefs_->extension_pref_value_map(); | 56 return test_extension_prefs_->extension_pref_value_map(); |
| 53 } | 57 } |
| 58 virtual scoped_refptr<ContentSettingsStore> content_settings_store() |
| 59 OVERRIDE { |
| 60 return content_settings_->content_settings_store(); |
| 61 } |
| 54 | 62 |
| 55 TestExtensionPrefs* test_extension_prefs_; | 63 TestExtensionPrefs* test_extension_prefs_; |
| 64 ContentSettingsService* content_settings_; |
| 56 | 65 |
| 57 DISALLOW_COPY_AND_ASSIGN(TestPreferenceAPI); | 66 DISALLOW_COPY_AND_ASSIGN(TestPreferenceAPI); |
| 58 }; | 67 }; |
| 59 | 68 |
| 60 class ExtensionControlledPrefsTest : public PrefsPrepopulatedTestBase { | 69 class ExtensionControlledPrefsTest : public PrefsPrepopulatedTestBase { |
| 61 public: | 70 public: |
| 62 ExtensionControlledPrefsTest(); | 71 ExtensionControlledPrefsTest(); |
| 63 virtual ~ExtensionControlledPrefsTest(); | 72 virtual ~ExtensionControlledPrefsTest(); |
| 64 | 73 |
| 65 virtual void RegisterPreferences(user_prefs::PrefRegistrySyncable* registry) | 74 virtual void RegisterPreferences(user_prefs::PrefRegistrySyncable* registry) |
| 66 OVERRIDE; | 75 OVERRIDE; |
| 67 void InstallExtensionControlledPref(Extension* extension, | 76 void InstallExtensionControlledPref(Extension* extension, |
| 68 const std::string& key, | 77 const std::string& key, |
| 69 base::Value* value); | 78 base::Value* value); |
| 70 void InstallExtensionControlledPrefIncognito(Extension* extension, | 79 void InstallExtensionControlledPrefIncognito(Extension* extension, |
| 71 const std::string& key, | 80 const std::string& key, |
| 72 base::Value* value); | 81 base::Value* value); |
| 73 void InstallExtensionControlledPrefIncognitoSessionOnly( | 82 void InstallExtensionControlledPrefIncognitoSessionOnly( |
| 74 Extension* extension, | 83 Extension* extension, |
| 75 const std::string& key, | 84 const std::string& key, |
| 76 base::Value* value); | 85 base::Value* value); |
| 77 void InstallExtension(Extension* extension); | 86 void InstallExtension(Extension* extension); |
| 78 void UninstallExtension(const std::string& extension_id); | 87 void UninstallExtension(const std::string& extension_id); |
| 79 | 88 |
| 89 scoped_refptr<ContentSettingsStore> content_settings_store() { |
| 90 return content_settings_->content_settings_store(); |
| 91 } |
| 92 |
| 80 protected: | 93 protected: |
| 81 void EnsureExtensionInstalled(Extension* extension); | 94 void EnsureExtensionInstalled(Extension* extension); |
| 82 void EnsureExtensionUninstalled(const std::string& extension_id); | 95 void EnsureExtensionUninstalled(const std::string& extension_id); |
| 83 | 96 |
| 97 TestingProfile profile_; |
| 98 ContentSettingsService* content_settings_; |
| 84 TestPreferenceAPI test_preference_api_; | 99 TestPreferenceAPI test_preference_api_; |
| 85 }; | 100 }; |
| 86 | 101 |
| 87 ExtensionControlledPrefsTest::ExtensionControlledPrefsTest() | 102 ExtensionControlledPrefsTest::ExtensionControlledPrefsTest() |
| 88 : PrefsPrepopulatedTestBase(), | 103 : PrefsPrepopulatedTestBase(), |
| 89 test_preference_api_(&prefs_) { | 104 content_settings_(ContentSettingsService::Get(&profile_)), |
| 105 test_preference_api_(&prefs_, content_settings_) { |
| 106 prefs_.prefs()->AddObserver(content_settings_); |
| 90 } | 107 } |
| 91 | 108 |
| 92 ExtensionControlledPrefsTest::~ExtensionControlledPrefsTest() { | 109 ExtensionControlledPrefsTest::~ExtensionControlledPrefsTest() { |
| 93 } | 110 } |
| 94 | 111 |
| 95 void ExtensionControlledPrefsTest::RegisterPreferences( | 112 void ExtensionControlledPrefsTest::RegisterPreferences( |
| 96 user_prefs::PrefRegistrySyncable* registry) { | 113 user_prefs::PrefRegistrySyncable* registry) { |
| 97 registry->RegisterStringPref( | 114 registry->RegisterStringPref( |
| 98 kPref1, kDefaultPref1, user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); | 115 kPref1, kDefaultPref1, user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 99 registry->RegisterStringPref( | 116 registry->RegisterStringPref( |
| (...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 253 }; | 270 }; |
| 254 TEST_F(ControlledPrefsInstallIncognitoSessionOnly, | 271 TEST_F(ControlledPrefsInstallIncognitoSessionOnly, |
| 255 ControlledPrefsInstallIncognitoSessionOnly) { } | 272 ControlledPrefsInstallIncognitoSessionOnly) { } |
| 256 | 273 |
| 257 class ControlledPrefsUninstallExtension : public ExtensionControlledPrefsTest { | 274 class ControlledPrefsUninstallExtension : public ExtensionControlledPrefsTest { |
| 258 virtual void Initialize() OVERRIDE { | 275 virtual void Initialize() OVERRIDE { |
| 259 InstallExtensionControlledPref( | 276 InstallExtensionControlledPref( |
| 260 extension1(), kPref1, new base::StringValue("val1")); | 277 extension1(), kPref1, new base::StringValue("val1")); |
| 261 InstallExtensionControlledPref( | 278 InstallExtensionControlledPref( |
| 262 extension1(), kPref2, new base::StringValue("val2")); | 279 extension1(), kPref2, new base::StringValue("val2")); |
| 263 ContentSettingsStore* store = prefs()->content_settings_store(); | 280 scoped_refptr<ContentSettingsStore> store = content_settings_store(); |
| 264 ContentSettingsPattern pattern = | 281 ContentSettingsPattern pattern = |
| 265 ContentSettingsPattern::FromString("http://[*.]example.com"); | 282 ContentSettingsPattern::FromString("http://[*.]example.com"); |
| 266 store->SetExtensionContentSetting(extension1()->id(), | 283 store->SetExtensionContentSetting(extension1()->id(), |
| 267 pattern, pattern, | 284 pattern, pattern, |
| 268 CONTENT_SETTINGS_TYPE_IMAGES, | 285 CONTENT_SETTINGS_TYPE_IMAGES, |
| 269 std::string(), | 286 std::string(), |
| 270 CONTENT_SETTING_BLOCK, | 287 CONTENT_SETTING_BLOCK, |
| 271 kExtensionPrefsScopeRegular); | 288 kExtensionPrefsScopeRegular); |
| 272 | 289 |
| 273 UninstallExtension(extension1()->id()); | 290 UninstallExtension(extension1()->id()); |
| (...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 460 EXPECT_EQ(kDefaultPref1, actual); | 477 EXPECT_EQ(kDefaultPref1, actual); |
| 461 } | 478 } |
| 462 } | 479 } |
| 463 | 480 |
| 464 private: | 481 private: |
| 465 int iteration_; | 482 int iteration_; |
| 466 }; | 483 }; |
| 467 TEST_F(ControlledPrefsDisableExtensions, ControlledPrefsDisableExtensions) { } | 484 TEST_F(ControlledPrefsDisableExtensions, ControlledPrefsDisableExtensions) { } |
| 468 | 485 |
| 469 } // namespace extensions | 486 } // namespace extensions |
| OLD | NEW |