Index: chrome/browser/safe_browsing/client_side_detection_service_unittest.cc |
diff --git a/chrome/browser/safe_browsing/client_side_detection_service_unittest.cc b/chrome/browser/safe_browsing/client_side_detection_service_unittest.cc |
index 41b1bca5ea61554aedb0aecebf4684d708d9c449..b5f64d5eb348415588d83fa4d98107cf7127c53d 100644 |
--- a/chrome/browser/safe_browsing/client_side_detection_service_unittest.cc |
+++ b/chrome/browser/safe_browsing/client_side_detection_service_unittest.cc |
@@ -107,28 +107,28 @@ class ClientSideDetectionServiceTest : public testing::Test { |
} |
void SetModelFetchResponse(std::string response_data, |
- net::HttpStatusCode response_code) { |
+ net::HttpStatusCode response_code, |
+ net::URLRequestStatus::Status status) { |
factory_->SetFakeResponse(GURL(ClientSideDetectionService::kClientModelUrl), |
- response_data, |
- response_code); |
+ response_data, response_code, status); |
} |
void SetClientReportPhishingResponse(std::string response_data, |
- net::HttpStatusCode response_code) { |
+ net::HttpStatusCode response_code, |
+ net::URLRequestStatus::Status status) { |
factory_->SetFakeResponse( |
ClientSideDetectionService::GetClientReportUrl( |
ClientSideDetectionService::kClientReportPhishingUrl), |
- response_data, |
- response_code); |
+ response_data, response_code, status); |
} |
void SetClientReportMalwareResponse(std::string response_data, |
- net::HttpStatusCode response_code) { |
+ net::HttpStatusCode response_code, |
+ net::URLRequestStatus::Status status) { |
factory_->SetFakeResponse( |
ClientSideDetectionService::GetClientReportUrl( |
ClientSideDetectionService::kClientReportMalwareUrl), |
- response_data, |
- response_code); |
+ response_data, response_code, status); |
} |
int GetNumReports(std::queue<base::Time>* report_times) { |
@@ -260,7 +260,8 @@ TEST_F(ClientSideDetectionServiceTest, FetchModelTest) { |
service.SetEnabledAndRefreshState(true); |
// The model fetch failed. |
- SetModelFetchResponse("blamodel", net::HTTP_INTERNAL_SERVER_ERROR); |
+ SetModelFetchResponse("blamodel", net::HTTP_INTERNAL_SERVER_ERROR, |
+ net::URLRequestStatus::FAILED); |
EXPECT_CALL(service, EndFetchModel( |
ClientSideDetectionService::MODEL_FETCH_FAILED)) |
.WillOnce(QuitCurrentMessageLoop()); |
@@ -269,7 +270,8 @@ TEST_F(ClientSideDetectionServiceTest, FetchModelTest) { |
Mock::VerifyAndClearExpectations(&service); |
// Empty model file. |
- SetModelFetchResponse(std::string(), net::HTTP_OK); |
+ SetModelFetchResponse(std::string(), net::HTTP_OK, |
+ net::URLRequestStatus::SUCCESS); |
EXPECT_CALL(service, EndFetchModel(ClientSideDetectionService::MODEL_EMPTY)) |
.WillOnce(QuitCurrentMessageLoop()); |
service.StartFetchModel(); |
@@ -279,7 +281,7 @@ TEST_F(ClientSideDetectionServiceTest, FetchModelTest) { |
// Model is too large. |
SetModelFetchResponse( |
std::string(ClientSideDetectionService::kMaxModelSizeBytes + 1, 'x'), |
- net::HTTP_OK); |
+ net::HTTP_OK, net::URLRequestStatus::SUCCESS); |
EXPECT_CALL(service, EndFetchModel( |
ClientSideDetectionService::MODEL_TOO_LARGE)) |
.WillOnce(QuitCurrentMessageLoop()); |
@@ -288,7 +290,8 @@ TEST_F(ClientSideDetectionServiceTest, FetchModelTest) { |
Mock::VerifyAndClearExpectations(&service); |
// Unable to parse the model file. |
- SetModelFetchResponse("Invalid model file", net::HTTP_OK); |
+ SetModelFetchResponse("Invalid model file", net::HTTP_OK, |
+ net::URLRequestStatus::SUCCESS); |
EXPECT_CALL(service, EndFetchModel( |
ClientSideDetectionService::MODEL_PARSE_ERROR)) |
.WillOnce(QuitCurrentMessageLoop()); |
@@ -299,7 +302,8 @@ TEST_F(ClientSideDetectionServiceTest, FetchModelTest) { |
// Model that is missing some required fields (missing the version field). |
ClientSideModel model; |
model.set_max_words_per_term(4); |
- SetModelFetchResponse(model.SerializePartialAsString(), net::HTTP_OK); |
+ SetModelFetchResponse(model.SerializePartialAsString(), net::HTTP_OK, |
+ net::URLRequestStatus::SUCCESS); |
EXPECT_CALL(service, EndFetchModel( |
ClientSideDetectionService::MODEL_MISSING_FIELDS)) |
.WillOnce(QuitCurrentMessageLoop()); |
@@ -311,7 +315,8 @@ TEST_F(ClientSideDetectionServiceTest, FetchModelTest) { |
model.set_version(10); |
model.add_hashes("bla"); |
model.add_page_term(1); // Should be 0 instead of 1. |
- SetModelFetchResponse(model.SerializePartialAsString(), net::HTTP_OK); |
+ SetModelFetchResponse(model.SerializePartialAsString(), net::HTTP_OK, |
+ net::URLRequestStatus::SUCCESS); |
EXPECT_CALL(service, EndFetchModel( |
ClientSideDetectionService::MODEL_BAD_HASH_IDS)) |
.WillOnce(QuitCurrentMessageLoop()); |
@@ -322,7 +327,8 @@ TEST_F(ClientSideDetectionServiceTest, FetchModelTest) { |
// Model version number is wrong. |
model.set_version(-1); |
- SetModelFetchResponse(model.SerializeAsString(), net::HTTP_OK); |
+ SetModelFetchResponse(model.SerializeAsString(), net::HTTP_OK, |
+ net::URLRequestStatus::SUCCESS); |
EXPECT_CALL(service, EndFetchModel( |
ClientSideDetectionService::MODEL_INVALID_VERSION_NUMBER)) |
.WillOnce(QuitCurrentMessageLoop()); |
@@ -332,7 +338,8 @@ TEST_F(ClientSideDetectionServiceTest, FetchModelTest) { |
// Normal model. |
model.set_version(10); |
- SetModelFetchResponse(model.SerializeAsString(), net::HTTP_OK); |
+ SetModelFetchResponse(model.SerializeAsString(), net::HTTP_OK, |
+ net::URLRequestStatus::SUCCESS); |
EXPECT_CALL(service, EndFetchModel( |
ClientSideDetectionService::MODEL_SUCCESS)) |
.WillOnce(QuitCurrentMessageLoop()); |
@@ -344,7 +351,8 @@ TEST_F(ClientSideDetectionServiceTest, FetchModelTest) { |
// model that is currently loaded in the service object to 11. |
service.model_.reset(new ClientSideModel(model)); |
service.model_->set_version(11); |
- SetModelFetchResponse(model.SerializeAsString(), net::HTTP_OK); |
+ SetModelFetchResponse(model.SerializeAsString(), net::HTTP_OK, |
+ net::URLRequestStatus::SUCCESS); |
EXPECT_CALL(service, EndFetchModel( |
ClientSideDetectionService::MODEL_INVALID_VERSION_NUMBER)) |
.WillOnce(QuitCurrentMessageLoop()); |
@@ -354,7 +362,8 @@ TEST_F(ClientSideDetectionServiceTest, FetchModelTest) { |
// Model version hasn't changed since the last reload. |
service.model_->set_version(10); |
- SetModelFetchResponse(model.SerializeAsString(), net::HTTP_OK); |
+ SetModelFetchResponse(model.SerializeAsString(), net::HTTP_OK, |
+ net::URLRequestStatus::SUCCESS); |
EXPECT_CALL(service, EndFetchModel( |
ClientSideDetectionService::MODEL_NOT_CHANGED)) |
.WillOnce(QuitCurrentMessageLoop()); |
@@ -364,7 +373,8 @@ TEST_F(ClientSideDetectionServiceTest, FetchModelTest) { |
} |
TEST_F(ClientSideDetectionServiceTest, ServiceObjectDeletedBeforeCallbackDone) { |
- SetModelFetchResponse("bogus model", net::HTTP_OK); |
+ SetModelFetchResponse("bogus model", net::HTTP_OK, |
+ net::URLRequestStatus::SUCCESS); |
csd_service_.reset(ClientSideDetectionService::Create(NULL)); |
csd_service_->SetEnabledAndRefreshState(true); |
EXPECT_TRUE(csd_service_.get() != NULL); |
@@ -377,7 +387,8 @@ TEST_F(ClientSideDetectionServiceTest, ServiceObjectDeletedBeforeCallbackDone) { |
} |
TEST_F(ClientSideDetectionServiceTest, SendClientReportPhishingRequest) { |
- SetModelFetchResponse("bogus model", net::HTTP_OK); |
+ SetModelFetchResponse("bogus model", net::HTTP_OK, |
+ net::URLRequestStatus::SUCCESS); |
csd_service_.reset(ClientSideDetectionService::Create(NULL)); |
csd_service_->SetEnabledAndRefreshState(true); |
@@ -387,21 +398,23 @@ TEST_F(ClientSideDetectionServiceTest, SendClientReportPhishingRequest) { |
base::Time before = base::Time::Now(); |
// Invalid response body from the server. |
- SetClientReportPhishingResponse("invalid proto response", net::HTTP_OK); |
+ SetClientReportPhishingResponse("invalid proto response", net::HTTP_OK, |
+ net::URLRequestStatus::SUCCESS); |
EXPECT_FALSE(SendClientReportPhishingRequest(url, score)); |
// Normal behavior. |
ClientPhishingResponse response; |
response.set_phishy(true); |
- SetClientReportPhishingResponse(response.SerializeAsString(), |
- net::HTTP_OK); |
+ SetClientReportPhishingResponse(response.SerializeAsString(), net::HTTP_OK, |
+ net::URLRequestStatus::SUCCESS); |
EXPECT_TRUE(SendClientReportPhishingRequest(url, score)); |
// This request will fail |
GURL second_url("http://b.com/"); |
response.set_phishy(false); |
SetClientReportPhishingResponse(response.SerializeAsString(), |
- net::HTTP_INTERNAL_SERVER_ERROR); |
+ net::HTTP_INTERNAL_SERVER_ERROR, |
+ net::URLRequestStatus::FAILED); |
EXPECT_FALSE(SendClientReportPhishingRequest(second_url, score)); |
base::Time after = base::Time::Now(); |
@@ -425,38 +438,44 @@ TEST_F(ClientSideDetectionServiceTest, SendClientReportPhishingRequest) { |
} |
TEST_F(ClientSideDetectionServiceTest, SendClientReportMalwareRequest) { |
- SetModelFetchResponse("bogus model", net::HTTP_OK); |
+ SetModelFetchResponse("bogus model", net::HTTP_OK, |
+ net::URLRequestStatus::SUCCESS); |
csd_service_.reset(ClientSideDetectionService::Create(NULL)); |
csd_service_->SetEnabledAndRefreshState(true); |
GURL url("http://a.com/"); |
base::Time before = base::Time::Now(); |
// Invalid response body from the server. |
- SetClientReportMalwareResponse("invalid proto response", net::HTTP_OK); |
+ SetClientReportMalwareResponse("invalid proto response", net::HTTP_OK, |
+ net::URLRequestStatus::SUCCESS); |
EXPECT_FALSE(SendClientReportMalwareRequest(url)); |
// Missing bad_url. |
ClientMalwareResponse response; |
response.set_blacklist(true); |
- SetClientReportMalwareResponse(response.SerializeAsString(), net::HTTP_OK); |
+ SetClientReportMalwareResponse(response.SerializeAsString(), net::HTTP_OK, |
+ net::URLRequestStatus::SUCCESS); |
EXPECT_FALSE(SendClientReportMalwareRequest(url)); |
// Normal behavior. |
response.set_blacklist(true); |
response.set_bad_url("http://response-bad.com/"); |
- SetClientReportMalwareResponse(response.SerializeAsString(), net::HTTP_OK); |
+ SetClientReportMalwareResponse(response.SerializeAsString(), net::HTTP_OK, |
+ net::URLRequestStatus::SUCCESS); |
EXPECT_TRUE(SendClientReportMalwareRequest(url)); |
CheckConfirmedMalwareUrl(GURL("http://response-bad.com/")); |
// This request will fail |
response.set_blacklist(false); |
SetClientReportMalwareResponse(response.SerializeAsString(), |
- net::HTTP_INTERNAL_SERVER_ERROR); |
+ net::HTTP_INTERNAL_SERVER_ERROR, |
+ net::URLRequestStatus::FAILED); |
EXPECT_FALSE(SendClientReportMalwareRequest(url)); |
// server blacklist decision is false, and response is succesful |
response.set_blacklist(false); |
- SetClientReportMalwareResponse(response.SerializeAsString(), net::HTTP_OK); |
+ SetClientReportMalwareResponse(response.SerializeAsString(), net::HTTP_OK, |
+ net::URLRequestStatus::SUCCESS); |
EXPECT_FALSE(SendClientReportMalwareRequest(url)); |
// Check that we have recorded all 4 requests within the correct time range. |
@@ -466,7 +485,8 @@ TEST_F(ClientSideDetectionServiceTest, SendClientReportMalwareRequest) { |
// Another normal behavior will fail because of the limit is hit |
response.set_blacklist(true); |
- SetClientReportMalwareResponse(response.SerializeAsString(), net::HTTP_OK); |
+ SetClientReportMalwareResponse(response.SerializeAsString(), net::HTTP_OK, |
+ net::URLRequestStatus::SUCCESS); |
EXPECT_FALSE(SendClientReportMalwareRequest(url)); |
report_times = GetMalwareReportTimes(); |
@@ -480,7 +500,8 @@ TEST_F(ClientSideDetectionServiceTest, SendClientReportMalwareRequest) { |
} |
TEST_F(ClientSideDetectionServiceTest, GetNumReportTest) { |
- SetModelFetchResponse("bogus model", net::HTTP_OK); |
+ SetModelFetchResponse("bogus model", net::HTTP_OK, |
+ net::URLRequestStatus::SUCCESS); |
csd_service_.reset(ClientSideDetectionService::Create(NULL)); |
std::queue<base::Time>& report_times = GetPhishingReportTimes(); |
@@ -495,14 +516,16 @@ TEST_F(ClientSideDetectionServiceTest, GetNumReportTest) { |
} |
TEST_F(ClientSideDetectionServiceTest, CacheTest) { |
- SetModelFetchResponse("bogus model", net::HTTP_OK); |
+ SetModelFetchResponse("bogus model", net::HTTP_OK, |
+ net::URLRequestStatus::SUCCESS); |
csd_service_.reset(ClientSideDetectionService::Create(NULL)); |
TestCache(); |
} |
TEST_F(ClientSideDetectionServiceTest, IsPrivateIPAddress) { |
- SetModelFetchResponse("bogus model", net::HTTP_OK); |
+ SetModelFetchResponse("bogus model", net::HTTP_OK, |
+ net::URLRequestStatus::SUCCESS); |
csd_service_.reset(ClientSideDetectionService::Create(NULL)); |
EXPECT_TRUE(csd_service_->IsPrivateIPAddress("10.1.2.3")); |
@@ -633,7 +656,8 @@ TEST_F(ClientSideDetectionServiceTest, SetEnabledAndRefreshState) { |
ClientSideModel model; |
model.set_version(10); |
model.set_max_words_per_term(4); |
- SetModelFetchResponse(model.SerializeAsString(), net::HTTP_OK); |
+ SetModelFetchResponse(model.SerializeAsString(), net::HTTP_OK, |
+ net::URLRequestStatus::SUCCESS); |
EXPECT_CALL(*service, ScheduleFetchModel(_)) |
.WillOnce(Invoke(service, &MockClientSideDetectionService::Schedule)); |
EXPECT_CALL(*service, EndFetchModel( |
@@ -665,8 +689,8 @@ TEST_F(ClientSideDetectionServiceTest, SetEnabledAndRefreshState) { |
// Requests always return false when the service is disabled. |
ClientPhishingResponse response; |
response.set_phishy(true); |
- SetClientReportPhishingResponse(response.SerializeAsString(), |
- net::HTTP_OK); |
+ SetClientReportPhishingResponse(response.SerializeAsString(), net::HTTP_OK, |
+ net::URLRequestStatus::SUCCESS); |
EXPECT_FALSE(SendClientReportPhishingRequest(GURL("http://a.com/"), 0.4f)); |
// Pending requests also return false if the service is disabled before they |