| // 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. |
| |
| #include "extensions/browser/extensions_test.h" |
| |
| #include "components/keyed_service/content/browser_context_dependency_manager.h" |
| #include "content/public/browser/content_browser_client.h" |
| #include "content/public/common/content_client.h" |
| #include "content/public/test/test_browser_context.h" |
| #include "extensions/browser/test_extensions_browser_client.h" |
| |
| namespace extensions { |
| |
| // This class does work in the constructor instead of SetUp() to give subclasses |
| // a valid BrowserContext to use while initializing their members. For example: |
| // |
| // class MyExtensionsTest : public ExtensionsTest { |
| // MyExtensionsTest() |
| // : my_object_(browser_context())) { |
| // } |
| // }; |
| ExtensionsTest::ExtensionsTest() |
| : content_client_(new content::ContentClient), |
| content_browser_client_(new content::ContentBrowserClient), |
| browser_context_(new content::TestBrowserContext), |
| extensions_browser_client_( |
| new TestExtensionsBrowserClient(browser_context_.get())) { |
| content::SetContentClient(content_client_.get()); |
| content::SetBrowserClientForTesting(content_browser_client_.get()); |
| ExtensionsBrowserClient::Set(extensions_browser_client_.get()); |
| } |
| |
| ExtensionsTest::~ExtensionsTest() { |
| ExtensionsBrowserClient::Set(NULL); |
| content::SetBrowserClientForTesting(NULL); |
| content::SetContentClient(NULL); |
| } |
| |
| void ExtensionsTest::SetUp() { |
| // Crashing here? Don't use this class in Chrome's unit_tests. See header. |
| BrowserContextDependencyManager::GetInstance() |
| ->CreateBrowserContextServicesForTest(browser_context_.get()); |
| } |
| |
| void ExtensionsTest::TearDown() { |
| // Allows individual tests to have BrowserContextKeyedServiceFactory objects |
| // as member variables instead of singletons. The individual services will be |
| // cleaned up before the factories are destroyed. |
| BrowserContextDependencyManager::GetInstance()->DestroyBrowserContextServices( |
| browser_context_.get()); |
| } |
| |
| } // namespace extensions |