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

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

Issue 21170004: Store and return urls instead of hosts for the malware IP matching. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: some nit fix on int type 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
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 c54c71cdc65c8580f3aa81ea93dcb49b5dc1e1e9..163268dffc1a259e5ec777a58c17a16fb49db463 100644
--- a/chrome/browser/safe_browsing/browser_feature_extractor_unittest.cc
+++ b/chrome/browser/safe_browsing/browser_feature_extractor_unittest.cc
@@ -480,10 +480,10 @@ TEST_F(BrowserFeatureExtractorTest, BrowseFeatures) {
GURL("https://bankofamerica.com"),
content::PAGE_TRANSITION_GENERATED);
- std::set<std::string> hosts;
- hosts.insert("test.com");
- browse_info_->ips.insert(std::make_pair("193.5.163.8", hosts));
- browse_info_->ips.insert(std::make_pair("23.94.78.1", hosts));
+ 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));
@@ -544,14 +544,14 @@ TEST_F(BrowserFeatureExtractorTest, MalwareFeatures) {
ClientMalwareRequest request;
request.set_url("http://www.foo.com/");
- std::set<std::string> bad_hosts;
- bad_hosts.insert("bad.com");
- bad_hosts.insert("evil.com");
- browse_info_->ips.insert(std::make_pair("193.5.163.8", bad_hosts));
- browse_info_->ips.insert(std::make_pair("92.92.92.92", bad_hosts));
- std::set<std::string> good_hosts;
- good_hosts.insert("ok.com");
- browse_info_->ips.insert(std::make_pair("23.94.78.1", good_hosts));
+ std::set<std::string> bad_urls;
+ bad_urls.insert("http://bad.com");
+ bad_urls.insert("http://evil.com");
+ browse_info_->ips.insert(std::make_pair("193.5.163.8", bad_urls));
+ browse_info_->ips.insert(std::make_pair("92.92.92.92", bad_urls));
+ 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));
@@ -564,16 +564,45 @@ TEST_F(BrowserFeatureExtractorTest, MalwareFeatures) {
std::string feature_name = base::StringPrintf("%s%s", features::kBadIpFetch,
"193.5.163.8");
EXPECT_TRUE(features.count(feature_name));
- std::set<std::string> hosts = features[feature_name];
- EXPECT_EQ(2U, hosts.size());
- EXPECT_TRUE(hosts.find("bad.com") != hosts.end());
- EXPECT_TRUE(hosts.find("evil.com") != hosts.end());
+ std::set<std::string> urls = features[feature_name];
+ EXPECT_EQ(2U, urls.size());
+ EXPECT_TRUE(urls.find("http://bad.com") != urls.end());
+ EXPECT_TRUE(urls.find("http://evil.com") != urls.end());
feature_name = base::StringPrintf("%s%s", features::kBadIpFetch,
"92.92.92.92");
EXPECT_TRUE(features.count(feature_name));
- hosts = features[feature_name];
- EXPECT_EQ(2U, hosts.size());
- EXPECT_TRUE(hosts.find("bad.com") != hosts.end());
- EXPECT_TRUE(hosts.find("evil.com") != hosts.end());
+ urls = features[feature_name];
+ EXPECT_EQ(2U, urls.size());
+ EXPECT_TRUE(urls.find("http://bad.com") != urls.end());
+ EXPECT_TRUE(urls.find("http://evil.com") != urls.end());
}
+
+TEST_F(BrowserFeatureExtractorTest, MalwareFeatures_ExceedLimit) {
+ ClientMalwareRequest request;
+ request.set_url("http://www.foo.com/");
+
+ std::set<std::string> bad_urls;
+ bad_urls.insert("http://bad.com");
+ std::vector<std::string> ips;
+ for (int i = 0; i < 7; ++i) { // Add 7 ips
+ std::string ip = base::StringPrintf("%d.%d.%d.%d", i, i, i, i);
+ ips.push_back(ip);
+ browse_info_->ips.insert(std::make_pair(ip, bad_urls));
+ }
+
+ // 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));
+ for (int i = 1; i < 6; ++i) {
+ EXPECT_CALL(*service_, IsBadIpAddress(ips[i])).WillOnce(Return(true));
+ }
+
+ ExtractMalwareFeatures(&request);
+ std::map<std::string, std::set<std::string> > features;
+ GetMalwareFeatureMap(request, &features);
+
+ // Only keep 5 ips.
+ EXPECT_EQ(5U, features.size());
+}
+
} // namespace safe_browsing
« no previous file with comments | « chrome/browser/safe_browsing/browser_feature_extractor.cc ('k') | chrome/browser/safe_browsing/client_side_detection_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698