summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extension_updater_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/extensions/extension_updater_unittest.cc')
-rw-r--r--chrome/browser/extensions/extension_updater_unittest.cc58
1 files changed, 42 insertions, 16 deletions
diff --git a/chrome/browser/extensions/extension_updater_unittest.cc b/chrome/browser/extensions/extension_updater_unittest.cc
index 5a73142..c1be0e4 100644
--- a/chrome/browser/extensions/extension_updater_unittest.cc
+++ b/chrome/browser/extensions/extension_updater_unittest.cc
@@ -315,6 +315,11 @@ class ExtensionUpdaterTest : public testing::Test {
}
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 @@ class ExtensionUpdaterTest : public testing::Test {
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 @@ class ExtensionUpdaterTest : public testing::Test {
}
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 @@ class ExtensionUpdaterTest : public testing::Test {
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 @@ class ExtensionUpdaterTest : public testing::Test {
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 @@ class ExtensionUpdaterTest : public testing::Test {
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 @@ class ExtensionUpdaterTest : public testing::Test {
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 @@ class ExtensionUpdaterTest : public testing::Test {
// 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 @@ class ExtensionUpdaterTest : public testing::Test {
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 @@ class ExtensionUpdaterTest : public testing::Test {
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 @@ class ExtensionUpdaterTest : public testing::Test {
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, TestBlacklistUpdateCheckRequests) {
}
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, TestHandleManifestResults) {
}
TEST(ExtensionUpdaterTest, TestManifestFetchesBuilderAddExtension) {
+ MessageLoop message_loop;
+ BrowserThread file_thread(BrowserThread::FILE, &message_loop);
+
MockService service;
ManifestFetchesBuilder builder(&service);
@@ -1091,6 +1113,8 @@ TEST(ExtensionUpdaterTest, TestManifestFetchesBuilderAddExtension) {
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, TestStartUpdateCheckMemory) {
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(),