Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(736)

Unified Diff: chrome/browser/extensions/extension_service_unittest.cc

Issue 77773002: Ensure the ExtensionSystem is ready before initializing an ExtensionAppModelBuilder (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: System -> Service Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
« no previous file with comments | « chrome/browser/extensions/extension_service_unittest.h ('k') | chrome/browser/ui/app_list/app_list_controller_delegate.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698