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

Unified Diff: chrome/browser/extensions/updater/extension_updater_unittest.cc

Issue 19085002: Get rid of ResourceDispatcherHost check in safe_manifest_parser.cc. Single process mode is now hand… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years, 5 months 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
« no previous file with comments | « no previous file | chrome/browser/extensions/updater/safe_manifest_parser.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/updater/extension_updater_unittest.cc
===================================================================
--- chrome/browser/extensions/updater/extension_updater_unittest.cc (revision 211250)
+++ chrome/browser/extensions/updater/extension_updater_unittest.cc (working copy)
@@ -50,7 +50,9 @@
#include "content/public/browser/notification_registrar.h"
#include "content/public/browser/notification_service.h"
#include "content/public/browser/notification_source.h"
-#include "content/public/test/test_browser_thread.h"
+#include "content/public/browser/render_process_host.h"
+#include "content/public/test/test_browser_thread_bundle.h"
+#include "content/public/test/test_utils.h"
#include "extensions/common/id_util.h"
#include "libxml/globals.h"
#include "net/base/backoff_entry.h"
@@ -71,6 +73,7 @@
using base::TimeDelta;
using content::BrowserThread;
using testing::DoAll;
+using testing::InvokeWithoutArgs;
using testing::Mock;
using testing::Return;
using testing::SetArgPointee;
@@ -142,6 +145,21 @@
MOCK_METHOD1(IsExtensionPending, bool(const std::string&));
MOCK_METHOD2(GetExtensionExistingVersion,
bool(const std::string&, std::string*));
+
+ void Wait() {
+ scoped_refptr<content::MessageLoopRunner> runner =
+ new content::MessageLoopRunner;
+ quit_closure_ = runner->QuitClosure();
+ runner->Run();
+ quit_closure_.Reset();
+ }
+
+ void Quit() {
+ quit_closure_.Run();
+ }
+
+ private:
+ base::Closure quit_closure_;
};
const int kNotificationsObserved[] = {
@@ -177,10 +195,20 @@
return updated_.find(id) != updated_.end();
}
+ void Wait() {
+ scoped_refptr<content::MessageLoopRunner> runner =
+ new content::MessageLoopRunner;
+ quit_closure_ = runner->QuitClosure();
+ runner->Run();
+ quit_closure_.Reset();
+ }
+
private:
virtual void Observe(int type,
const content::NotificationSource& source,
const content::NotificationDetails& details) OVERRIDE {
+ if (!quit_closure_.is_null())
+ quit_closure_.Run();
for (size_t i = 0; i < arraysize(kNotificationsObserved); ++i) {
if (kNotificationsObserved[i] == type) {
count_[i]++;
@@ -197,6 +225,7 @@
content::NotificationRegistrar registrar_;
size_t count_[arraysize(kNotificationsObserved)];
std::set<std::string> updated_;
+ base::Closure quit_closure_;
DISALLOW_COPY_AND_ASSIGN(NotificationsObserver);
};
@@ -469,16 +498,16 @@
class ExtensionUpdaterTest : public testing::Test {
public:
ExtensionUpdaterTest()
- : ui_thread_(BrowserThread::UI, &loop_),
- file_thread_(BrowserThread::FILE, &loop_),
- io_thread_(BrowserThread::IO, &loop_) {
+ : test_browser_thread_bundle_(
+ content::TestBrowserThreadBundle::IO_MAINLOOP) {
}
virtual ~ExtensionUpdaterTest() {
}
virtual void SetUp() OVERRIDE {
- prefs_.reset(new TestExtensionPrefs(loop_.message_loop_proxy().get()));
+ prefs_.reset(new TestExtensionPrefs(base::MessageLoopProxy::current()));
+ content::RenderProcessHost::SetRunRendererInProcess(true);
}
virtual void TearDown() OVERRIDE {
@@ -487,11 +516,12 @@
// those objects are released.
RunUntilIdle();
prefs_.reset();
+ content::RenderProcessHost::SetRunRendererInProcess(false);
}
void RunUntilIdle() {
prefs_->pref_service()->CommitPendingWrite();
- loop_.RunUntilIdle();
+ base::RunLoop().RunUntilIdle();
}
void SimulateTimerFired(ExtensionUpdater* updater) {
@@ -852,13 +882,15 @@
EXPECT_TRUE(fetcher != NULL && fetcher->delegate() != NULL);
EXPECT_TRUE(fetcher->GetLoadFlags() == kExpectedLoadFlags);
EXPECT_CALL(delegate, OnExtensionDownloadFailed(
- "2222", ExtensionDownloaderDelegate::MANIFEST_INVALID, _, _));
+ "2222", ExtensionDownloaderDelegate::MANIFEST_INVALID, _, _))
+ .WillOnce(InvokeWithoutArgs(&delegate,
+ &MockExtensionDownloaderDelegate::Quit));
fetcher->set_url(kUpdateUrl);
fetcher->set_status(net::URLRequestStatus());
fetcher->set_response_code(200);
fetcher->SetResponseString(kInvalidXml);
fetcher->delegate()->OnURLFetchComplete(fetcher);
- RunUntilIdle();
+ delegate.Wait();
Mock::VerifyAndClearExpectations(&delegate);
// The third fetcher doesn't have an update available.
@@ -879,13 +911,15 @@
.WillOnce(DoAll(SetArgPointee<1>("3.0.0.0"),
Return(true)));
EXPECT_CALL(delegate, OnExtensionDownloadFailed(
- "3333", ExtensionDownloaderDelegate::NO_UPDATE_AVAILABLE, _, _));
+ "3333", ExtensionDownloaderDelegate::NO_UPDATE_AVAILABLE, _, _))
+ .WillOnce(InvokeWithoutArgs(&delegate,
+ &MockExtensionDownloaderDelegate::Quit));
fetcher->set_url(kUpdateUrl);
fetcher->set_status(net::URLRequestStatus());
fetcher->set_response_code(200);
fetcher->SetResponseString(kNoUpdate);
fetcher->delegate()->OnURLFetchComplete(fetcher);
- RunUntilIdle();
+ delegate.Wait();
Mock::VerifyAndClearExpectations(&delegate);
// The last fetcher has an update.
@@ -910,7 +944,7 @@
fetcher->set_response_code(200);
fetcher->SetResponseString(kUpdateAvailable);
fetcher->delegate()->OnURLFetchComplete(fetcher);
- RunUntilIdle();
+ observer.Wait();
Mock::VerifyAndClearExpectations(&delegate);
// Verify that the downloader decided to update this extension.
@@ -1308,7 +1342,7 @@
// Set up 2 mock extensions, one with a google.com update url and one
// without.
- prefs_.reset(new TestExtensionPrefs(loop_.message_loop_proxy().get()));
+ prefs_.reset(new TestExtensionPrefs(base::MessageLoopProxy::current()));
ServiceForManifestTests service(prefs_.get());
ExtensionList tmp;
GURL url1("http://clients2.google.com/service/update2/crx");
@@ -1468,10 +1502,7 @@
scoped_ptr<TestExtensionPrefs> prefs_;
private:
- base::MessageLoop loop_;
- content::TestBrowserThread ui_thread_;
- content::TestBrowserThread file_thread_;
- content::TestBrowserThread io_thread_;
+ content::TestBrowserThreadBundle test_browser_thread_bundle_;
#if defined OS_CHROMEOS
chromeos::ScopedTestDeviceSettingsService test_device_settings_service_;
« no previous file with comments | « no previous file | chrome/browser/extensions/updater/safe_manifest_parser.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698