Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2461)

Unified Diff: chrome/browser/safe_browsing/client_side_detection_service_unittest.cc

Issue 60923002: [sync] Allow FakeURLFetcher to return an arbitrary URLRequestStatus (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698