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 |