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 #ifndef CHROME_BROWSER_EXTENSIONS_TEST_EXTENSION_SYSTEM_H_ | 5 #ifndef CHROME_BROWSER_EXTENSIONS_TEST_EXTENSION_SYSTEM_H_ |
6 #define CHROME_BROWSER_EXTENSIONS_TEST_EXTENSION_SYSTEM_H_ | 6 #define CHROME_BROWSER_EXTENSIONS_TEST_EXTENSION_SYSTEM_H_ |
7 | 7 |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "base/memory/scoped_vector.h" | 9 #include "base/memory/scoped_vector.h" |
10 #include "extensions/browser/extension_system.h" | 10 #include "extensions/browser/extension_system.h" |
11 #include "extensions/common/one_shot_event.h" | 11 #include "extensions/common/one_shot_event.h" |
12 | 12 |
13 class Profile; | 13 class Profile; |
14 class TestingValueStore; | 14 class TestingValueStore; |
15 | 15 |
16 namespace base { | 16 namespace base { |
17 class CommandLine; | 17 class CommandLine; |
18 class FilePath; | 18 class FilePath; |
19 class Time; | |
20 } | 19 } |
21 | 20 |
22 namespace content { | 21 namespace content { |
23 class BrowserContext; | 22 class BrowserContext; |
24 } | 23 } |
25 | 24 |
26 namespace extensions { | 25 namespace extensions { |
27 class ExtensionPrefs; | |
28 class InstallVerifier; | |
29 class RuntimeData; | |
30 class SharedUserScriptMaster; | |
31 class StandardManagementPolicyProvider; | |
32 | 26 |
33 // Test ExtensionSystem, for use with TestingProfile. | 27 // Test ExtensionSystem, for use with TestingProfile. |
34 class TestExtensionSystem : public ExtensionSystem { | 28 class TestExtensionSystem : public ExtensionSystem { |
35 public: | 29 public: |
36 explicit TestExtensionSystem(Profile* profile); | 30 explicit TestExtensionSystem(Profile* profile); |
37 ~TestExtensionSystem() override; | 31 ~TestExtensionSystem() override; |
38 | 32 |
39 // KeyedService implementation. | 33 // KeyedService implementation. |
40 void Shutdown() override; | 34 void Shutdown() override; |
41 | 35 |
42 // Creates an ExtensionPrefs with the testing profile and returns it. | |
43 // Useful for tests that need to modify prefs before creating the | |
44 // ExtensionService. | |
45 scoped_ptr<ExtensionPrefs> CreateExtensionPrefs( | |
46 const base::CommandLine* command_line, | |
47 const base::FilePath& install_directory); | |
48 | |
49 // Creates an ExtensionService initialized with the testing profile and | 36 // Creates an ExtensionService initialized with the testing profile and |
50 // returns it, and creates ExtensionPrefs if it hasn't been created yet. | 37 // returns it, and creates ExtensionPrefs if it hasn't been created yet. |
51 ExtensionService* CreateExtensionService( | 38 ExtensionService* CreateExtensionService( |
52 const base::CommandLine* command_line, | 39 const base::CommandLine* command_line, |
53 const base::FilePath& install_directory, | 40 const base::FilePath& install_directory, |
54 bool autoupdate_enabled); | 41 bool autoupdate_enabled); |
55 | 42 |
56 void CreateSocketManager(); | 43 void CreateSocketManager(); |
57 | 44 |
58 void InitForRegularProfile(bool extensions_enabled) override {} | 45 void InitForRegularProfile(bool extensions_enabled) override {} |
59 void SetExtensionService(ExtensionService* service); | 46 void SetExtensionService(ExtensionService* service); |
60 ExtensionService* extension_service() override; | 47 ExtensionService* extension_service() override; |
61 RuntimeData* runtime_data() override; | 48 RuntimeData* runtime_data() override; |
62 ManagementPolicy* management_policy() override; | 49 ManagementPolicy* management_policy() override; |
63 SharedUserScriptMaster* shared_user_script_master() override; | 50 SharedUserScriptMaster* shared_user_script_master() override; |
64 StateStore* state_store() override; | 51 StateStore* state_store() override; |
65 StateStore* rules_store() override; | 52 StateStore* rules_store() override; |
66 TestingValueStore* value_store() { return value_store_; } | 53 TestingValueStore* value_store() { return value_store_; } |
67 InfoMap* info_map() override; | 54 InfoMap* info_map() override; |
68 QuotaService* quota_service() override; | 55 QuotaService* quota_service() override; |
| 56 AppSorting* app_sorting() override; |
69 const OneShotEvent& ready() const override; | 57 const OneShotEvent& ready() const override; |
70 ContentVerifier* content_verifier() override; | 58 ContentVerifier* content_verifier() override; |
71 scoped_ptr<ExtensionSet> GetDependentExtensions( | 59 scoped_ptr<ExtensionSet> GetDependentExtensions( |
72 const Extension* extension) override; | 60 const Extension* extension) override; |
73 | 61 |
74 // Note that you probably want to use base::RunLoop().RunUntilIdle() right | 62 // Note that you probably want to use base::RunLoop().RunUntilIdle() right |
75 // after this to run all the accumulated tasks. | 63 // after this to run all the accumulated tasks. |
76 void SetReady() { ready_.Signal(); } | 64 void SetReady() { ready_.Signal(); } |
77 | 65 |
78 // Factory method for tests to use with SetTestingProfile. | 66 // Factory method for tests to use with SetTestingProfile. |
79 static scoped_ptr<KeyedService> Build(content::BrowserContext* profile); | 67 static scoped_ptr<KeyedService> Build(content::BrowserContext* profile); |
80 | 68 |
| 69 // Used by ExtensionPrefsTest to re-create the AppSorting after it has |
| 70 // re-created the ExtensionPrefs instance (this can never happen in non-test |
| 71 // code). |
| 72 void RecreateAppSorting(); |
| 73 |
81 protected: | 74 protected: |
82 Profile* profile_; | 75 Profile* profile_; |
83 | 76 |
84 private: | 77 private: |
85 scoped_ptr<StateStore> state_store_; | 78 scoped_ptr<StateStore> state_store_; |
86 // A pointer to the TestingValueStore owned by |state_store_|. | 79 // A pointer to the TestingValueStore owned by |state_store_|. |
87 TestingValueStore* value_store_; | 80 TestingValueStore* value_store_; |
88 scoped_ptr<ManagementPolicy> management_policy_; | 81 scoped_ptr<ManagementPolicy> management_policy_; |
89 scoped_ptr<RuntimeData> runtime_data_; | 82 scoped_ptr<RuntimeData> runtime_data_; |
90 scoped_ptr<ExtensionService> extension_service_; | 83 scoped_ptr<ExtensionService> extension_service_; |
91 scoped_refptr<InfoMap> info_map_; | 84 scoped_refptr<InfoMap> info_map_; |
92 scoped_ptr<QuotaService> quota_service_; | 85 scoped_ptr<QuotaService> quota_service_; |
| 86 scoped_ptr<AppSorting> app_sorting_; |
93 OneShotEvent ready_; | 87 OneShotEvent ready_; |
94 }; | 88 }; |
95 | 89 |
96 } // namespace extensions | 90 } // namespace extensions |
97 | 91 |
98 #endif // CHROME_BROWSER_EXTENSIONS_TEST_EXTENSION_SYSTEM_H_ | 92 #endif // CHROME_BROWSER_EXTENSIONS_TEST_EXTENSION_SYSTEM_H_ |
OLD | NEW |