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

Unified Diff: chrome/browser/safe_browsing/browser_feature_extractor_unittest.cc

Issue 42553002: Mostly integrate new malware IP blacklist with the csd client. When (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 2 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
Index: chrome/browser/safe_browsing/browser_feature_extractor_unittest.cc
diff --git a/chrome/browser/safe_browsing/browser_feature_extractor_unittest.cc b/chrome/browser/safe_browsing/browser_feature_extractor_unittest.cc
index 163268dffc1a259e5ec777a58c17a16fb49db463..288bfef0350fb184f09f0b27701097466cf23d44 100644
--- a/chrome/browser/safe_browsing/browser_feature_extractor_unittest.cc
+++ b/chrome/browser/safe_browsing/browser_feature_extractor_unittest.cc
@@ -17,7 +17,7 @@
#include "chrome/browser/history/history_service_factory.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/safe_browsing/browser_features.h"
-#include "chrome/browser/safe_browsing/client_side_detection_service.h"
+#include "chrome/browser/safe_browsing/client_side_detection_host.h"
#include "chrome/browser/safe_browsing/ui_manager.h"
#include "chrome/common/safe_browsing/csd.pb.h"
#include "chrome/test/base/chrome_render_view_host_test_harness.h"
@@ -32,18 +32,22 @@
#include "testing/gtest/include/gtest/gtest.h"
#include "url/gurl.h"
+using content::BrowserThread;
using content::WebContentsTester;
+
+using testing::DoAll;
using testing::Return;
using testing::StrictMock;
namespace safe_browsing {
+
namespace {
-class MockClientSideDetectionService : public ClientSideDetectionService {
+class MockClientSideDetectionHost : public ClientSideDetectionHost {
public:
- MockClientSideDetectionService() : ClientSideDetectionService(NULL) {}
- virtual ~MockClientSideDetectionService() {};
+ MockClientSideDetectionHost() {}
+ virtual ~MockClientSideDetectionHost() {};
- MOCK_CONST_METHOD1(IsBadIpAddress, bool(const std::string&));
+ MOCK_METHOD1(IsBadIpAddress, bool(const std::string&));
};
} // namespace
@@ -53,9 +57,9 @@ class BrowserFeatureExtractorTest : public ChromeRenderViewHostTestHarness {
ChromeRenderViewHostTestHarness::SetUp();
ASSERT_TRUE(profile()->CreateHistoryService(
true /* delete_file */, false /* no_db */));
- service_.reset(new StrictMock<MockClientSideDetectionService>());
+ host_.reset(new StrictMock<MockClientSideDetectionHost>());
extractor_.reset(
- new BrowserFeatureExtractor(web_contents(), service_.get()));
+ new BrowserFeatureExtractor(web_contents(), host_.get()));
num_pending_ = 0;
browse_info_.reset(new BrowseInfo);
}
@@ -138,8 +142,20 @@ class BrowserFeatureExtractorTest : public ChromeRenderViewHostTestHarness {
}
void ExtractMalwareFeatures(ClientMalwareRequest* request) {
+ StartExtractMalwareFeatures(request);
+ base::MessageLoopForUI::current()->Run();
+ EXPECT_EQ(1U, success_.count(request));
+ EXPECT_TRUE(success_[request]);
+ }
+
+ void StartExtractMalwareFeatures(ClientMalwareRequest* request) {
+ success_.erase(request);
+ ++num_pending_;
extractor_->ExtractMalwareFeatures(
- browse_info_.get(), request);
+ *browse_info_,
+ request,
+ base::Bind(&BrowserFeatureExtractorTest::ExtractMalwareFeaturesDone,
+ base::Unretained(this)));
}
void GetMalwareFeatureMap(
@@ -157,11 +173,11 @@ class BrowserFeatureExtractorTest : public ChromeRenderViewHostTestHarness {
}
}
- int num_pending_;
+ int num_pending_; // Number of pending feature extractions.
scoped_ptr<BrowserFeatureExtractor> extractor_;
- std::map<ClientPhishingRequest*, bool> success_;
+ std::map<void*, bool> success_;
scoped_ptr<BrowseInfo> browse_info_;
- scoped_ptr<MockClientSideDetectionService> service_;
+ scoped_ptr<StrictMock<MockClientSideDetectionHost> > host_;
private:
void ExtractFeaturesDone(bool success, ClientPhishingRequest* request) {
@@ -171,6 +187,15 @@ class BrowserFeatureExtractorTest : public ChromeRenderViewHostTestHarness {
base::MessageLoop::current()->Quit();
}
}
+
+ void ExtractMalwareFeaturesDone(bool success, ClientMalwareRequest* request) {
+ EXPECT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::UI));
+ ASSERT_EQ(0U, success_.count(request));
+ success_[request] = success;
+ if (--num_pending_ == 0) {
+ base::MessageLoopForUI::current()->Quit();
+ }
+ }
};
TEST_F(BrowserFeatureExtractorTest, UrlNotInHistory) {
@@ -480,13 +505,6 @@ TEST_F(BrowserFeatureExtractorTest, BrowseFeatures) {
GURL("https://bankofamerica.com"),
content::PAGE_TRANSITION_GENERATED);
- std::set<std::string> urls;
- urls.insert("http://test.com");
- browse_info_->ips.insert(std::make_pair("193.5.163.8", urls));
- browse_info_->ips.insert(std::make_pair("23.94.78.1", urls));
- EXPECT_CALL(*service_, IsBadIpAddress("193.5.163.8")).WillOnce(Return(true));
- EXPECT_CALL(*service_, IsBadIpAddress("23.94.78.1")).WillOnce(Return(false));
-
EXPECT_TRUE(ExtractFeatures(&request));
features.clear();
GetFeatureMap(request, &features);
@@ -507,9 +525,6 @@ TEST_F(BrowserFeatureExtractorTest, BrowseFeatures) {
features::kHostPrefix,
features::kIsFirstNavigation)));
EXPECT_EQ(5.0, features[features::kPageTransitionType]);
- EXPECT_EQ(1.0, features[std::string(features::kBadIpFetch) + "193.5.163.8"]);
- EXPECT_FALSE(features.count(std::string(features::kBadIpFetch) +
- "23.94.78.1"));
}
TEST_F(BrowserFeatureExtractorTest, SafeBrowsingFeatures) {
@@ -552,9 +567,9 @@ TEST_F(BrowserFeatureExtractorTest, MalwareFeatures) {
std::set<std::string> good_urls;
good_urls.insert("http://ok.com");
browse_info_->ips.insert(std::make_pair("23.94.78.1", good_urls));
- EXPECT_CALL(*service_, IsBadIpAddress("193.5.163.8")).WillOnce(Return(true));
- EXPECT_CALL(*service_, IsBadIpAddress("92.92.92.92")).WillOnce(Return(true));
- EXPECT_CALL(*service_, IsBadIpAddress("23.94.78.1")).WillOnce(Return(false));
+ EXPECT_CALL(*host_, IsBadIpAddress("193.5.163.8")).WillOnce(Return(true));
+ EXPECT_CALL(*host_, IsBadIpAddress("92.92.92.92")).WillOnce(Return(true));
+ EXPECT_CALL(*host_, IsBadIpAddress("23.94.78.1")).WillOnce(Return(false));
ExtractMalwareFeatures(&request);
std::map<std::string, std::set<std::string> > features;
@@ -592,9 +607,9 @@ TEST_F(BrowserFeatureExtractorTest, MalwareFeatures_ExceedLimit) {
// First ip is good, then check the next 5 bad ips.
// Not check the 7th as reached limit.
- EXPECT_CALL(*service_, IsBadIpAddress(ips[0])).WillOnce(Return(false));
+ EXPECT_CALL(*host_, IsBadIpAddress(ips[0])).WillOnce(Return(false));
for (int i = 1; i < 6; ++i) {
- EXPECT_CALL(*service_, IsBadIpAddress(ips[i])).WillOnce(Return(true));
+ EXPECT_CALL(*host_, IsBadIpAddress(ips[i])).WillOnce(Return(true));
}
ExtractMalwareFeatures(&request);

Powered by Google App Engine
This is Rietveld 408576698