Chromium Code Reviews| Index: chrome/browser/extensions/extension_updater_unittest.cc |
| =================================================================== |
| --- chrome/browser/extensions/extension_updater_unittest.cc (revision 77440) |
| +++ chrome/browser/extensions/extension_updater_unittest.cc (working copy) |
| @@ -315,6 +315,11 @@ |
| } |
| static void TestExtensionUpdateCheckRequests(bool pending) { |
| + MessageLoop message_loop; |
| + BrowserThread file_thread(BrowserThread::FILE, &message_loop); |
| + BrowserThread io_thread(BrowserThread::IO); |
| + io_thread.Start(); |
| + |
| // Create an extension with an update_url. |
| ServiceForManifestTests service; |
| std::string update_url("http://foo.com/bar"); |
| @@ -329,11 +334,7 @@ |
| service.set_extensions(extensions); |
| } |
| - // Setup and start the updater. |
| - MessageLoop message_loop; |
| - BrowserThread io_thread(BrowserThread::IO); |
| - io_thread.Start(); |
| - |
| + // Set up and start the updater. |
| TestURLFetcherFactory factory; |
| URLFetcher::set_factory(&factory); |
| scoped_refptr<ExtensionUpdater> updater( |
| @@ -493,13 +494,15 @@ |
| } |
| static void TestDetermineUpdates() { |
| + MessageLoop message_loop; |
| + BrowserThread file_thread(BrowserThread::FILE, &message_loop); |
| + |
| // Create a set of test extensions |
| ServiceForManifestTests service; |
| ExtensionList tmp; |
| service.CreateTestExtensions(1, 3, &tmp, NULL, Extension::INTERNAL); |
| service.set_extensions(tmp); |
| - MessageLoop message_loop; |
| scoped_refptr<ExtensionUpdater> updater( |
| new ExtensionUpdater(&service, service.pref_service(), |
| kUpdateFrequencySecs)); |
| @@ -575,9 +578,9 @@ |
| TestURLFetcherFactory factory; |
| TestURLFetcher* fetcher = NULL; |
| URLFetcher::set_factory(&factory); |
| - ServiceForDownloadTests service; |
| + scoped_ptr<ServiceForDownloadTests> service(new ServiceForDownloadTests); |
| scoped_refptr<ExtensionUpdater> updater( |
| - new ExtensionUpdater(&service, service.pref_service(), |
| + new ExtensionUpdater(service.get(), service->pref_service(), |
| kUpdateFrequencySecs)); |
| updater->Start(); |
| @@ -627,8 +630,13 @@ |
| file_thread.Stop(); |
| io_thread.Stop(); |
| ui_loop.RunAllPending(); |
| - EXPECT_EQ("12345", service.last_inquired_extension_id()); |
| + EXPECT_EQ("12345", service->last_inquired_extension_id()); |
| xmlCleanupGlobals(); |
| + |
| + // The FILE thread is needed for |service|'s cleanup, |
| + // because of ImportantFileWriter. |
| + file_thread.Start(); |
| + service.reset(); |
| } |
| static void TestSingleExtensionDownloading(bool pending) { |
| @@ -642,9 +650,9 @@ |
| TestURLFetcherFactory factory; |
| TestURLFetcher* fetcher = NULL; |
| URLFetcher::set_factory(&factory); |
| - ServiceForDownloadTests service; |
| + scoped_ptr<ServiceForDownloadTests> service(new ServiceForDownloadTests); |
| scoped_refptr<ExtensionUpdater> updater( |
| - new ExtensionUpdater(&service, service.pref_service(), |
| + new ExtensionUpdater(service.get(), service->pref_service(), |
| kUpdateFrequencySecs)); |
| updater->Start(); |
| @@ -666,7 +674,7 @@ |
| PendingExtensionInfo(test_url, &ShouldAlwaysInstall, kIsFromSync, |
| kInstallSilently, kInitialState, |
| kInitialIncognitoEnabled, Extension::INTERNAL); |
| - service.set_pending_extensions(pending_extensions); |
| + service->set_pending_extensions(pending_extensions); |
| } |
| // Call back the ExtensionUpdater with a 200 response and some test data |
| @@ -683,14 +691,19 @@ |
| // Expect that ExtensionUpdater asked the mock extensions service to install |
| // a file with the test data for the right id. |
| - EXPECT_EQ(id, service.extension_id()); |
| - FilePath tmpfile_path = service.install_path(); |
| + EXPECT_EQ(id, service->extension_id()); |
| + FilePath tmpfile_path = service->install_path(); |
| EXPECT_FALSE(tmpfile_path.empty()); |
| - EXPECT_EQ(test_url, service.download_url()); |
| + EXPECT_EQ(test_url, service->download_url()); |
| std::string file_contents; |
| EXPECT_TRUE(file_util::ReadFileToString(tmpfile_path, &file_contents)); |
| EXPECT_TRUE(extension_data == file_contents); |
| + // The FILE thread is needed for |service|'s cleanup, |
| + // because of ImportantFileWriter. |
| + file_thread.Start(); |
| + service.reset(); |
| + |
| file_util::Delete(tmpfile_path, false); |
| URLFetcher::set_factory(NULL); |
| } |
| @@ -698,6 +711,7 @@ |
| static void TestBlacklistDownloading() { |
| MessageLoop message_loop; |
| BrowserThread ui_thread(BrowserThread::UI, &message_loop); |
| + BrowserThread file_thread(BrowserThread::FILE, &message_loop); |
|
asargent_no_longer_on_chrome
2011/03/09 20:53:17
same message loop to 2 threads?
|
| BrowserThread io_thread(BrowserThread::IO); |
| io_thread.Start(); |
| @@ -820,6 +834,9 @@ |
| static void TestGalleryRequests(int rollcall_ping_days, |
| int active_ping_days, |
| bool active_bit) { |
| + MessageLoop message_loop; |
| + BrowserThread file_thread(BrowserThread::FILE, &message_loop); |
| + |
| TestURLFetcherFactory factory; |
| URLFetcher::set_factory(&factory); |
| @@ -860,7 +877,6 @@ |
| if (active_bit) |
| prefs->SetActiveBit(id, true); |
| - MessageLoop message_loop; |
| scoped_refptr<ExtensionUpdater> updater( |
| new ExtensionUpdater(&service, service.pref_service(), |
| kUpdateFrequencySecs)); |
| @@ -972,6 +988,9 @@ |
| } |
| TEST(ExtensionUpdaterTest, TestUpdateUrlData) { |
| + MessageLoop message_loop; |
| + BrowserThread file_thread(BrowserThread::FILE, &message_loop); |
| + |
| ExtensionUpdaterTest::TestUpdateUrlDataEmpty(); |
| ExtensionUpdaterTest::TestUpdateUrlDataSimple(); |
| ExtensionUpdaterTest::TestUpdateUrlDataCompound(); |
| @@ -1044,6 +1063,9 @@ |
| } |
| TEST(ExtensionUpdaterTest, TestManifestFetchesBuilderAddExtension) { |
| + MessageLoop message_loop; |
| + BrowserThread file_thread(BrowserThread::FILE, &message_loop); |
| + |
| MockService service; |
| ManifestFetchesBuilder builder(&service); |
| @@ -1091,6 +1113,8 @@ |
| TEST(ExtensionUpdaterTest, TestStartUpdateCheckMemory) { |
| MessageLoop message_loop; |
| + BrowserThread file_thread(BrowserThread::FILE, &message_loop); |
| + |
| ServiceForManifestTests service; |
| TestURLFetcherFactory factory; |
| URLFetcher::set_factory(&factory); |
| @@ -1110,6 +1134,8 @@ |
| TEST(ExtensionUpdaterTest, TestAfterStopBehavior) { |
| MessageLoop message_loop; |
| + BrowserThread file_thread(BrowserThread::FILE, &message_loop); |
| + |
| ServiceForManifestTests service; |
| scoped_refptr<ExtensionUpdater> updater( |
| new ExtensionUpdater(&service, service.pref_service(), |