Move LazyBackgroundTaskQueueTest into extensions_unittests

Previously it ran as part of Chrome's unit_tests. This requires factoring out
the usage of TestingProfile and swapping in a MockExtensionSystem.

BUG=397164
TEST=extensions_unittests

Review URL: https://codereview.chromium.org/428953003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@287267 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/extensions/browser/extensions_test.cc b/extensions/browser/extensions_test.cc
index 749b700..5b7a8ce 100644
--- a/extensions/browser/extensions_test.cc
+++ b/extensions/browser/extensions_test.cc
@@ -29,19 +29,26 @@
   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());
 }
 
-ExtensionsTest::~ExtensionsTest() {
+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());
-
-  ExtensionsBrowserClient::Set(NULL);
-  content::SetBrowserClientForTesting(NULL);
-  content::SetContentClient(NULL);
 }
 
 }  // namespace extensions