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

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

Issue 10914076: ExtensionService: Delay non-critical IO until after startup has finished. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: All unit tests now pass (hopefuly) Created 8 years 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 847c9870d68dec1a2cfb81dd35ef90507879e606..94ef5510d2de9101349d828e20b2fff41a0c716e 100644
--- a/chrome/browser/extensions/extension_service_unittest.cc
+++ b/chrome/browser/extensions/extension_service_unittest.cc
@@ -1230,7 +1230,9 @@ TEST_F(ExtensionServiceTest, CleanupOnStartup) {
}
service_->Init();
- // Wait for GarbageCollectExtensions task to complete.
+ service_->GarbageCollectExtensions();
+
+ // Wait for GarbageCollectExtensions tasks to complete.
loop_.RunUntilIdle();
file_util::FileEnumerator dirs(extensions_install_dir_, false,
@@ -1268,7 +1270,8 @@ TEST_F(ExtensionServiceTest, GarbageCollectWithPendingUpdates) {
"hpiknbiabeeppbpihjehijgoemciehgk/3")));
service_->GarbageCollectExtensions();
- // Wait for GarbageCollectExtensions task to complete.
+
+ // Wait for GarbageCollectExtensions tasks to complete.
loop_.RunUntilIdle();
// Verify that the pending update for the first extension didn't get
@@ -1302,7 +1305,10 @@ TEST_F(ExtensionServiceTest, UpdateOnStartup) {
"hpiknbiabeeppbpihjehijgoemciehgk/3")));
service_->Init();
- // Wait for GarbageCollectExtensions task to complete.
+
+ service_->GarbageCollectExtensions();
+
+ // Wait for GarbageCollectExtensions tasks to complete.
loop_.RunUntilIdle();
// Verify that the pending update for the first extension got installed.
@@ -3234,6 +3240,7 @@ TEST_F(ExtensionServiceTest, ComponentExtensionWhitelisted) {
EXPECT_TRUE(service_->GetExtensionById(good0, false));
// Poke external providers and make sure the extension is still present.
+ service_->ResetExternalUpdateCheckGuard();
service_->CheckForExternalUpdates();
ASSERT_EQ(1u, service_->extensions()->size());
EXPECT_TRUE(service_->GetExtensionById(good0, false));
@@ -3272,6 +3279,7 @@ TEST_F(ExtensionServiceTest, PolicyInstalledExtensionsWhitelisted) {
// Reloading extensions should find our externally registered extension
// and install it.
+ service_->ResetExternalUpdateCheckGuard();
service_->CheckForExternalUpdates();
loop_.RunUntilIdle();
@@ -3450,6 +3458,7 @@ TEST_F(ExtensionServiceTest, ExternalExtensionAutoAcknowledgement) {
}
// Providers are set up. Let them run.
+ service_->ResetExternalUpdateCheckGuard();
service_->CheckForExternalUpdates();
loop_.RunUntilIdle();
@@ -4059,6 +4068,7 @@ void ExtensionServiceTest::TestExternalProvider(
// Reloading extensions should find our externally registered extension
// and install it.
+ service_->ResetExternalUpdateCheckGuard();
service_->CheckForExternalUpdates();
loop_.RunUntilIdle();
@@ -4086,6 +4096,7 @@ void ExtensionServiceTest::TestExternalProvider(
provider->UpdateOrAddExtension(good_crx, "1.0.0.1", source_path);
loaded_.clear();
+ service_->ResetExternalUpdateCheckGuard();
service_->CheckForExternalUpdates();
loop_.RunUntilIdle();
ASSERT_EQ(0u, GetErrors().size());
@@ -4109,6 +4120,7 @@ void ExtensionServiceTest::TestExternalProvider(
// The extension should also be gone from the install directory.
ASSERT_FALSE(file_util::PathExists(install_path));
loaded_.clear();
+ service_->ResetExternalUpdateCheckGuard();
service_->CheckForExternalUpdates();
loop_.RunUntilIdle();
ASSERT_EQ(0u, loaded_.size());
@@ -4121,6 +4133,7 @@ void ExtensionServiceTest::TestExternalProvider(
SetPrefInteg(good_crx, "state", Extension::ENABLED);
loaded_.clear();
+ service_->ResetExternalUpdateCheckGuard();
service_->CheckForExternalUpdates();
loop_.RunUntilIdle();
ASSERT_EQ(1u, loaded_.size());
@@ -4148,6 +4161,7 @@ void ExtensionServiceTest::TestExternalProvider(
// Now test the case where user uninstalls and then the extension is removed
// from the external provider.
provider->UpdateOrAddExtension(good_crx, "1.0.0.1", source_path);
+ service_->ResetExternalUpdateCheckGuard();
service_->CheckForExternalUpdates();
loop_.RunUntilIdle();
@@ -4256,7 +4270,9 @@ TEST_F(ExtensionServiceTest, ExternalUninstall) {
service_->Init();
ASSERT_EQ(0u, GetErrors().size());
- ASSERT_EQ(0u, loaded_.size());
+
+ service_->CheckForExternalUpdates();
+ service_->GarbageCollectExtensions();
// Verify that it's not the disabled extensions flag causing it not to load.
set_extensions_enabled(true);
@@ -4282,7 +4298,9 @@ TEST_F(ExtensionServiceTest, MultipleExternalUpdateCheck) {
// Start two checks for updates.
provider->set_visit_count(0);
+ service_->ResetExternalUpdateCheckGuard();
service_->CheckForExternalUpdates();
+ service_->ResetExternalUpdateCheckGuard();
service_->CheckForExternalUpdates();
loop_.RunUntilIdle();
@@ -4298,7 +4316,9 @@ TEST_F(ExtensionServiceTest, MultipleExternalUpdateCheck) {
// Two checks for external updates should find the extension, and install it
// once.
provider->set_visit_count(0);
+ service_->ResetExternalUpdateCheckGuard();
service_->CheckForExternalUpdates();
+ service_->ResetExternalUpdateCheckGuard();
service_->CheckForExternalUpdates();
loop_.RunUntilIdle();
EXPECT_EQ(2, provider->visit_count());
@@ -4312,7 +4332,9 @@ TEST_F(ExtensionServiceTest, MultipleExternalUpdateCheck) {
provider->RemoveExtension(good_crx);
provider->set_visit_count(0);
+ service_->ResetExternalUpdateCheckGuard();
service_->CheckForExternalUpdates();
+ service_->ResetExternalUpdateCheckGuard();
service_->CheckForExternalUpdates();
loop_.RunUntilIdle();
@@ -5750,7 +5772,9 @@ TEST_F(ExtensionServiceTest, ExternalInstallGlobalError) {
provider->UpdateOrAddExtension(hosted_app, "1.0.0.0",
data_dir_.AppendASCII("hosted_app.crx"));
+ service_->ResetExternalUpdateCheckGuard();
service_->CheckForExternalUpdates();
+ service_->GarbageCollectExtensions();
loop_.RunUntilIdle();
EXPECT_TRUE(extensions::HasExternalInstallError(service_));
service_->EnableExtension(hosted_app);
@@ -5761,6 +5785,7 @@ TEST_F(ExtensionServiceTest, ExternalInstallGlobalError) {
provider->UpdateOrAddExtension(page_action, "1.0.0.0",
data_dir_.AppendASCII("page_action.crx"));
+ service_->ResetExternalUpdateCheckGuard();
service_->CheckForExternalUpdates();
loop_.RunUntilIdle();
EXPECT_TRUE(extensions::HasExternalInstallError(service_));
@@ -5845,6 +5870,7 @@ TEST_F(ExtensionServiceTest, WipeOutExtension) {
provider_pref->UpdateOrAddExtension(good_crx, "1.0.0.0",
data_dir_.AppendASCII("good.crx"));
+ service_->ResetExternalUpdateCheckGuard();
service_->CheckForExternalUpdates();
loop_.RunUntilIdle();
EXPECT_FALSE(extensions::HasExternalInstallError(service_));

Powered by Google App Engine
This is Rietveld 408576698