Index: extensions/browser/mock_extension_system.h |
diff --git a/extensions/browser/mock_extension_system.h b/extensions/browser/mock_extension_system.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..29907cbd75c80bfb4bc4a2fed86790b2753f8b07 |
--- /dev/null |
+++ b/extensions/browser/mock_extension_system.h |
@@ -0,0 +1,90 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef EXTENSIONS_BROWSER_MOCK_EXTENSIONS_SYSTEM_H_ |
+#define EXTENSIONS_BROWSER_MOCK_EXTENSIONS_SYSTEM_H_ |
+ |
+#include "components/keyed_service/content/browser_context_dependency_manager.h" |
+#include "extensions/browser/extension_registry_factory.h" |
+#include "extensions/browser/extension_system.h" |
+#include "extensions/browser/extension_system_provider.h" |
+#include "extensions/common/one_shot_event.h" |
+ |
+namespace extensions { |
+ |
+// An empty ExtensionSystem for testing. Tests that need only specific |
+// parts of ExtensionSystem should derive from this class and override |
+// functions as needed. |
+// To use this, use TestExtensionsBrowserClient::set_extension_system_factory |
James Cook
2014/08/12 15:46:27
nit: either blank line above or wrap together
Yoyo Zhou
2014/08/12 22:05:47
Wrapped.
|
+// with the MockExtensionSystemFactory below. |
+class MockExtensionSystem : public ExtensionSystem { |
+ public: |
+ explicit MockExtensionSystem(content::BrowserContext* context); |
+ virtual ~MockExtensionSystem(); |
+ |
+ content::BrowserContext* browser_context() { return browser_context_; } |
+ |
+ // ExtensionSystem overrides: |
+ virtual void InitForRegularProfile(bool extensions_enabled) OVERRIDE; |
+ virtual ExtensionService* extension_service() OVERRIDE; |
+ virtual RuntimeData* runtime_data() OVERRIDE; |
+ virtual ManagementPolicy* management_policy() OVERRIDE; |
+ virtual UserScriptMaster* user_script_master() OVERRIDE; |
+ virtual ProcessManager* process_manager() OVERRIDE; |
+ virtual StateStore* state_store() OVERRIDE; |
+ virtual StateStore* rules_store() OVERRIDE; |
+ virtual InfoMap* info_map() OVERRIDE; |
+ virtual LazyBackgroundTaskQueue* lazy_background_task_queue() OVERRIDE; |
+ virtual EventRouter* event_router() OVERRIDE; |
+ virtual ExtensionWarningService* warning_service() OVERRIDE; |
+ virtual Blacklist* blacklist() OVERRIDE; |
+ virtual ErrorConsole* error_console() OVERRIDE; |
+ virtual InstallVerifier* install_verifier() OVERRIDE; |
+ virtual QuotaService* quota_service() OVERRIDE; |
+ virtual const OneShotEvent& ready() const OVERRIDE; |
James Cook
2014/08/12 15:46:27
Aside, not for this CL: I would like this method t
Yoyo Zhou
2014/08/12 22:05:47
Yeah, I agree.
|
+ virtual ContentVerifier* content_verifier() OVERRIDE; |
+ virtual scoped_ptr<ExtensionSet> GetDependentExtensions( |
+ const Extension* extension) OVERRIDE; |
+ |
+ private: |
+ content::BrowserContext* browser_context_; |
+ OneShotEvent ready_; |
+}; |
James Cook
2014/08/12 15:46:27
DISALLOW_COPY_AND_ASSIGN
Yoyo Zhou
2014/08/12 22:05:47
Done.
|
+ |
+// A factory to create a MockExtensionSystem. Sample use: |
+// |
+// MockExtensionSystemFactory<MockExtensionSystemSubclass> factory; |
+// TestExtensionsBrowserClient::set_extension_system_factory(factory); |
+template <typename T> |
+class MockExtensionSystemFactory : public ExtensionSystemProvider { |
+ public: |
+ MockExtensionSystemFactory() |
+ : ExtensionSystemProvider( |
+ "MockExtensionSystem", |
+ BrowserContextDependencyManager::GetInstance()) { |
+ DependsOn(ExtensionRegistryFactory::GetInstance()); |
+ } |
+ |
+ virtual ~MockExtensionSystemFactory() {} |
+ |
+ // BrowserContextKeyedServiceFactory overrides: |
+ virtual KeyedService* BuildServiceInstanceFor( |
+ content::BrowserContext* context) const OVERRIDE { |
+ return new T(context); |
+ } |
+ |
+ // ExtensionSystemProvider overrides: |
+ virtual ExtensionSystem* GetForBrowserContext( |
+ content::BrowserContext* context) OVERRIDE { |
+ return static_cast<ExtensionSystem*>( |
+ GetServiceForBrowserContext(context, true)); |
+ } |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(MockExtensionSystemFactory); |
+}; |
+ |
+} // namespace extensions |
+ |
+#endif // EXTENSIONS_BROWSER_MOCK_EXTENSIONS_SYSTEM_H_ |