Index: chrome/browser/extensions/extension_updater_unittest.cc |
=================================================================== |
--- chrome/browser/extensions/extension_updater_unittest.cc (revision 77169) |
+++ chrome/browser/extensions/extension_updater_unittest.cc (working copy) |
@@ -312,6 +312,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"); |
@@ -326,11 +331,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( |
@@ -490,13 +491,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)); |
@@ -572,9 +575,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(); |
@@ -623,8 +626,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) { |
@@ -638,9 +646,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(); |
@@ -662,7 +670,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 |
@@ -679,14 +687,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); |
} |
@@ -694,6 +707,7 @@ |
static void TestBlacklistDownloading() { |
MessageLoop message_loop; |
BrowserThread ui_thread(BrowserThread::UI, &message_loop); |
+ BrowserThread file_thread(BrowserThread::FILE, &message_loop); |
BrowserThread io_thread(BrowserThread::IO); |
io_thread.Start(); |
@@ -808,6 +822,9 @@ |
} |
static void TestGalleryRequests(int ping_days) { |
+ MessageLoop message_loop; |
+ BrowserThread file_thread(BrowserThread::FILE, &message_loop); |
+ |
TestURLFetcherFactory factory; |
URLFetcher::set_factory(&factory); |
@@ -834,7 +851,6 @@ |
service.extension_prefs()->SetLastPingDay(tmp[0]->id(), last_ping_day); |
} |
- MessageLoop message_loop; |
scoped_refptr<ExtensionUpdater> updater( |
new ExtensionUpdater(&service, service.pref_service(), |
kUpdateFrequencySecs)); |
@@ -936,6 +952,9 @@ |
} |
TEST(ExtensionUpdaterTest, TestUpdateUrlData) { |
+ MessageLoop message_loop; |
+ BrowserThread file_thread(BrowserThread::FILE, &message_loop); |
+ |
ExtensionUpdaterTest::TestUpdateUrlDataEmpty(); |
ExtensionUpdaterTest::TestUpdateUrlDataSimple(); |
ExtensionUpdaterTest::TestUpdateUrlDataCompound(); |
@@ -986,6 +1005,9 @@ |
} |
TEST(ExtensionUpdaterTest, TestManifestFetchesBuilderAddExtension) { |
+ MessageLoop message_loop; |
+ BrowserThread file_thread(BrowserThread::FILE, &message_loop); |
+ |
MockService service; |
ManifestFetchesBuilder builder(&service); |
@@ -1033,6 +1055,8 @@ |
TEST(ExtensionUpdaterTest, TestStartUpdateCheckMemory) { |
MessageLoop message_loop; |
+ BrowserThread file_thread(BrowserThread::FILE, &message_loop); |
+ |
ServiceForManifestTests service; |
TestURLFetcherFactory factory; |
URLFetcher::set_factory(&factory); |
@@ -1052,6 +1076,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(), |