| 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 14 matching lines...) Expand all Loading... |
| 25 #include "content/public/browser/navigation_controller.h" | 25 #include "content/public/browser/navigation_controller.h" |
| 26 #include "content/public/browser/web_contents.h" | 26 #include "content/public/browser/web_contents.h" |
| 27 #include "content/public/common/page_transition_types.h" | 27 #include "content/public/common/page_transition_types.h" |
| 28 #include "content/public/common/referrer.h" | 28 #include "content/public/common/referrer.h" |
| 29 #include "content/public/test/test_browser_thread.h" | 29 #include "content/public/test/test_browser_thread.h" |
| 30 #include "content/public/test/web_contents_tester.h" | 30 #include "content/public/test/web_contents_tester.h" |
| 31 #include "googleurl/src/gurl.h" | 31 #include "googleurl/src/gurl.h" |
| 32 #include "testing/gmock/include/gmock/gmock.h" | 32 #include "testing/gmock/include/gmock/gmock.h" |
| 33 #include "testing/gtest/include/gtest/gtest.h" | 33 #include "testing/gtest/include/gtest/gtest.h" |
| 34 | 34 |
| 35 using ::testing::Return; | |
| 36 using ::testing::StrictMock; | |
| 37 using content::BrowserThread; | |
| 38 using content::WebContentsTester; | 35 using content::WebContentsTester; |
| 36 using testing::Return; |
| 37 using testing::StrictMock; |
| 39 | 38 |
| 40 namespace safe_browsing { | 39 namespace safe_browsing { |
| 41 namespace { | 40 namespace { |
| 42 class MockClientSideDetectionService : public ClientSideDetectionService { | 41 class MockClientSideDetectionService : public ClientSideDetectionService { |
| 43 public: | 42 public: |
| 44 MockClientSideDetectionService() : ClientSideDetectionService(NULL) {} | 43 MockClientSideDetectionService() : ClientSideDetectionService(NULL) {} |
| 45 virtual ~MockClientSideDetectionService() {}; | 44 virtual ~MockClientSideDetectionService() {}; |
| 46 | 45 |
| 47 MOCK_CONST_METHOD1(IsBadIpAddress, bool(const std::string&)); | 46 MOCK_CONST_METHOD1(IsBadIpAddress, bool(const std::string&)); |
| 48 }; | 47 }; |
| 49 } // namespace | 48 } // namespace |
| 50 | 49 |
| 51 class BrowserFeatureExtractorTest : public ChromeRenderViewHostTestHarness { | 50 class BrowserFeatureExtractorTest : public ChromeRenderViewHostTestHarness { |
| 52 protected: | 51 protected: |
| 53 BrowserFeatureExtractorTest() | |
| 54 : ui_thread_(BrowserThread::UI, &message_loop_) { | |
| 55 } | |
| 56 | |
| 57 virtual void SetUp() { | 52 virtual void SetUp() { |
| 58 ChromeRenderViewHostTestHarness::SetUp(); | 53 ChromeRenderViewHostTestHarness::SetUp(); |
| 59 profile()->CreateHistoryService(true /* delete_file */, false /* no_db */); | 54 profile()->CreateHistoryService(true /* delete_file */, false /* no_db */); |
| 60 service_.reset(new StrictMock<MockClientSideDetectionService>()); | 55 service_.reset(new StrictMock<MockClientSideDetectionService>()); |
| 61 extractor_.reset( | 56 extractor_.reset( |
| 62 new BrowserFeatureExtractor(web_contents(), service_.get())); | 57 new BrowserFeatureExtractor(web_contents(), service_.get())); |
| 63 num_pending_ = 0; | 58 num_pending_ = 0; |
| 64 browse_info_.reset(new BrowseInfo); | 59 browse_info_.reset(new BrowseInfo); |
| 65 } | 60 } |
| 66 | 61 |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 154 request.feature_map(i); | 149 request.feature_map(i); |
| 155 EXPECT_EQ(0U, features->count(feature.name())); | 150 EXPECT_EQ(0U, features->count(feature.name())); |
| 156 std::set<std::string> meta_infos; | 151 std::set<std::string> meta_infos; |
| 157 for (int j = 0; j < feature.metainfo_size(); ++j) { | 152 for (int j = 0; j < feature.metainfo_size(); ++j) { |
| 158 meta_infos.insert(feature.metainfo(j)); | 153 meta_infos.insert(feature.metainfo(j)); |
| 159 } | 154 } |
| 160 (*features)[feature.name()] = meta_infos; | 155 (*features)[feature.name()] = meta_infos; |
| 161 } | 156 } |
| 162 } | 157 } |
| 163 | 158 |
| 164 content::TestBrowserThread ui_thread_; | |
| 165 int num_pending_; | 159 int num_pending_; |
| 166 scoped_ptr<BrowserFeatureExtractor> extractor_; | 160 scoped_ptr<BrowserFeatureExtractor> extractor_; |
| 167 std::map<ClientPhishingRequest*, bool> success_; | 161 std::map<ClientPhishingRequest*, bool> success_; |
| 168 scoped_ptr<BrowseInfo> browse_info_; | 162 scoped_ptr<BrowseInfo> browse_info_; |
| 169 scoped_ptr<MockClientSideDetectionService> service_; | 163 scoped_ptr<MockClientSideDetectionService> service_; |
| 170 | 164 |
| 171 private: | 165 private: |
| 172 void ExtractFeaturesDone(bool success, ClientPhishingRequest* request) { | 166 void ExtractFeaturesDone(bool success, ClientPhishingRequest* request) { |
| 173 ASSERT_EQ(0U, success_.count(request)); | 167 ASSERT_EQ(0U, success_.count(request)); |
| 174 success_[request] = success; | 168 success_[request] = success; |
| (...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 575 EXPECT_TRUE(hosts.find("evil.com") != hosts.end()); | 569 EXPECT_TRUE(hosts.find("evil.com") != hosts.end()); |
| 576 feature_name = base::StringPrintf("%s%s", features::kBadIpFetch, | 570 feature_name = base::StringPrintf("%s%s", features::kBadIpFetch, |
| 577 "92.92.92.92"); | 571 "92.92.92.92"); |
| 578 EXPECT_TRUE(features.count(feature_name)); | 572 EXPECT_TRUE(features.count(feature_name)); |
| 579 hosts = features[feature_name]; | 573 hosts = features[feature_name]; |
| 580 EXPECT_EQ(2U, hosts.size()); | 574 EXPECT_EQ(2U, hosts.size()); |
| 581 EXPECT_TRUE(hosts.find("bad.com") != hosts.end()); | 575 EXPECT_TRUE(hosts.find("bad.com") != hosts.end()); |
| 582 EXPECT_TRUE(hosts.find("evil.com") != hosts.end()); | 576 EXPECT_TRUE(hosts.find("evil.com") != hosts.end()); |
| 583 } | 577 } |
| 584 } // namespace safe_browsing | 578 } // namespace safe_browsing |
| OLD | NEW |