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); |
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(), |