Index: chrome/browser/policy/cloud/device_management_service_browsertest.cc |
diff --git a/chrome/browser/policy/cloud/device_management_service_browsertest.cc b/chrome/browser/policy/cloud/device_management_service_browsertest.cc |
index df27a8db15ab663f7756a95a04165821747303a8..92febbdaecddd2a79dd7797db30086933cb5a5fd 100644 |
--- a/chrome/browser/policy/cloud/device_management_service_browsertest.cc |
+++ b/chrome/browser/policy/cloud/device_management_service_browsertest.cc |
@@ -42,6 +42,9 @@ void ConstructResponse(const char* request_data, |
if (request.has_register_request()) { |
response.mutable_register_response()->set_device_management_token( |
"fake_token"); |
+ } else if (request.has_service_api_access_request()) { |
+ response.mutable_service_api_access_response()->set_auth_code( |
+ "fake_auth_code"); |
} else if (request.has_unregister_request()) { |
response.mutable_unregister_response(); |
} else if (request.has_policy_request()) { |
@@ -99,6 +102,11 @@ class DeviceManagementServiceIntegrationTest |
return test_server_->GetServiceURL().spec(); |
} |
+ void RecordAuthCode(DeviceManagementStatus status, |
+ const em::DeviceManagementResponse& response) { |
+ robot_auth_code_ = response.service_api_access_response().auth_code(); |
+ } |
+ |
protected: |
void ExpectRequest() { |
if (interceptor_) |
@@ -148,6 +156,7 @@ class DeviceManagementServiceIntegrationTest |
} |
std::string token_; |
+ std::string robot_auth_code_; |
scoped_ptr<DeviceManagementService> service_; |
scoped_ptr<LocalPolicyTestServer> test_server_; |
scoped_ptr<TestRequestInterceptor> interceptor_; |
@@ -158,6 +167,31 @@ IN_PROC_BROWSER_TEST_P(DeviceManagementServiceIntegrationTest, Registration) { |
EXPECT_FALSE(token_.empty()); |
} |
+IN_PROC_BROWSER_TEST_P(DeviceManagementServiceIntegrationTest, |
+ ApiAuthCodeFetch) { |
+ PerformRegistration(); |
+ |
+ ExpectRequest(); |
+ EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, _)) |
+ .WillOnce( |
+ DoAll(Invoke(this, |
+ &DeviceManagementServiceIntegrationTest::RecordAuthCode), |
+ InvokeWithoutArgs(MessageLoop::current(), |
+ &MessageLoop::Quit))); |
+ scoped_ptr<DeviceManagementRequestJob> job(service_->CreateJob( |
+ DeviceManagementRequestJob::TYPE_API_AUTH_CODE_FETCH)); |
+ job->SetDMToken(token_); |
+ job->SetClientID("testid"); |
+ em::DeviceServiceApiAccessRequest* request = |
+ job->GetRequest()->mutable_service_api_access_request(); |
+ request->add_auth_scope("authScope4Test"); |
+ request->set_oauth2_client_id("oauth2ClientId4Test"); |
+ job->Start(base::Bind(&DeviceManagementServiceIntegrationTest::OnJobDone, |
+ base::Unretained(this))); |
+ MessageLoop::current()->Run(); |
+ ASSERT_EQ("fake_auth_code", robot_auth_code_); |
+} |
+ |
IN_PROC_BROWSER_TEST_P(DeviceManagementServiceIntegrationTest, PolicyFetch) { |
PerformRegistration(); |