Index: chrome/browser/extensions/extension_service_unittest.cc |
diff --git a/chrome/browser/extensions/extension_service_unittest.cc b/chrome/browser/extensions/extension_service_unittest.cc |
index 78fad9ec0e7f65f84334d8e7cd8eb2e559f09a84..466c43244712d5daf4464aba85147a98a2f9268c 100644 |
--- a/chrome/browser/extensions/extension_service_unittest.cc |
+++ b/chrome/browser/extensions/extension_service_unittest.cc |
@@ -478,6 +478,17 @@ ExtensionServiceTestBase::~ExtensionServiceTestBase() { |
void ExtensionServiceTestBase::InitializeExtensionService( |
const ExtensionServiceTestBase::ExtensionServiceInitParams& params) { |
+ profile_ = CreateTestingProfile(params); |
+ service_ = InitializeExtensionServiceForProfile(params, profile_.get()); |
+ management_policy_ = |
+ ExtensionSystem::Get(profile_.get())->management_policy(); |
+ extensions_install_dir_ = params.extensions_install_dir; |
+ expected_extensions_count_ = 0; |
+} |
+ |
+// static |
+scoped_ptr<TestingProfile> ExtensionServiceTestBase::CreateTestingProfile( |
+ const ExtensionServiceInitParams& params) { |
TestingProfile::Builder profile_builder; |
// Create a PrefService that only contains user defined preference values. |
PrefServiceMockFactory factory; |
@@ -498,10 +509,16 @@ void ExtensionServiceTestBase::InitializeExtensionService( |
profile_builder.SetManagedUserId("asdf"); |
profile_builder.SetPath(params.profile_path); |
- profile_ = profile_builder.Build(); |
+ return profile_builder.Build(); |
+} |
+// static |
+ExtensionService* |
+ExtensionServiceTestBase::InitializeExtensionServiceForProfile( |
+ const ExtensionServiceInitParams& params, |
+ Profile* profile) { |
TestExtensionSystem* system = static_cast<TestExtensionSystem*>( |
- ExtensionSystem::Get(profile_.get())); |
+ ExtensionSystem::Get(profile)); |
if (!params.is_first_run) { |
ExtensionPrefs* prefs = system->CreateExtensionPrefs( |
CommandLine::ForCurrentProcess(), |
@@ -509,34 +526,28 @@ void ExtensionServiceTestBase::InitializeExtensionService( |
prefs->SetAlertSystemFirstRun(); |
} |
- service_ = system->CreateExtensionService( |
+ ExtensionService* service = system->CreateExtensionService( |
CommandLine::ForCurrentProcess(), |
params.extensions_install_dir, |
params.autoupdate_enabled); |
- service_->SetFileTaskRunnerForTesting( |
+ service->SetFileTaskRunnerForTesting( |
base::MessageLoopProxy::current().get()); |
- service_->set_extensions_enabled(true); |
- service_->set_show_extensions_prompts(false); |
- service_->set_install_updates_when_idle_for_test(false); |
- |
- management_policy_ = |
- ExtensionSystem::Get(profile_.get())->management_policy(); |
- |
- extensions_install_dir_ = params.extensions_install_dir; |
+ service->set_extensions_enabled(true); |
+ service->set_show_extensions_prompts(false); |
+ service->set_install_updates_when_idle_for_test(false); |
// When we start up, we want to make sure there is no external provider, |
// since the ExtensionService on Windows will use the Registry as a default |
// provider and if there is something already registered there then it will |
// interfere with the tests. Those tests that need an external provider |
// will register one specifically. |
- service_->ClearProvidersForTesting(); |
+ service->ClearProvidersForTesting(); |
#if defined(OS_CHROMEOS) |
- extensions::InstallLimiter::Get(profile_.get())->DisableForTest(); |
+ extensions::InstallLimiter::Get(profile)->DisableForTest(); |
#endif |
- |
- expected_extensions_count_ = 0; |
+ return service; |
} |
void ExtensionServiceTestBase::InitializeInstalledExtensionService( |
@@ -612,9 +623,16 @@ void ExtensionServiceTestBase::TearDown() { |
ExtensionServiceTestBase::ExtensionServiceInitParams |
ExtensionServiceTestBase::CreateDefaultInitParams() { |
+ return CreateDefaultInitParamsInTempDir(&temp_dir_); |
+} |
+ |
+// static |
+ExtensionServiceTestBase::ExtensionServiceInitParams |
+ExtensionServiceTestBase::CreateDefaultInitParamsInTempDir( |
+ base::ScopedTempDir* temp_dir) { |
ExtensionServiceInitParams params; |
- EXPECT_TRUE(temp_dir_.CreateUniqueTempDir()); |
- base::FilePath path = temp_dir_.path(); |
+ EXPECT_TRUE(temp_dir->CreateUniqueTempDir()); |
+ base::FilePath path = temp_dir->path(); |
path = path.Append(FILE_PATH_LITERAL("TestingExtensionsPath")); |
EXPECT_TRUE(base::DeleteFile(path, true)); |
base::PlatformFileError error = base::PLATFORM_FILE_OK; |