OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/extensions/component_loader.h" | 5 #include "chrome/browser/extensions/component_loader.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/file_util.h" | 9 #include "base/file_util.h" |
10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 GetBasePath().AppendASCII("good") | 85 GetBasePath().AppendASCII("good") |
86 .AppendASCII("Extensions") | 86 .AppendASCII("Extensions") |
87 .AppendASCII("behllobkkfkfnphdnhnkndlbkcpglgmj") | 87 .AppendASCII("behllobkkfkfnphdnhnkndlbkcpglgmj") |
88 .AppendASCII("1.0.0.0"); | 88 .AppendASCII("1.0.0.0"); |
89 | 89 |
90 // Read in the extension manifest. | 90 // Read in the extension manifest. |
91 ASSERT_TRUE(file_util::ReadFileToString( | 91 ASSERT_TRUE(file_util::ReadFileToString( |
92 extension_path_.Append(kManifestFilename), | 92 extension_path_.Append(kManifestFilename), |
93 &manifest_contents_)); | 93 &manifest_contents_)); |
94 | 94 |
95 // Register the user prefs that ComponentLoader will read. | |
96 prefs_.registry()->RegisterStringPref( | |
97 prefs::kEnterpriseWebStoreURL, | |
98 std::string(), | |
99 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); | |
100 prefs_.registry()->RegisterStringPref( | |
101 prefs::kEnterpriseWebStoreName, | |
102 std::string(), | |
103 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); | |
104 | |
105 // Register the local state prefs. | 95 // Register the local state prefs. |
106 #if defined(OS_CHROMEOS) | 96 #if defined(OS_CHROMEOS) |
107 local_state_.registry()->RegisterBooleanPref( | 97 local_state_.registry()->RegisterBooleanPref( |
108 prefs::kSpokenFeedbackEnabled, false); | 98 prefs::kSpokenFeedbackEnabled, false); |
109 #endif | 99 #endif |
110 } | 100 } |
111 | 101 |
112 protected: | 102 protected: |
113 MockExtensionService extension_service_; | 103 MockExtensionService extension_service_; |
114 TestingPrefServiceSyncable prefs_; | 104 TestingPrefServiceSyncable prefs_; |
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
253 // And add one more just to make sure there is anything in there in case | 243 // And add one more just to make sure there is anything in there in case |
254 // there are no defaults for this platform. | 244 // there are no defaults for this platform. |
255 component_loader_.Add(manifest_contents_, extension_path_); | 245 component_loader_.Add(manifest_contents_, extension_path_); |
256 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size()); | 246 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size()); |
257 | 247 |
258 // Remove all default extensions. | 248 // Remove all default extensions. |
259 component_loader_.RemoveAll(); | 249 component_loader_.RemoveAll(); |
260 EXPECT_EQ(0u, extension_service_.extensions()->size()); | 250 EXPECT_EQ(0u, extension_service_.extensions()->size()); |
261 } | 251 } |
262 | 252 |
263 TEST_F(ComponentLoaderTest, EnterpriseWebStore) { | |
264 component_loader_.AddDefaultComponentExtensions(false); | |
265 component_loader_.LoadAll(); | |
266 unsigned int default_count = extension_service_.extensions()->size(); | |
267 | |
268 // Set the pref, and it should get loaded automatically. | |
269 extension_service_.set_ready(true); | |
270 prefs_.SetUserPref(prefs::kEnterpriseWebStoreURL, | |
271 Value::CreateStringValue("http://www.google.com")); | |
272 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size()); | |
273 | |
274 // Now that the pref is set, check if it's added by default. | |
275 extension_service_.set_ready(false); | |
276 extension_service_.clear_extensions(); | |
277 component_loader_.ClearAllRegistered(); | |
278 component_loader_.AddDefaultComponentExtensions(false); | |
279 component_loader_.LoadAll(); | |
280 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size()); | |
281 | |
282 // Number of loaded extensions should be the same after changing the pref. | |
283 prefs_.SetUserPref(prefs::kEnterpriseWebStoreURL, | |
284 Value::CreateStringValue("http://www.google.de")); | |
285 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size()); | |
286 } | |
287 | |
288 TEST_F(ComponentLoaderTest, AddOrReplace) { | 253 TEST_F(ComponentLoaderTest, AddOrReplace) { |
289 EXPECT_EQ(0u, component_loader_.registered_extensions_count()); | 254 EXPECT_EQ(0u, component_loader_.registered_extensions_count()); |
290 component_loader_.AddDefaultComponentExtensions(false); | 255 component_loader_.AddDefaultComponentExtensions(false); |
291 size_t const default_count = component_loader_.registered_extensions_count(); | 256 size_t const default_count = component_loader_.registered_extensions_count(); |
292 base::FilePath known_extension = GetBasePath() | 257 base::FilePath known_extension = GetBasePath() |
293 .AppendASCII("override_component_extension"); | 258 .AppendASCII("override_component_extension"); |
294 base::FilePath unknow_extension = extension_path_; | 259 base::FilePath unknow_extension = extension_path_; |
295 | 260 |
296 // Replace a default component extension. | 261 // Replace a default component extension. |
297 component_loader_.AddOrReplace(known_extension); | 262 component_loader_.AddOrReplace(known_extension); |
(...skipping 11 matching lines...) Expand all Loading... |
309 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size()); | 274 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size()); |
310 EXPECT_EQ(0u, extension_service_.unloaded_count()); | 275 EXPECT_EQ(0u, extension_service_.unloaded_count()); |
311 | 276 |
312 // replace loaded component extension. | 277 // replace loaded component extension. |
313 component_loader_.AddOrReplace(known_extension); | 278 component_loader_.AddOrReplace(known_extension); |
314 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size()); | 279 EXPECT_EQ(default_count + 1, extension_service_.extensions()->size()); |
315 EXPECT_EQ(1u, extension_service_.unloaded_count()); | 280 EXPECT_EQ(1u, extension_service_.unloaded_count()); |
316 } | 281 } |
317 | 282 |
318 } // namespace extensions | 283 } // namespace extensions |
OLD | NEW |