OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 <map> | 5 #include <map> |
6 #include <queue> | 6 #include <queue> |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/callback.h" | 9 #include "base/callback.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 648 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
659 ClientSideDetectionService::MODEL_NOT_CHANGED)) | 659 ClientSideDetectionService::MODEL_NOT_CHANGED)) |
660 .WillOnce(Invoke(service, &MockClientSideDetectionService::Disable)); | 660 .WillOnce(Invoke(service, &MockClientSideDetectionService::Disable)); |
661 csd_service_->SetEnabled(true); | 661 csd_service_->SetEnabled(true); |
662 EXPECT_FALSE(SendClientReportPhishingRequest(GURL("http://a.com/"), 0.4f)); | 662 EXPECT_FALSE(SendClientReportPhishingRequest(GURL("http://a.com/"), 0.4f)); |
663 Mock::VerifyAndClearExpectations(service); | 663 Mock::VerifyAndClearExpectations(service); |
664 } | 664 } |
665 | 665 |
666 TEST_F(ClientSideDetectionServiceTest, SanitizeRequestForPingback) { | 666 TEST_F(ClientSideDetectionServiceTest, SanitizeRequestForPingback) { |
667 ClientPhishingRequest request; | 667 ClientPhishingRequest request; |
668 request.set_url("http://www.us.host.com/blah"); | 668 request.set_url("http://www.us.host.com/blah"); |
669 request.set_suffix_prefix_hash("hash"); | 669 request.set_hash_prefix("hash"); |
670 request.set_client_score(0.8f); | 670 request.set_client_score(0.8f); |
671 request.set_is_phishing(true); | 671 request.set_is_phishing(true); |
672 AddFeature(std::string(features::kUrlTldToken) + "com", 1.0, &request); | 672 AddFeature(std::string(features::kUrlTldToken) + "com", 1.0, &request); |
673 AddFeature(std::string(features::kUrlDomainToken) + "host", 1.0, &request); | 673 AddFeature(std::string(features::kUrlDomainToken) + "host", 1.0, &request); |
674 AddFeature(std::string(features::kUrlOtherHostToken) + "us", 1.0, &request); | 674 AddFeature(std::string(features::kUrlOtherHostToken) + "us", 1.0, &request); |
675 AddFeature(std::string(features::kUrlOtherHostToken) + "www", 1.0, &request); | 675 AddFeature(std::string(features::kUrlOtherHostToken) + "www", 1.0, &request); |
676 AddFeature(features::kUrlNumOtherHostTokensGTOne, 1.0, &request); | 676 AddFeature(features::kUrlNumOtherHostTokensGTOne, 1.0, &request); |
677 AddFeature(std::string(features::kUrlPathToken) + "blah", 1.0, &request); | 677 AddFeature(std::string(features::kUrlPathToken) + "blah", 1.0, &request); |
678 AddFeature(features::kPageHasForms, 1.0, &request); | 678 AddFeature(features::kPageHasForms, 1.0, &request); |
679 AddFeature(std::string(features::kPageTerm) + "term", 1.0, &request); | 679 AddFeature(std::string(features::kPageTerm) + "term", 1.0, &request); |
(...skipping 22 matching lines...) Expand all Loading... |
702 AddNonModelFeature(std::string(features::kSafeBrowsingOriginalUrl) + | 702 AddNonModelFeature(std::string(features::kSafeBrowsingOriginalUrl) + |
703 "http://original.com/", 1.0, &request); | 703 "http://original.com/", 1.0, &request); |
704 | 704 |
705 csd_service_.reset(ClientSideDetectionService::Create(NULL)); | 705 csd_service_.reset(ClientSideDetectionService::Create(NULL)); |
706 | 706 |
707 ClientPhishingRequest sanitized_request; | 707 ClientPhishingRequest sanitized_request; |
708 csd_service_->SanitizeRequestForPingback(request, &sanitized_request); | 708 csd_service_->SanitizeRequestForPingback(request, &sanitized_request); |
709 | 709 |
710 // For easier debugging, we'll check the output protobuf fields individually. | 710 // For easier debugging, we'll check the output protobuf fields individually. |
711 ClientPhishingRequest expected; | 711 ClientPhishingRequest expected; |
712 expected.set_suffix_prefix_hash(request.suffix_prefix_hash()); | 712 expected.set_hash_prefix(request.hash_prefix()); |
713 expected.set_client_score(request.client_score()); | 713 expected.set_client_score(request.client_score()); |
714 expected.set_is_phishing(request.is_phishing()); | 714 expected.set_is_phishing(request.is_phishing()); |
715 AddFeature(features::kUrlNumOtherHostTokensGTOne, 1.0, &expected); | 715 AddFeature(features::kUrlNumOtherHostTokensGTOne, 1.0, &expected); |
716 AddFeature(features::kPageHasForms, 1.0, &expected); | 716 AddFeature(features::kPageHasForms, 1.0, &expected); |
717 AddFeature(features::kPageImgOtherDomainFreq, 0.5, &expected); | 717 AddFeature(features::kPageImgOtherDomainFreq, 0.5, &expected); |
718 expected.set_model_version(3); | 718 expected.set_model_version(3); |
719 AddNonModelFeature(features::kUrlHistoryVisitCount, 5.0, &expected); | 719 AddNonModelFeature(features::kUrlHistoryVisitCount, 5.0, &expected); |
720 | 720 |
721 EXPECT_FALSE(sanitized_request.has_url()); | 721 EXPECT_FALSE(sanitized_request.has_url()); |
722 EXPECT_EQ(expected.suffix_prefix_hash(), | 722 EXPECT_EQ(expected.hash_prefix(), sanitized_request.hash_prefix()); |
723 sanitized_request.suffix_prefix_hash()); | |
724 EXPECT_FLOAT_EQ(expected.client_score(), sanitized_request.client_score()); | 723 EXPECT_FLOAT_EQ(expected.client_score(), sanitized_request.client_score()); |
725 EXPECT_EQ(expected.is_phishing(), sanitized_request.is_phishing()); | 724 EXPECT_EQ(expected.is_phishing(), sanitized_request.is_phishing()); |
726 | 725 |
727 ASSERT_EQ(expected.feature_map_size(), sanitized_request.feature_map_size()); | 726 ASSERT_EQ(expected.feature_map_size(), sanitized_request.feature_map_size()); |
728 for (int i = 0; i < expected.feature_map_size(); ++i) { | 727 for (int i = 0; i < expected.feature_map_size(); ++i) { |
729 EXPECT_EQ(expected.feature_map(i).name(), | 728 EXPECT_EQ(expected.feature_map(i).name(), |
730 sanitized_request.feature_map(i).name()) << "Feature " << i; | 729 sanitized_request.feature_map(i).name()) << "Feature " << i; |
731 EXPECT_DOUBLE_EQ(expected.feature_map(i).value(), | 730 EXPECT_DOUBLE_EQ(expected.feature_map(i).value(), |
732 sanitized_request.feature_map(i).value()) | 731 sanitized_request.feature_map(i).value()) |
733 << "Feature " << i; | 732 << "Feature " << i; |
(...skipping 10 matching lines...) Expand all Loading... |
744 << "Non-model feature " << i; | 743 << "Non-model feature " << i; |
745 } | 744 } |
746 | 745 |
747 // Also check the serialized forms in case there's a field that we forget | 746 // Also check the serialized forms in case there's a field that we forget |
748 // to add above. | 747 // to add above. |
749 EXPECT_EQ(expected.SerializeAsString(), | 748 EXPECT_EQ(expected.SerializeAsString(), |
750 sanitized_request.SerializeAsString()); | 749 sanitized_request.SerializeAsString()); |
751 } | 750 } |
752 | 751 |
753 } // namespace safe_browsing | 752 } // namespace safe_browsing |
OLD | NEW |