| 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 "base/files/file_path.h" | 5 #include "base/files/file_path.h" |
| 6 #include "base/memory/ref_counted.h" | 6 #include "base/memory/ref_counted.h" |
| 7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
| 8 #include "base/run_loop.h" | 8 #include "base/run_loop.h" |
| 9 #include "base/strings/stringprintf.h" | 9 #include "base/strings/stringprintf.h" |
| 10 #include "base/synchronization/waitable_event.h" | 10 #include "base/synchronization/waitable_event.h" |
| (...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 243 | 243 |
| 244 void OnPhishingDetectionDone(const std::string& verdict_str) { | 244 void OnPhishingDetectionDone(const std::string& verdict_str) { |
| 245 csd_host_->OnPhishingDetectionDone(verdict_str); | 245 csd_host_->OnPhishingDetectionDone(verdict_str); |
| 246 } | 246 } |
| 247 | 247 |
| 248 void DidStopLoading() { | 248 void DidStopLoading() { |
| 249 csd_host_->DidStopLoading(pending_rvh()); | 249 csd_host_->DidStopLoading(pending_rvh()); |
| 250 } | 250 } |
| 251 | 251 |
| 252 void UpdateIPUrlMap(const std::string& ip, const std::string& host) { | 252 void UpdateIPUrlMap(const std::string& ip, const std::string& host) { |
| 253 csd_host_->UpdateIPUrlMap(ip, host, "", "", ResourceType::OBJECT); | 253 csd_host_->UpdateIPUrlMap(ip, host, "", "", content::RESOURCE_TYPE_OBJECT); |
| 254 } | 254 } |
| 255 | 255 |
| 256 BrowseInfo* GetBrowseInfo() { | 256 BrowseInfo* GetBrowseInfo() { |
| 257 return csd_host_->browse_info_.get(); | 257 return csd_host_->browse_info_.get(); |
| 258 } | 258 } |
| 259 | 259 |
| 260 void ExpectPreClassificationChecks(const GURL& url, | 260 void ExpectPreClassificationChecks(const GURL& url, |
| 261 const bool* is_private, | 261 const bool* is_private, |
| 262 const bool* is_incognito, | 262 const bool* is_incognito, |
| 263 const bool* match_csd_whitelist, | 263 const bool* match_csd_whitelist, |
| (...skipping 565 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 829 UpdateIPUrlMap("250.10.10.10", std::string()); | 829 UpdateIPUrlMap("250.10.10.10", std::string()); |
| 830 ASSERT_EQ(0U, browse_info->ips.size()); | 830 ASSERT_EQ(0U, browse_info->ips.size()); |
| 831 UpdateIPUrlMap(std::string(), "http://google.com/a"); | 831 UpdateIPUrlMap(std::string(), "http://google.com/a"); |
| 832 ASSERT_EQ(0U, browse_info->ips.size()); | 832 ASSERT_EQ(0U, browse_info->ips.size()); |
| 833 UpdateIPUrlMap(std::string(), std::string()); | 833 UpdateIPUrlMap(std::string(), std::string()); |
| 834 ASSERT_EQ(0U, browse_info->ips.size()); | 834 ASSERT_EQ(0U, browse_info->ips.size()); |
| 835 | 835 |
| 836 std::vector<IPUrlInfo> expected_urls; | 836 std::vector<IPUrlInfo> expected_urls; |
| 837 for (int i = 0; i < 20; i++) { | 837 for (int i = 0; i < 20; i++) { |
| 838 std::string url = base::StringPrintf("http://%d.com/", i); | 838 std::string url = base::StringPrintf("http://%d.com/", i); |
| 839 expected_urls.push_back(IPUrlInfo(url, "", "", ResourceType::OBJECT)); | 839 expected_urls.push_back( |
| 840 IPUrlInfo(url, "", "", content::RESOURCE_TYPE_OBJECT)); |
| 840 UpdateIPUrlMap("250.10.10.10", url); | 841 UpdateIPUrlMap("250.10.10.10", url); |
| 841 } | 842 } |
| 842 ASSERT_EQ(1U, browse_info->ips.size()); | 843 ASSERT_EQ(1U, browse_info->ips.size()); |
| 843 ASSERT_EQ(20U, browse_info->ips["250.10.10.10"].size()); | 844 ASSERT_EQ(20U, browse_info->ips["250.10.10.10"].size()); |
| 844 CheckIPUrlEqual(expected_urls, | 845 CheckIPUrlEqual(expected_urls, |
| 845 browse_info->ips["250.10.10.10"]); | 846 browse_info->ips["250.10.10.10"]); |
| 846 | 847 |
| 847 // Add more urls for this ip, it exceeds max limit and won't be added | 848 // Add more urls for this ip, it exceeds max limit and won't be added |
| 848 UpdateIPUrlMap("250.10.10.10", "http://21.com/"); | 849 UpdateIPUrlMap("250.10.10.10", "http://21.com/"); |
| 849 ASSERT_EQ(1U, browse_info->ips.size()); | 850 ASSERT_EQ(1U, browse_info->ips.size()); |
| 850 ASSERT_EQ(20U, browse_info->ips["250.10.10.10"].size()); | 851 ASSERT_EQ(20U, browse_info->ips["250.10.10.10"].size()); |
| 851 CheckIPUrlEqual(expected_urls, | 852 CheckIPUrlEqual(expected_urls, |
| 852 browse_info->ips["250.10.10.10"]); | 853 browse_info->ips["250.10.10.10"]); |
| 853 | 854 |
| 854 // Add 199 more IPs | 855 // Add 199 more IPs |
| 855 for (int i = 0; i < 199; i++) { | 856 for (int i = 0; i < 199; i++) { |
| 856 std::string ip = base::StringPrintf("%d.%d.%d.256", i, i, i); | 857 std::string ip = base::StringPrintf("%d.%d.%d.256", i, i, i); |
| 857 expected_urls.clear(); | 858 expected_urls.clear(); |
| 858 expected_urls.push_back(IPUrlInfo("test.com/", "", "", | 859 expected_urls.push_back( |
| 859 ResourceType::OBJECT)); | 860 IPUrlInfo("test.com/", "", "", content::RESOURCE_TYPE_OBJECT)); |
| 860 UpdateIPUrlMap(ip, "test.com/"); | 861 UpdateIPUrlMap(ip, "test.com/"); |
| 861 ASSERT_EQ(1U, browse_info->ips[ip].size()); | 862 ASSERT_EQ(1U, browse_info->ips[ip].size()); |
| 862 CheckIPUrlEqual(expected_urls, | 863 CheckIPUrlEqual(expected_urls, |
| 863 browse_info->ips[ip]); | 864 browse_info->ips[ip]); |
| 864 } | 865 } |
| 865 ASSERT_EQ(200U, browse_info->ips.size()); | 866 ASSERT_EQ(200U, browse_info->ips.size()); |
| 866 | 867 |
| 867 // Exceeding max ip limit 200, these won't be added | 868 // Exceeding max ip limit 200, these won't be added |
| 868 UpdateIPUrlMap("250.250.250.250", "goo.com/"); | 869 UpdateIPUrlMap("250.250.250.250", "goo.com/"); |
| 869 UpdateIPUrlMap("250.250.250.250", "bar.com/"); | 870 UpdateIPUrlMap("250.250.250.250", "bar.com/"); |
| 870 UpdateIPUrlMap("250.250.0.250", "foo.com/"); | 871 UpdateIPUrlMap("250.250.0.250", "foo.com/"); |
| 871 ASSERT_EQ(200U, browse_info->ips.size()); | 872 ASSERT_EQ(200U, browse_info->ips.size()); |
| 872 | 873 |
| 873 // Add url to existing IPs succeed | 874 // Add url to existing IPs succeed |
| 874 UpdateIPUrlMap("100.100.100.256", "more.com/"); | 875 UpdateIPUrlMap("100.100.100.256", "more.com/"); |
| 875 ASSERT_EQ(2U, browse_info->ips["100.100.100.256"].size()); | 876 ASSERT_EQ(2U, browse_info->ips["100.100.100.256"].size()); |
| 876 expected_urls.clear(); | 877 expected_urls.clear(); |
| 877 expected_urls.push_back(IPUrlInfo("test.com/", "", "", ResourceType::OBJECT)); | 878 expected_urls.push_back( |
| 878 expected_urls.push_back(IPUrlInfo("more.com/", "", "", ResourceType::OBJECT)); | 879 IPUrlInfo("test.com/", "", "", content::RESOURCE_TYPE_OBJECT)); |
| 880 expected_urls.push_back( |
| 881 IPUrlInfo("more.com/", "", "", content::RESOURCE_TYPE_OBJECT)); |
| 879 CheckIPUrlEqual(expected_urls, | 882 CheckIPUrlEqual(expected_urls, |
| 880 browse_info->ips["100.100.100.256"]); | 883 browse_info->ips["100.100.100.256"]); |
| 881 } | 884 } |
| 882 | 885 |
| 883 TEST_F(ClientSideDetectionHostTest, NavigationCancelsShouldClassifyUrl) { | 886 TEST_F(ClientSideDetectionHostTest, NavigationCancelsShouldClassifyUrl) { |
| 884 // Test that canceling pending should classify requests works as expected. | 887 // Test that canceling pending should classify requests works as expected. |
| 885 | 888 |
| 886 GURL first_url("http://first.phishy.url.com"); | 889 GURL first_url("http://first.phishy.url.com"); |
| 887 GURL second_url("http://second.url.com/"); | 890 GURL second_url("http://second.url.com/"); |
| 888 // The first few checks are done synchronously so check that they have been | 891 // The first few checks are done synchronously so check that they have been |
| (...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1138 EXPECT_EQ(url, resource.url); | 1141 EXPECT_EQ(url, resource.url); |
| 1139 EXPECT_EQ(url, resource.original_url); | 1142 EXPECT_EQ(url, resource.original_url); |
| 1140 | 1143 |
| 1141 ExpectStartPhishingDetection(NULL); | 1144 ExpectStartPhishingDetection(NULL); |
| 1142 | 1145 |
| 1143 // Showing a phishing warning will invalidate all the weak pointers which | 1146 // Showing a phishing warning will invalidate all the weak pointers which |
| 1144 // means we will not extract malware features. | 1147 // means we will not extract malware features. |
| 1145 ExpectShouldClassifyForMalwareResult(false); | 1148 ExpectShouldClassifyForMalwareResult(false); |
| 1146 } | 1149 } |
| 1147 } // namespace safe_browsing | 1150 } // namespace safe_browsing |
| OLD | NEW |