| Index: chrome/browser/policy/cloud/device_management_service_unittest.cc
|
| diff --git a/chrome/browser/policy/cloud/device_management_service_unittest.cc b/chrome/browser/policy/cloud/device_management_service_unittest.cc
|
| index b83ca80d4cecc682ccc2ba8babd23ad9bd920218..265847de38f345338d316e2b4c4a1c1a2519b8b2 100644
|
| --- a/chrome/browser/policy/cloud/device_management_service_unittest.cc
|
| +++ b/chrome/browser/policy/cloud/device_management_service_unittest.cc
|
| @@ -42,6 +42,7 @@ const char kGaiaAuthToken[] = "gaia-auth-token";
|
| const char kOAuthToken[] = "oauth-token";
|
| const char kDMToken[] = "device-management-token";
|
| const char kClientID[] = "device-id";
|
| +const char kRobotAuthCode[] = "robot-oauth-auth-code";
|
|
|
| // Unit tests for the device management policy service. The tests are run
|
| // against a TestURLFetcherFactory that is used to short-circuit the request
|
| @@ -87,6 +88,20 @@ class DeviceManagementServiceTestBase : public testing::Test {
|
| return job;
|
| }
|
|
|
| + DeviceManagementRequestJob* StartApiAuthCodeFetchJob() {
|
| + DeviceManagementRequestJob* job = service_->CreateJob(
|
| + DeviceManagementRequestJob::TYPE_API_AUTH_CODE_FETCH);
|
| + job->SetGaiaToken(kGaiaAuthToken);
|
| + job->SetOAuthToken(kOAuthToken);
|
| + job->SetClientID(kClientID);
|
| + job->GetRequest()->mutable_service_api_access_request();
|
| + job->SetRetryCallback(base::Bind(
|
| + &DeviceManagementServiceTestBase::OnJobRetry, base::Unretained(this)));
|
| + job->Start(base::Bind(&DeviceManagementServiceTestBase::OnJobDone,
|
| + base::Unretained(this)));
|
| + return job;
|
| + }
|
| +
|
| DeviceManagementRequestJob* StartUnregistrationJob() {
|
| DeviceManagementRequestJob* job =
|
| service_->CreateJob(DeviceManagementRequestJob::TYPE_UNREGISTRATION);
|
| @@ -196,6 +211,18 @@ TEST_P(DeviceManagementServiceFailedRequestTest, RegisterRequest) {
|
| GetParam().response_);
|
| }
|
|
|
| +TEST_P(DeviceManagementServiceFailedRequestTest, ApiAuthCodeFetchRequest) {
|
| + EXPECT_CALL(*this, OnJobDone(GetParam().expected_status_, _));
|
| + EXPECT_CALL(*this, OnJobRetry(_)).Times(0);
|
| + scoped_ptr<DeviceManagementRequestJob> request_job(
|
| + StartApiAuthCodeFetchJob());
|
| + net::TestURLFetcher* fetcher = GetFetcher();
|
| + ASSERT_TRUE(fetcher);
|
| +
|
| + SendResponse(fetcher, GetParam().request_status_, GetParam().http_status_,
|
| + GetParam().response_);
|
| +}
|
| +
|
| TEST_P(DeviceManagementServiceFailedRequestTest, UnregisterRequest) {
|
| EXPECT_CALL(*this, OnJobDone(GetParam().expected_status_, _));
|
| EXPECT_CALL(*this, OnJobRetry(_)).Times(0);
|
| @@ -390,6 +417,33 @@ TEST_F(DeviceManagementServiceTest, RegisterRequest) {
|
| SendResponse(fetcher, status, 200, response_data);
|
| }
|
|
|
| +TEST_F(DeviceManagementServiceTest, ApiAuthCodeFetchRequest) {
|
| + em::DeviceManagementResponse expected_response;
|
| + expected_response.mutable_service_api_access_response()->set_auth_code(
|
| + kRobotAuthCode);
|
| + EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS,
|
| + MessageEquals(expected_response)));
|
| + EXPECT_CALL(*this, OnJobRetry(_)).Times(0);
|
| + scoped_ptr<DeviceManagementRequestJob> request_job(
|
| + StartApiAuthCodeFetchJob());
|
| + net::TestURLFetcher* fetcher = GetFetcher();
|
| + ASSERT_TRUE(fetcher);
|
| +
|
| + CheckURLAndQueryParams(fetcher->GetOriginalURL(),
|
| + dm_protocol::kValueRequestApiAuthorization,
|
| + kClientID);
|
| +
|
| + std::string expected_data;
|
| + ASSERT_TRUE(request_job->GetRequest()->SerializeToString(&expected_data));
|
| + EXPECT_EQ(expected_data, fetcher->upload_data());
|
| +
|
| + // Generate the response.
|
| + std::string response_data;
|
| + ASSERT_TRUE(expected_response.SerializeToString(&response_data));
|
| + net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, 0);
|
| + SendResponse(fetcher, status, 200, response_data);
|
| +}
|
| +
|
| TEST_F(DeviceManagementServiceTest, UnregisterRequest) {
|
| em::DeviceManagementResponse expected_response;
|
| expected_response.mutable_unregister_response();
|
| @@ -434,6 +488,18 @@ TEST_F(DeviceManagementServiceTest, CancelRegisterRequest) {
|
| request_job.reset();
|
| }
|
|
|
| +TEST_F(DeviceManagementServiceTest, CancelApiAuthCodeFetch) {
|
| + EXPECT_CALL(*this, OnJobDone(_, _)).Times(0);
|
| + EXPECT_CALL(*this, OnJobRetry(_)).Times(0);
|
| + scoped_ptr<DeviceManagementRequestJob> request_job(
|
| + StartApiAuthCodeFetchJob());
|
| + net::TestURLFetcher* fetcher = GetFetcher();
|
| + ASSERT_TRUE(fetcher);
|
| +
|
| + // There shouldn't be any callbacks.
|
| + request_job.reset();
|
| +}
|
| +
|
| TEST_F(DeviceManagementServiceTest, CancelUnregisterRequest) {
|
| EXPECT_CALL(*this, OnJobDone(_, _)).Times(0);
|
| EXPECT_CALL(*this, OnJobRetry(_)).Times(0);
|
|
|