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

Unified Diff: components/policy/core/common/cloud/device_management_service_unittest.cc

Issue 2419783002: Add retry and lasterror parameters to DMServer requests. (Closed)
Patch Set: Add tests Created 4 years, 2 months 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: components/policy/core/common/cloud/device_management_service_unittest.cc
diff --git a/components/policy/core/common/cloud/device_management_service_unittest.cc b/components/policy/core/common/cloud/device_management_service_unittest.cc
index 075a97832ace857731a64a127b8d36bd95f2b880..5a0bb4e9360f3da7863af118f591980388ac51d0 100644
--- a/components/policy/core/common/cloud/device_management_service_unittest.cc
+++ b/components/policy/core/common/cloud/device_management_service_unittest.cc
@@ -402,7 +402,8 @@ class DeviceManagementServiceTest
protected:
void CheckURLAndQueryParams(const GURL& request_url,
const std::string& request_type,
- const std::string& device_id) {
+ const std::string& device_id,
+ const std::string& last_error) {
const GURL service_url(kServiceUrl);
EXPECT_EQ(service_url.scheme(), request_url.scheme());
EXPECT_EQ(service_url.host(), request_url.host());
@@ -416,6 +417,12 @@ class DeviceManagementServiceTest
dm_protocol::kValueDeviceType));
EXPECT_TRUE(query_params.Check(dm_protocol::kParamAppType,
dm_protocol::kValueAppType));
+ if (last_error == "") {
+ EXPECT_TRUE(query_params.Check(dm_protocol::kParamRetry, "false"));
+ } else {
+ EXPECT_TRUE(query_params.Check(dm_protocol::kParamRetry, "true"));
+ EXPECT_TRUE(query_params.Check(dm_protocol::kParamLastError, last_error));
+ }
}
};
@@ -440,8 +447,7 @@ TEST_F(DeviceManagementServiceTest, RegisterRequest) {
ASSERT_TRUE(fetcher);
CheckURLAndQueryParams(fetcher->GetOriginalURL(),
- dm_protocol::kValueRequestRegister,
- kClientID);
+ dm_protocol::kValueRequestRegister, kClientID, "");
std::string expected_data;
ASSERT_TRUE(request_job->GetRequest()->SerializeToString(&expected_data));
@@ -466,8 +472,8 @@ TEST_F(DeviceManagementServiceTest, CertBasedRegisterRequest) {
ASSERT_TRUE(fetcher);
CheckURLAndQueryParams(fetcher->GetOriginalURL(),
- dm_protocol::kValueRequestCertBasedRegister,
- kClientID);
+ dm_protocol::kValueRequestCertBasedRegister, kClientID,
+ "");
std::string expected_data;
ASSERT_TRUE(request_job->GetRequest()->SerializeToString(&expected_data));
@@ -492,8 +498,8 @@ TEST_F(DeviceManagementServiceTest, ApiAuthCodeFetchRequest) {
ASSERT_TRUE(fetcher);
CheckURLAndQueryParams(fetcher->GetOriginalURL(),
- dm_protocol::kValueRequestApiAuthorization,
- kClientID);
+ dm_protocol::kValueRequestApiAuthorization, kClientID,
+ "");
std::string expected_data;
ASSERT_TRUE(request_job->GetRequest()->SerializeToString(&expected_data));
@@ -525,8 +531,7 @@ TEST_F(DeviceManagementServiceTest, UnregisterRequest) {
EXPECT_EQ(service_url.path(), request_url.path());
CheckURLAndQueryParams(fetcher->GetOriginalURL(),
- dm_protocol::kValueRequestUnregister,
- kClientID);
+ dm_protocol::kValueRequestUnregister, kClientID, "");
std::string expected_data;
ASSERT_TRUE(request_job->GetRequest()->SerializeToString(&expected_data));
@@ -672,7 +677,9 @@ TEST_F(DeviceManagementServiceTest, RetryOnProxyError) {
net::TestURLFetcher* fetcher = GetFetcher();
ASSERT_TRUE(fetcher);
EXPECT_EQ(0, fetcher->GetLoadFlags() & net::LOAD_BYPASS_PROXY);
- const GURL original_url(fetcher->GetOriginalURL());
+ // Not a retry.
+ CheckURLAndQueryParams(fetcher->GetOriginalURL(),
+ dm_protocol::kValueRequestRegister, kClientID, "");
const std::string upload_data(fetcher->upload_data());
// Generate a callback with a proxy failure.
@@ -683,8 +690,11 @@ TEST_F(DeviceManagementServiceTest, RetryOnProxyError) {
fetcher = GetFetcher();
ASSERT_TRUE(fetcher);
EXPECT_TRUE(fetcher->GetLoadFlags() & net::LOAD_BYPASS_PROXY);
- EXPECT_EQ(original_url, fetcher->GetOriginalURL());
EXPECT_EQ(upload_data, fetcher->upload_data());
+ // Retry with last error net::ERR_PROXY_CONNECTION_FAILED.
+ CheckURLAndQueryParams(fetcher->GetOriginalURL(),
+ dm_protocol::kValueRequestRegister, kClientID,
+ std::to_string(net::ERR_PROXY_CONNECTION_FAILED));
}
TEST_F(DeviceManagementServiceTest, RetryOnBadResponseFromProxy) {
@@ -727,7 +737,9 @@ TEST_F(DeviceManagementServiceTest, RetryOnNetworkChanges) {
StartRegistrationJob());
net::TestURLFetcher* fetcher = GetFetcher();
ASSERT_TRUE(fetcher);
- const GURL original_url(fetcher->GetOriginalURL());
+ // Not a retry.
+ CheckURLAndQueryParams(fetcher->GetOriginalURL(),
+ dm_protocol::kValueRequestRegister, kClientID, "");
const std::string original_upload_data(fetcher->upload_data());
// Make it fail with ERR_NETWORK_CHANGED.
@@ -742,9 +754,12 @@ TEST_F(DeviceManagementServiceTest, RetryOnNetworkChanges) {
Mock::VerifyAndClearExpectations(this);
fetcher = GetFetcher();
ASSERT_TRUE(fetcher);
- EXPECT_EQ(original_url, fetcher->GetOriginalURL());
EXPECT_EQ(original_upload_data, fetcher->upload_data());
EXPECT_EQ(net::URLRequestStatus::SUCCESS, fetcher->GetStatus().status());
+ // Retry with last error net::ERR_NETWORK_CHANGED.
+ CheckURLAndQueryParams(fetcher->GetOriginalURL(),
+ dm_protocol::kValueRequestRegister, kClientID,
+ std::to_string(net::ERR_NETWORK_CHANGED));
}
TEST_F(DeviceManagementServiceTest, PolicyFetchRetryImmediately) {
@@ -759,7 +774,9 @@ TEST_F(DeviceManagementServiceTest, PolicyFetchRetryImmediately) {
StartPolicyFetchJob());
net::TestURLFetcher* fetcher = GetFetcher();
ASSERT_TRUE(fetcher);
- const GURL original_url(fetcher->GetOriginalURL());
+ // Not a retry.
+ CheckURLAndQueryParams(fetcher->GetOriginalURL(),
+ dm_protocol::kValueRequestPolicy, kClientID, "");
const std::string original_upload_data(fetcher->upload_data());
// Make it fail with ERR_NETWORK_CHANGED.
@@ -774,9 +791,12 @@ TEST_F(DeviceManagementServiceTest, PolicyFetchRetryImmediately) {
Mock::VerifyAndClearExpectations(this);
fetcher = GetFetcher();
ASSERT_TRUE(fetcher);
- EXPECT_EQ(original_url, fetcher->GetOriginalURL());
EXPECT_EQ(original_upload_data, fetcher->upload_data());
EXPECT_EQ(net::URLRequestStatus::SUCCESS, fetcher->GetStatus().status());
+ // Retry with last error net::ERR_NETWORK_CHANGED.
+ CheckURLAndQueryParams(fetcher->GetOriginalURL(),
+ dm_protocol::kValueRequestPolicy, kClientID,
+ std::to_string(net::ERR_NETWORK_CHANGED));
}
TEST_F(DeviceManagementServiceTest, RetryLimit) {
@@ -793,6 +813,16 @@ TEST_F(DeviceManagementServiceTest, RetryLimit) {
fetcher->set_status(net::URLRequestStatus(net::URLRequestStatus::FAILED,
net::ERR_NETWORK_CHANGED));
fetcher->set_url(GURL(kServiceUrl));
+ if (i == 0) {
+ // Not a retry.
+ CheckURLAndQueryParams(fetcher->GetOriginalURL(),
+ dm_protocol::kValueRequestRegister, kClientID, "");
+ } else {
+ // Retry with last error net::ERR_NETWORK_CHANGED.
+ CheckURLAndQueryParams(fetcher->GetOriginalURL(),
+ dm_protocol::kValueRequestRegister, kClientID,
+ std::to_string(net::ERR_NETWORK_CHANGED));
+ }
fetcher->delegate()->OnURLFetchComplete(fetcher);
base::RunLoop().RunUntilIdle();
Mock::VerifyAndClearExpectations(this);

Powered by Google App Engine
This is Rietveld 408576698