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

Side by Side Diff: chrome/browser/policy/cloud/device_management_service_browsertest.cc

Issue 12538009: Public Sessions: fetch device robot api token during enterprise enrollment. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: rebase Created 7 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/bind.h" 5 #include "base/bind.h"
6 #include "base/bind_helpers.h" 6 #include "base/bind_helpers.h"
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "base/message_loop.h" 8 #include "base/message_loop.h"
9 #include "base/stl_util.h" 9 #include "base/stl_util.h"
10 #include "chrome/browser/policy/cloud/cloud_policy_constants.h" 10 #include "chrome/browser/policy/cloud/cloud_policy_constants.h"
(...skipping 24 matching lines...) Expand all
35 // DeviceManagementResponse to |response_data|. 35 // DeviceManagementResponse to |response_data|.
36 void ConstructResponse(const char* request_data, 36 void ConstructResponse(const char* request_data,
37 uint64 request_data_length, 37 uint64 request_data_length,
38 std::string* response_data) { 38 std::string* response_data) {
39 em::DeviceManagementRequest request; 39 em::DeviceManagementRequest request;
40 ASSERT_TRUE(request.ParseFromArray(request_data, request_data_length)); 40 ASSERT_TRUE(request.ParseFromArray(request_data, request_data_length));
41 em::DeviceManagementResponse response; 41 em::DeviceManagementResponse response;
42 if (request.has_register_request()) { 42 if (request.has_register_request()) {
43 response.mutable_register_response()->set_device_management_token( 43 response.mutable_register_response()->set_device_management_token(
44 "fake_token"); 44 "fake_token");
45 } else if (request.has_service_api_access_request()) {
46 response.mutable_service_api_access_response()->set_auth_code(
47 "fake_auth_code");
45 } else if (request.has_unregister_request()) { 48 } else if (request.has_unregister_request()) {
46 response.mutable_unregister_response(); 49 response.mutable_unregister_response();
47 } else if (request.has_policy_request()) { 50 } else if (request.has_policy_request()) {
48 response.mutable_policy_response()->add_response(); 51 response.mutable_policy_response()->add_response();
49 } else if (request.has_auto_enrollment_request()) { 52 } else if (request.has_auto_enrollment_request()) {
50 response.mutable_auto_enrollment_response(); 53 response.mutable_auto_enrollment_response();
51 } else { 54 } else {
52 FAIL() << "Failed to parse request."; 55 FAIL() << "Failed to parse request.";
53 } 56 }
54 ASSERT_TRUE(response.SerializeToString(response_data)); 57 ASSERT_TRUE(response.SerializeToString(response_data));
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 std::string InitCannedResponse() { 95 std::string InitCannedResponse() {
93 interceptor_.reset(new TestRequestInterceptor("localhost")); 96 interceptor_.reset(new TestRequestInterceptor("localhost"));
94 return "http://localhost"; 97 return "http://localhost";
95 } 98 }
96 99
97 std::string InitTestServer() { 100 std::string InitTestServer() {
98 StartTestServer(); 101 StartTestServer();
99 return test_server_->GetServiceURL().spec(); 102 return test_server_->GetServiceURL().spec();
100 } 103 }
101 104
105 void RecordAuthCode(DeviceManagementStatus status,
106 const em::DeviceManagementResponse& response) {
107 robot_auth_code_ = response.service_api_access_response().auth_code();
108 }
109
102 protected: 110 protected:
103 void ExpectRequest() { 111 void ExpectRequest() {
104 if (interceptor_) 112 if (interceptor_)
105 interceptor_->PushJobCallback(base::Bind(&ResponseJob)); 113 interceptor_->PushJobCallback(base::Bind(&ResponseJob));
106 } 114 }
107 115
108 void PerformRegistration() { 116 void PerformRegistration() {
109 ExpectRequest(); 117 ExpectRequest();
110 EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, _)) 118 EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, _))
111 .WillOnce( 119 .WillOnce(
(...skipping 29 matching lines...) Expand all
141 new LocalPolicyTestServer("device_management_service_browsertest")); 149 new LocalPolicyTestServer("device_management_service_browsertest"));
142 ASSERT_TRUE(test_server_->Start()); 150 ASSERT_TRUE(test_server_->Start());
143 } 151 }
144 152
145 void RecordToken(DeviceManagementStatus status, 153 void RecordToken(DeviceManagementStatus status,
146 const em::DeviceManagementResponse& response) { 154 const em::DeviceManagementResponse& response) {
147 token_ = response.register_response().device_management_token(); 155 token_ = response.register_response().device_management_token();
148 } 156 }
149 157
150 std::string token_; 158 std::string token_;
159 std::string robot_auth_code_;
151 scoped_ptr<DeviceManagementService> service_; 160 scoped_ptr<DeviceManagementService> service_;
152 scoped_ptr<LocalPolicyTestServer> test_server_; 161 scoped_ptr<LocalPolicyTestServer> test_server_;
153 scoped_ptr<TestRequestInterceptor> interceptor_; 162 scoped_ptr<TestRequestInterceptor> interceptor_;
154 }; 163 };
155 164
156 IN_PROC_BROWSER_TEST_P(DeviceManagementServiceIntegrationTest, Registration) { 165 IN_PROC_BROWSER_TEST_P(DeviceManagementServiceIntegrationTest, Registration) {
157 PerformRegistration(); 166 PerformRegistration();
158 EXPECT_FALSE(token_.empty()); 167 EXPECT_FALSE(token_.empty());
159 } 168 }
160 169
170 IN_PROC_BROWSER_TEST_P(DeviceManagementServiceIntegrationTest,
171 ApiAuthCodeFetch) {
172 PerformRegistration();
173
174 ExpectRequest();
175 EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, _))
176 .WillOnce(
177 DoAll(Invoke(this,
178 &DeviceManagementServiceIntegrationTest::RecordAuthCode),
179 InvokeWithoutArgs(MessageLoop::current(),
180 &MessageLoop::Quit)));
181 scoped_ptr<DeviceManagementRequestJob> job(service_->CreateJob(
182 DeviceManagementRequestJob::TYPE_API_AUTH_CODE_FETCH));
183 job->SetDMToken(token_);
184 job->SetClientID("testid");
185 em::DeviceServiceApiAccessRequest* request =
186 job->GetRequest()->mutable_service_api_access_request();
187 request->add_auth_scope("authScope4Test");
188 request->set_oauth2_client_id("oauth2ClientId4Test");
189 job->Start(base::Bind(&DeviceManagementServiceIntegrationTest::OnJobDone,
190 base::Unretained(this)));
191 MessageLoop::current()->Run();
192 ASSERT_EQ("fake_auth_code", robot_auth_code_);
193 }
194
161 IN_PROC_BROWSER_TEST_P(DeviceManagementServiceIntegrationTest, PolicyFetch) { 195 IN_PROC_BROWSER_TEST_P(DeviceManagementServiceIntegrationTest, PolicyFetch) {
162 PerformRegistration(); 196 PerformRegistration();
163 197
164 ExpectRequest(); 198 ExpectRequest();
165 EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, _)) 199 EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, _))
166 .WillOnce(InvokeWithoutArgs(MessageLoop::current(), &MessageLoop::Quit)); 200 .WillOnce(InvokeWithoutArgs(MessageLoop::current(), &MessageLoop::Quit));
167 scoped_ptr<DeviceManagementRequestJob> job( 201 scoped_ptr<DeviceManagementRequestJob> job(
168 service_->CreateJob(DeviceManagementRequestJob::TYPE_POLICY_FETCH)); 202 service_->CreateJob(DeviceManagementRequestJob::TYPE_POLICY_FETCH));
169 job->SetDMToken(token_); 203 job->SetDMToken(token_);
170 job->SetUserAffiliation(USER_AFFILIATION_NONE); 204 job->SetUserAffiliation(USER_AFFILIATION_NONE);
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 MessageLoop::current()->Run(); 241 MessageLoop::current()->Run();
208 } 242 }
209 243
210 INSTANTIATE_TEST_CASE_P( 244 INSTANTIATE_TEST_CASE_P(
211 DeviceManagementServiceIntegrationTestInstance, 245 DeviceManagementServiceIntegrationTestInstance,
212 DeviceManagementServiceIntegrationTest, 246 DeviceManagementServiceIntegrationTest,
213 testing::Values(&DeviceManagementServiceIntegrationTest::InitCannedResponse, 247 testing::Values(&DeviceManagementServiceIntegrationTest::InitCannedResponse,
214 &DeviceManagementServiceIntegrationTest::InitTestServer)); 248 &DeviceManagementServiceIntegrationTest::InitTestServer));
215 249
216 } // namespace policy 250 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698