OLD | NEW |
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/message_loop.h" | 8 #include "base/message_loop/message_loop.h" |
9 #include "base/stl_util.h" | 9 #include "base/stl_util.h" |
10 #include "chrome/browser/browser_process.h" | 10 #include "chrome/browser/browser_process.h" |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 | 118 |
119 protected: | 119 protected: |
120 void ExpectRequest() { | 120 void ExpectRequest() { |
121 if (interceptor_) | 121 if (interceptor_) |
122 interceptor_->PushJobCallback(base::Bind(&ResponseJob)); | 122 interceptor_->PushJobCallback(base::Bind(&ResponseJob)); |
123 } | 123 } |
124 | 124 |
125 void PerformRegistration() { | 125 void PerformRegistration() { |
126 ExpectRequest(); | 126 ExpectRequest(); |
127 EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, _, _)) | 127 EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, _, _)) |
128 .WillOnce( | 128 .WillOnce(DoAll( |
129 DoAll(Invoke(this, | 129 Invoke(this, &DeviceManagementServiceIntegrationTest::RecordToken), |
130 &DeviceManagementServiceIntegrationTest::RecordToken), | 130 InvokeWithoutArgs(base::MessageLoop::current(), |
131 InvokeWithoutArgs(base::MessageLoop::current(), | 131 &base::MessageLoop::QuitWhenIdle))); |
132 &base::MessageLoop::Quit))); | |
133 scoped_ptr<DeviceManagementRequestJob> job( | 132 scoped_ptr<DeviceManagementRequestJob> job( |
134 service_->CreateJob(DeviceManagementRequestJob::TYPE_REGISTRATION, | 133 service_->CreateJob(DeviceManagementRequestJob::TYPE_REGISTRATION, |
135 g_browser_process->system_request_context())); | 134 g_browser_process->system_request_context())); |
136 job->SetGaiaToken("gaia_auth_token"); | 135 job->SetGaiaToken("gaia_auth_token"); |
137 job->SetOAuthToken("oauth_token"); | 136 job->SetOAuthToken("oauth_token"); |
138 job->SetClientID("testid"); | 137 job->SetClientID("testid"); |
139 job->GetRequest()->mutable_register_request(); | 138 job->GetRequest()->mutable_register_request(); |
140 job->Start(base::Bind(&DeviceManagementServiceIntegrationTest::OnJobDone, | 139 job->Start(base::Bind(&DeviceManagementServiceIntegrationTest::OnJobDone, |
141 base::Unretained(this))); | 140 base::Unretained(this))); |
142 base::MessageLoop::current()->Run(); | 141 base::MessageLoop::current()->Run(); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
179 PerformRegistration(); | 178 PerformRegistration(); |
180 EXPECT_FALSE(token_.empty()); | 179 EXPECT_FALSE(token_.empty()); |
181 } | 180 } |
182 | 181 |
183 IN_PROC_BROWSER_TEST_P(DeviceManagementServiceIntegrationTest, | 182 IN_PROC_BROWSER_TEST_P(DeviceManagementServiceIntegrationTest, |
184 ApiAuthCodeFetch) { | 183 ApiAuthCodeFetch) { |
185 PerformRegistration(); | 184 PerformRegistration(); |
186 | 185 |
187 ExpectRequest(); | 186 ExpectRequest(); |
188 EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, _, _)) | 187 EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, _, _)) |
189 .WillOnce( | 188 .WillOnce(DoAll( |
190 DoAll(Invoke(this, | 189 Invoke(this, &DeviceManagementServiceIntegrationTest::RecordAuthCode), |
191 &DeviceManagementServiceIntegrationTest::RecordAuthCode), | 190 InvokeWithoutArgs(base::MessageLoop::current(), |
192 InvokeWithoutArgs(base::MessageLoop::current(), | 191 &base::MessageLoop::QuitWhenIdle))); |
193 &base::MessageLoop::Quit))); | |
194 scoped_ptr<DeviceManagementRequestJob> job(service_->CreateJob( | 192 scoped_ptr<DeviceManagementRequestJob> job(service_->CreateJob( |
195 DeviceManagementRequestJob::TYPE_API_AUTH_CODE_FETCH, | 193 DeviceManagementRequestJob::TYPE_API_AUTH_CODE_FETCH, |
196 g_browser_process->system_request_context())); | 194 g_browser_process->system_request_context())); |
197 job->SetDMToken(token_); | 195 job->SetDMToken(token_); |
198 job->SetClientID("testid"); | 196 job->SetClientID("testid"); |
199 em::DeviceServiceApiAccessRequest* request = | 197 em::DeviceServiceApiAccessRequest* request = |
200 job->GetRequest()->mutable_service_api_access_request(); | 198 job->GetRequest()->mutable_service_api_access_request(); |
201 request->add_auth_scope("authScope4Test"); | 199 request->add_auth_scope("authScope4Test"); |
202 request->set_oauth2_client_id("oauth2ClientId4Test"); | 200 request->set_oauth2_client_id("oauth2ClientId4Test"); |
203 job->Start(base::Bind(&DeviceManagementServiceIntegrationTest::OnJobDone, | 201 job->Start(base::Bind(&DeviceManagementServiceIntegrationTest::OnJobDone, |
204 base::Unretained(this))); | 202 base::Unretained(this))); |
205 base::MessageLoop::current()->Run(); | 203 base::MessageLoop::current()->Run(); |
206 ASSERT_EQ("fake_auth_code", robot_auth_code_); | 204 ASSERT_EQ("fake_auth_code", robot_auth_code_); |
207 } | 205 } |
208 | 206 |
209 IN_PROC_BROWSER_TEST_P(DeviceManagementServiceIntegrationTest, PolicyFetch) { | 207 IN_PROC_BROWSER_TEST_P(DeviceManagementServiceIntegrationTest, PolicyFetch) { |
210 PerformRegistration(); | 208 PerformRegistration(); |
211 | 209 |
212 ExpectRequest(); | 210 ExpectRequest(); |
213 EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, _, _)) | 211 EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, _, _)) |
214 .WillOnce(InvokeWithoutArgs(base::MessageLoop::current(), | 212 .WillOnce(InvokeWithoutArgs(base::MessageLoop::current(), |
215 &base::MessageLoop::Quit)); | 213 &base::MessageLoop::QuitWhenIdle)); |
216 scoped_ptr<DeviceManagementRequestJob> job( | 214 scoped_ptr<DeviceManagementRequestJob> job( |
217 service_->CreateJob(DeviceManagementRequestJob::TYPE_POLICY_FETCH, | 215 service_->CreateJob(DeviceManagementRequestJob::TYPE_POLICY_FETCH, |
218 g_browser_process->system_request_context())); | 216 g_browser_process->system_request_context())); |
219 job->SetDMToken(token_); | 217 job->SetDMToken(token_); |
220 job->SetClientID("testid"); | 218 job->SetClientID("testid"); |
221 em::DevicePolicyRequest* request = | 219 em::DevicePolicyRequest* request = |
222 job->GetRequest()->mutable_policy_request(); | 220 job->GetRequest()->mutable_policy_request(); |
223 request->add_request()->set_policy_type(dm_protocol::kChromeUserPolicyType); | 221 request->add_request()->set_policy_type(dm_protocol::kChromeUserPolicyType); |
224 job->Start(base::Bind(&DeviceManagementServiceIntegrationTest::OnJobDone, | 222 job->Start(base::Bind(&DeviceManagementServiceIntegrationTest::OnJobDone, |
225 base::Unretained(this))); | 223 base::Unretained(this))); |
226 base::MessageLoop::current()->Run(); | 224 base::MessageLoop::current()->Run(); |
227 } | 225 } |
228 | 226 |
229 IN_PROC_BROWSER_TEST_P(DeviceManagementServiceIntegrationTest, Unregistration) { | 227 IN_PROC_BROWSER_TEST_P(DeviceManagementServiceIntegrationTest, Unregistration) { |
230 PerformRegistration(); | 228 PerformRegistration(); |
231 | 229 |
232 ExpectRequest(); | 230 ExpectRequest(); |
233 EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, _, _)) | 231 EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, _, _)) |
234 .WillOnce(InvokeWithoutArgs(base::MessageLoop::current(), | 232 .WillOnce(InvokeWithoutArgs(base::MessageLoop::current(), |
235 &base::MessageLoop::Quit)); | 233 &base::MessageLoop::QuitWhenIdle)); |
236 scoped_ptr<DeviceManagementRequestJob> job( | 234 scoped_ptr<DeviceManagementRequestJob> job( |
237 service_->CreateJob(DeviceManagementRequestJob::TYPE_UNREGISTRATION, | 235 service_->CreateJob(DeviceManagementRequestJob::TYPE_UNREGISTRATION, |
238 g_browser_process->system_request_context())); | 236 g_browser_process->system_request_context())); |
239 job->SetDMToken(token_); | 237 job->SetDMToken(token_); |
240 job->SetClientID("testid"); | 238 job->SetClientID("testid"); |
241 job->GetRequest()->mutable_unregister_request(); | 239 job->GetRequest()->mutable_unregister_request(); |
242 job->Start(base::Bind(&DeviceManagementServiceIntegrationTest::OnJobDone, | 240 job->Start(base::Bind(&DeviceManagementServiceIntegrationTest::OnJobDone, |
243 base::Unretained(this))); | 241 base::Unretained(this))); |
244 base::MessageLoop::current()->Run(); | 242 base::MessageLoop::current()->Run(); |
245 } | 243 } |
246 | 244 |
247 IN_PROC_BROWSER_TEST_P(DeviceManagementServiceIntegrationTest, AutoEnrollment) { | 245 IN_PROC_BROWSER_TEST_P(DeviceManagementServiceIntegrationTest, AutoEnrollment) { |
248 ExpectRequest(); | 246 ExpectRequest(); |
249 EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, _, _)) | 247 EXPECT_CALL(*this, OnJobDone(DM_STATUS_SUCCESS, _, _)) |
250 .WillOnce(InvokeWithoutArgs(base::MessageLoop::current(), | 248 .WillOnce(InvokeWithoutArgs(base::MessageLoop::current(), |
251 &base::MessageLoop::Quit)); | 249 &base::MessageLoop::QuitWhenIdle)); |
252 scoped_ptr<DeviceManagementRequestJob> job( | 250 scoped_ptr<DeviceManagementRequestJob> job( |
253 service_->CreateJob(DeviceManagementRequestJob::TYPE_AUTO_ENROLLMENT, | 251 service_->CreateJob(DeviceManagementRequestJob::TYPE_AUTO_ENROLLMENT, |
254 g_browser_process->system_request_context())); | 252 g_browser_process->system_request_context())); |
255 job->SetClientID("testid"); | 253 job->SetClientID("testid"); |
256 job->GetRequest()->mutable_auto_enrollment_request()->set_remainder(0); | 254 job->GetRequest()->mutable_auto_enrollment_request()->set_remainder(0); |
257 job->GetRequest()->mutable_auto_enrollment_request()->set_modulus(1); | 255 job->GetRequest()->mutable_auto_enrollment_request()->set_modulus(1); |
258 job->Start(base::Bind(&DeviceManagementServiceIntegrationTest::OnJobDone, | 256 job->Start(base::Bind(&DeviceManagementServiceIntegrationTest::OnJobDone, |
259 base::Unretained(this))); | 257 base::Unretained(this))); |
260 base::MessageLoop::current()->Run(); | 258 base::MessageLoop::current()->Run(); |
261 } | 259 } |
262 | 260 |
263 INSTANTIATE_TEST_CASE_P( | 261 INSTANTIATE_TEST_CASE_P( |
264 DeviceManagementServiceIntegrationTestInstance, | 262 DeviceManagementServiceIntegrationTestInstance, |
265 DeviceManagementServiceIntegrationTest, | 263 DeviceManagementServiceIntegrationTest, |
266 testing::Values(&DeviceManagementServiceIntegrationTest::InitCannedResponse, | 264 testing::Values(&DeviceManagementServiceIntegrationTest::InitCannedResponse, |
267 &DeviceManagementServiceIntegrationTest::InitTestServer)); | 265 &DeviceManagementServiceIntegrationTest::InitTestServer)); |
268 | 266 |
269 } // namespace policy | 267 } // namespace policy |
OLD | NEW |