OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/safe_browsing/browser_feature_extractor.h" | 5 #include "chrome/browser/safe_browsing/browser_feature_extractor.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 581 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
592 "http://www.good.com/"))); | 592 "http://www.good.com/"))); |
593 EXPECT_DOUBLE_EQ(1.0, features[features::kSafeBrowsingIsSubresource]); | 593 EXPECT_DOUBLE_EQ(1.0, features[features::kSafeBrowsingIsSubresource]); |
594 EXPECT_DOUBLE_EQ(2.0, features[features::kSafeBrowsingThreatType]); | 594 EXPECT_DOUBLE_EQ(2.0, features[features::kSafeBrowsingThreatType]); |
595 } | 595 } |
596 | 596 |
597 TEST_F(BrowserFeatureExtractorTest, MalwareFeatures) { | 597 TEST_F(BrowserFeatureExtractorTest, MalwareFeatures) { |
598 ClientMalwareRequest request; | 598 ClientMalwareRequest request; |
599 request.set_url("http://www.foo.com/"); | 599 request.set_url("http://www.foo.com/"); |
600 | 600 |
601 std::vector<IPUrlInfo> bad_urls; | 601 std::vector<IPUrlInfo> bad_urls; |
602 bad_urls.push_back(IPUrlInfo("http://bad.com", "GET", "", | 602 bad_urls.push_back( |
603 ResourceType::SCRIPT)); | 603 IPUrlInfo("http://bad.com", "GET", "", content::RESOURCE_TYPE_SCRIPT)); |
604 bad_urls.push_back(IPUrlInfo("http://evil.com", "GET", "", | 604 bad_urls.push_back( |
605 ResourceType::SCRIPT)); | 605 IPUrlInfo("http://evil.com", "GET", "", content::RESOURCE_TYPE_SCRIPT)); |
606 browse_info_->ips.insert(std::make_pair("193.5.163.8", bad_urls)); | 606 browse_info_->ips.insert(std::make_pair("193.5.163.8", bad_urls)); |
607 browse_info_->ips.insert(std::make_pair("92.92.92.92", bad_urls)); | 607 browse_info_->ips.insert(std::make_pair("92.92.92.92", bad_urls)); |
608 std::vector<IPUrlInfo> good_urls; | 608 std::vector<IPUrlInfo> good_urls; |
609 good_urls.push_back(IPUrlInfo("http://ok.com", "GET", "", | 609 good_urls.push_back( |
610 ResourceType::SCRIPT)); | 610 IPUrlInfo("http://ok.com", "GET", "", content::RESOURCE_TYPE_SCRIPT)); |
611 browse_info_->ips.insert(std::make_pair("23.94.78.1", good_urls)); | 611 browse_info_->ips.insert(std::make_pair("23.94.78.1", good_urls)); |
612 EXPECT_CALL(*db_manager_, MatchMalwareIP("193.5.163.8")) | 612 EXPECT_CALL(*db_manager_, MatchMalwareIP("193.5.163.8")) |
613 .WillOnce(Return(true)); | 613 .WillOnce(Return(true)); |
614 EXPECT_CALL(*db_manager_, MatchMalwareIP("92.92.92.92")) | 614 EXPECT_CALL(*db_manager_, MatchMalwareIP("92.92.92.92")) |
615 .WillOnce(Return(true)); | 615 .WillOnce(Return(true)); |
616 EXPECT_CALL(*db_manager_, MatchMalwareIP("23.94.78.1")) | 616 EXPECT_CALL(*db_manager_, MatchMalwareIP("23.94.78.1")) |
617 .WillOnce(Return(false)); | 617 .WillOnce(Return(false)); |
618 | 618 |
619 ExtractMalwareFeatures(&request); | 619 ExtractMalwareFeatures(&request); |
620 EXPECT_EQ(4, request.bad_ip_url_info_size()); | 620 EXPECT_EQ(4, request.bad_ip_url_info_size()); |
(...skipping 11 matching lines...) Expand all Loading... |
632 EXPECT_EQ(2U, urls.size()); | 632 EXPECT_EQ(2U, urls.size()); |
633 EXPECT_TRUE(urls.find("http://bad.com") != urls.end()); | 633 EXPECT_TRUE(urls.find("http://bad.com") != urls.end()); |
634 EXPECT_TRUE(urls.find("http://evil.com") != urls.end()); | 634 EXPECT_TRUE(urls.find("http://evil.com") != urls.end()); |
635 } | 635 } |
636 | 636 |
637 TEST_F(BrowserFeatureExtractorTest, MalwareFeatures_ExceedLimit) { | 637 TEST_F(BrowserFeatureExtractorTest, MalwareFeatures_ExceedLimit) { |
638 ClientMalwareRequest request; | 638 ClientMalwareRequest request; |
639 request.set_url("http://www.foo.com/"); | 639 request.set_url("http://www.foo.com/"); |
640 | 640 |
641 std::vector<IPUrlInfo> bad_urls; | 641 std::vector<IPUrlInfo> bad_urls; |
642 bad_urls.push_back(IPUrlInfo("http://bad.com", "GET", "", | 642 bad_urls.push_back( |
643 ResourceType::SCRIPT)); | 643 IPUrlInfo("http://bad.com", "GET", "", content::RESOURCE_TYPE_SCRIPT)); |
644 std::vector<std::string> ips; | 644 std::vector<std::string> ips; |
645 for (int i = 0; i < 7; ++i) { // Add 7 ips | 645 for (int i = 0; i < 7; ++i) { // Add 7 ips |
646 std::string ip = base::StringPrintf("%d.%d.%d.%d", i, i, i, i); | 646 std::string ip = base::StringPrintf("%d.%d.%d.%d", i, i, i, i); |
647 ips.push_back(ip); | 647 ips.push_back(ip); |
648 browse_info_->ips.insert(std::make_pair(ip, bad_urls)); | 648 browse_info_->ips.insert(std::make_pair(ip, bad_urls)); |
649 | 649 |
650 // First ip is good but all the others are bad. | 650 // First ip is good but all the others are bad. |
651 EXPECT_CALL(*db_manager_, MatchMalwareIP(ip)).WillOnce(Return(i > 0)); | 651 EXPECT_CALL(*db_manager_, MatchMalwareIP(ip)).WillOnce(Return(i > 0)); |
652 } | 652 } |
653 | 653 |
654 ExtractMalwareFeatures(&request); | 654 ExtractMalwareFeatures(&request); |
655 // The number of IP matched url we store is capped at 5 IPs per request. | 655 // The number of IP matched url we store is capped at 5 IPs per request. |
656 EXPECT_EQ(5, request.bad_ip_url_info_size()); | 656 EXPECT_EQ(5, request.bad_ip_url_info_size()); |
657 } | 657 } |
658 | 658 |
659 } // namespace safe_browsing | 659 } // namespace safe_browsing |
OLD | NEW |