Index: chrome/browser/safe_browsing/client_side_detection_host_unittest.cc |
diff --git a/chrome/browser/safe_browsing/client_side_detection_host_unittest.cc b/chrome/browser/safe_browsing/client_side_detection_host_unittest.cc |
index 5a19583a85c819772bfe40d8be1bcf7f03d53807..e159c5742e7528268e97b170e472ed5a7562d2ca 100644 |
--- a/chrome/browser/safe_browsing/client_side_detection_host_unittest.cc |
+++ b/chrome/browser/safe_browsing/client_side_detection_host_unittest.cc |
@@ -49,6 +49,11 @@ MATCHER_P(EqualsProto, other, "") { |
return other.SerializeAsString() == arg.SerializeAsString(); |
} |
+ACTION(QuitUIMessageLoop) { |
+ EXPECT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ MessageLoopForUI::current()->Quit(); |
+} |
+ |
class MockClientSideDetectionService : public ClientSideDetectionService { |
public: |
explicit MockClientSideDetectionService(const FilePath& model_path) |
@@ -98,13 +103,16 @@ class MockTestingProfile : public TestingProfile { |
}; |
// Helper function which quits the UI message loop from the IO message loop. |
-void QuitUIMessageLoop() { |
+void QuitUIMessageLoopFromIO() { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
BrowserThread::PostTask(BrowserThread::UI, |
FROM_HERE, |
new MessageLoop::QuitTask()); |
} |
+ |
Paweł Hajdan Jr.
2011/06/09 09:13:10
nit: Why so many empty lines?
noelutz
2011/06/09 19:21:39
Removed.
|
+ |
+ |
class ClientSideDetectionHostTest : public TabContentsWrapperTestHarness { |
public: |
virtual void SetUp() { |
@@ -150,7 +158,7 @@ class ClientSideDetectionHostTest : public TabContentsWrapperTestHarness { |
// we put the quit message there. |
BrowserThread::PostTask(BrowserThread::IO, |
FROM_HERE, |
- NewRunnableFunction(&QuitUIMessageLoop)); |
+ NewRunnableFunction(&QuitUIMessageLoopFromIO)); |
MessageLoop::current()->Run(); |
} |
@@ -227,8 +235,9 @@ TEST_F(ClientSideDetectionHostTest, OnDetectedPhishingSiteNotPhishing) { |
EXPECT_CALL(*csd_service_, |
SendClientReportPhishingRequest(Pointee(EqualsProto(verdict)), _)) |
- .WillOnce(DoAll(DeleteArg<0>(), SaveArg<1>(&cb))); |
+ .WillOnce(DoAll(DeleteArg<0>(), SaveArg<1>(&cb), QuitUIMessageLoop())); |
OnDetectedPhishingSite(verdict.SerializeAsString()); |
+ MessageLoop::current()->Run(); |
EXPECT_TRUE(Mock::VerifyAndClear(csd_service_.get())); |
ASSERT_TRUE(cb); |
@@ -251,8 +260,9 @@ TEST_F(ClientSideDetectionHostTest, OnDetectedPhishingSiteDisabled) { |
EXPECT_CALL(*csd_service_, |
SendClientReportPhishingRequest(Pointee(EqualsProto(verdict)), _)) |
- .WillOnce(DoAll(DeleteArg<0>(), SaveArg<1>(&cb))); |
+ .WillOnce(DoAll(DeleteArg<0>(), SaveArg<1>(&cb), QuitUIMessageLoop())); |
OnDetectedPhishingSite(verdict.SerializeAsString()); |
+ MessageLoop::current()->Run(); |
EXPECT_TRUE(Mock::VerifyAndClear(csd_service_.get())); |
ASSERT_TRUE(cb); |
@@ -276,8 +286,9 @@ TEST_F(ClientSideDetectionHostTest, OnDetectedPhishingSiteShowInterstitial) { |
EXPECT_CALL(*csd_service_, |
SendClientReportPhishingRequest(Pointee(EqualsProto(verdict)), _)) |
- .WillOnce(DoAll(DeleteArg<0>(), SaveArg<1>(&cb))); |
+ .WillOnce(DoAll(DeleteArg<0>(), SaveArg<1>(&cb), QuitUIMessageLoop())); |
OnDetectedPhishingSite(verdict.SerializeAsString()); |
+ MessageLoop::current()->Run(); |
EXPECT_TRUE(Mock::VerifyAndClear(csd_service_.get())); |
ASSERT_TRUE(cb); |
@@ -328,8 +339,9 @@ TEST_F(ClientSideDetectionHostTest, OnDetectedPhishingSiteMultiplePings) { |
EXPECT_CALL(*csd_service_, |
SendClientReportPhishingRequest(Pointee(EqualsProto(verdict)), _)) |
- .WillOnce(DoAll(DeleteArg<0>(), SaveArg<1>(&cb))); |
+ .WillOnce(DoAll(DeleteArg<0>(), SaveArg<1>(&cb), QuitUIMessageLoop())); |
OnDetectedPhishingSite(verdict.SerializeAsString()); |
+ MessageLoop::current()->Run(); |
EXPECT_TRUE(Mock::VerifyAndClear(csd_service_.get())); |
ASSERT_TRUE(cb); |
GURL other_phishing_url("http://other_phishing_url.com/bla"); |
@@ -345,8 +357,11 @@ TEST_F(ClientSideDetectionHostTest, OnDetectedPhishingSiteMultiplePings) { |
verdict.set_client_score(0.8f); |
EXPECT_CALL(*csd_service_, |
SendClientReportPhishingRequest(Pointee(EqualsProto(verdict)), _)) |
- .WillOnce(DoAll(DeleteArg<0>(), SaveArg<1>(&cb_other))); |
+ .WillOnce(DoAll(DeleteArg<0>(), |
+ SaveArg<1>(&cb_other), |
+ QuitUIMessageLoop())); |
OnDetectedPhishingSite(verdict.SerializeAsString()); |
+ MessageLoop::current()->Run(); |
EXPECT_TRUE(Mock::VerifyAndClear(csd_service_.get())); |
ASSERT_TRUE(cb_other); |