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
3 // found in the LICENSE file.
5 #ifndef CHROME_BROWSER_EXTENSIONS_TEST_EXTENSION_SYSTEM_H_
6 #define CHROME_BROWSER_EXTENSIONS_TEST_EXTENSION_SYSTEM_H_
8 #include "base/memory/scoped_vector.h"
9 #include "extensions/browser/extension_system.h"
10 #include "extensions/common/one_shot_event.h"
13 class TestingValueStore
;
25 namespace extensions
{
26 class DeclarativeUserScriptManager
;
29 class SharedUserScriptMaster
;
30 class StandardManagementPolicyProvider
;
32 // Test ExtensionSystem, for use with TestingProfile.
33 class TestExtensionSystem
: public ExtensionSystem
{
35 explicit TestExtensionSystem(Profile
* profile
);
36 ~TestExtensionSystem() override
;
38 // KeyedService implementation.
39 void Shutdown() override
;
41 // Creates an ExtensionPrefs with the testing profile and returns it.
42 // Useful for tests that need to modify prefs before creating the
44 ExtensionPrefs
* CreateExtensionPrefs(const base::CommandLine
* command_line
,
45 const base::FilePath
& install_directory
);
47 // Creates an ExtensionService initialized with the testing profile and
48 // returns it, and creates ExtensionPrefs if it hasn't been created yet.
49 ExtensionService
* CreateExtensionService(
50 const base::CommandLine
* command_line
,
51 const base::FilePath
& install_directory
,
52 bool autoupdate_enabled
);
54 void CreateSocketManager();
56 // Creates a LazyBackgroundTaskQueue. If not invoked, the
57 // LazyBackgroundTaskQueue is NULL.
58 void CreateLazyBackgroundTaskQueue();
60 void InitForRegularProfile(bool extensions_enabled
) override
{}
61 void SetExtensionService(ExtensionService
* service
);
62 ExtensionService
* extension_service() override
;
63 RuntimeData
* runtime_data() override
;
64 ManagementPolicy
* management_policy() override
;
65 SharedUserScriptMaster
* shared_user_script_master() override
;
66 DeclarativeUserScriptManager
* declarative_user_script_manager() override
;
67 StateStore
* state_store() override
;
68 StateStore
* rules_store() override
;
69 TestingValueStore
* value_store() { return value_store_
; }
70 InfoMap
* info_map() override
;
71 LazyBackgroundTaskQueue
* lazy_background_task_queue() override
;
72 void SetEventRouter(scoped_ptr
<EventRouter
> event_router
);
73 EventRouter
* event_router() override
;
74 ErrorConsole
* error_console() override
;
75 InstallVerifier
* install_verifier() override
;
76 QuotaService
* quota_service() override
;
77 const OneShotEvent
& ready() const override
;
78 ContentVerifier
* content_verifier() override
;
79 scoped_ptr
<ExtensionSet
> GetDependentExtensions(
80 const Extension
* extension
) override
;
82 // Note that you probably want to use base::RunLoop().RunUntilIdle() right
83 // after this to run all the accumulated tasks.
84 void SetReady() { ready_
.Signal(); }
86 // Factory method for tests to use with SetTestingProfile.
87 static KeyedService
* Build(content::BrowserContext
* profile
);
93 scoped_ptr
<StateStore
> state_store_
;
94 // A pointer to the TestingValueStore owned by |state_store_|.
95 TestingValueStore
* value_store_
;
96 scoped_ptr
<DeclarativeUserScriptManager
> declarative_user_script_manager_
;
97 scoped_ptr
<ManagementPolicy
> management_policy_
;
98 scoped_ptr
<RuntimeData
> runtime_data_
;
99 scoped_ptr
<ExtensionService
> extension_service_
;
100 scoped_refptr
<InfoMap
> info_map_
;
101 scoped_ptr
<LazyBackgroundTaskQueue
> lazy_background_task_queue_
;
102 scoped_ptr
<EventRouter
> event_router_
;
103 scoped_ptr
<ErrorConsole
> error_console_
;
104 scoped_ptr
<InstallVerifier
> install_verifier_
;
105 scoped_ptr
<QuotaService
> quota_service_
;
109 } // namespace extensions
111 #endif // CHROME_BROWSER_EXTENSIONS_TEST_EXTENSION_SYSTEM_H_