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 "chrome/browser/policy/cloud/cloud_policy_client.h" | 5 #include "chrome/browser/policy/cloud/cloud_policy_client.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <set> | 8 #include <set> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 16 matching lines...) Expand all Loading... |
27 namespace policy { | 27 namespace policy { |
28 | 28 |
29 namespace { | 29 namespace { |
30 | 30 |
31 const char kClientID[] = "fake-client-id"; | 31 const char kClientID[] = "fake-client-id"; |
32 const char kMachineID[] = "fake-machine-id"; | 32 const char kMachineID[] = "fake-machine-id"; |
33 const char kMachineModel[] = "fake-machine-model"; | 33 const char kMachineModel[] = "fake-machine-model"; |
34 const char kOAuthToken[] = "fake-oauth-token"; | 34 const char kOAuthToken[] = "fake-oauth-token"; |
35 const char kDMToken[] = "fake-dm-token"; | 35 const char kDMToken[] = "fake-dm-token"; |
36 const char kDeviceCertificate[] = "fake-device-certificate"; | 36 const char kDeviceCertificate[] = "fake-device-certificate"; |
| 37 const char kRequisition[] = "fake-requisition"; |
37 | 38 |
38 class MockStatusProvider : public CloudPolicyClient::StatusProvider { | 39 class MockStatusProvider : public CloudPolicyClient::StatusProvider { |
39 public: | 40 public: |
40 MockStatusProvider() {} | 41 MockStatusProvider() {} |
41 virtual ~MockStatusProvider() {} | 42 virtual ~MockStatusProvider() {} |
42 | 43 |
43 MOCK_METHOD1(GetDeviceStatus, bool(em::DeviceStatusReportRequest* status)); | 44 MOCK_METHOD1(GetDeviceStatus, bool(em::DeviceStatusReportRequest* status)); |
44 MOCK_METHOD1(GetSessionStatus, bool(em::SessionStatusReportRequest* status)); | 45 MOCK_METHOD1(GetSessionStatus, bool(em::SessionStatusReportRequest* status)); |
45 MOCK_METHOD0(OnSubmittedSuccessfully, void(void)); | 46 MOCK_METHOD0(OnSubmittedSuccessfully, void(void)); |
46 | 47 |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
213 EXPECT_CALL(status_provider_, OnSubmittedSuccessfully()); | 214 EXPECT_CALL(status_provider_, OnSubmittedSuccessfully()); |
214 client_->FetchPolicy(); | 215 client_->FetchPolicy(); |
215 EXPECT_EQ(DM_STATUS_SUCCESS, client_->status()); | 216 EXPECT_EQ(DM_STATUS_SUCCESS, client_->status()); |
216 CheckPolicyResponse(); | 217 CheckPolicyResponse(); |
217 } | 218 } |
218 | 219 |
219 TEST_F(CloudPolicyClientTest, RegistrationAndPolicyFetch) { | 220 TEST_F(CloudPolicyClientTest, RegistrationAndPolicyFetch) { |
220 ExpectRegistration(kOAuthToken); | 221 ExpectRegistration(kOAuthToken); |
221 EXPECT_CALL(observer_, OnRegistrationStateChanged(_)); | 222 EXPECT_CALL(observer_, OnRegistrationStateChanged(_)); |
222 client_->Register(em::DeviceRegisterRequest::USER, | 223 client_->Register(em::DeviceRegisterRequest::USER, |
223 kOAuthToken, std::string(), false); | 224 kOAuthToken, std::string(), false, std::string()); |
224 EXPECT_TRUE(client_->is_registered()); | 225 EXPECT_TRUE(client_->is_registered()); |
225 EXPECT_FALSE(client_->GetPolicyFor(policy_ns_key_)); | 226 EXPECT_FALSE(client_->GetPolicyFor(policy_ns_key_)); |
226 EXPECT_EQ(DM_STATUS_SUCCESS, client_->status()); | 227 EXPECT_EQ(DM_STATUS_SUCCESS, client_->status()); |
227 | 228 |
228 ExpectPolicyFetch(kDMToken, dm_protocol::kValueUserAffiliationNone); | 229 ExpectPolicyFetch(kDMToken, dm_protocol::kValueUserAffiliationNone); |
229 EXPECT_CALL(observer_, OnPolicyFetched(_)); | 230 EXPECT_CALL(observer_, OnPolicyFetched(_)); |
230 EXPECT_CALL(status_provider_, OnSubmittedSuccessfully()); | 231 EXPECT_CALL(status_provider_, OnSubmittedSuccessfully()); |
231 client_->FetchPolicy(); | 232 client_->FetchPolicy(); |
232 EXPECT_EQ(DM_STATUS_SUCCESS, client_->status()); | 233 EXPECT_EQ(DM_STATUS_SUCCESS, client_->status()); |
233 CheckPolicyResponse(); | 234 CheckPolicyResponse(); |
234 } | 235 } |
235 | 236 |
236 TEST_F(CloudPolicyClientTest, RegistrationParameters) { | 237 TEST_F(CloudPolicyClientTest, RegistrationParameters) { |
237 registration_request_.mutable_register_request()->set_reregister(true); | 238 registration_request_.mutable_register_request()->set_reregister(true); |
238 registration_request_.mutable_register_request()->set_auto_enrolled(true); | 239 registration_request_.mutable_register_request()->set_auto_enrolled(true); |
| 240 registration_request_.mutable_register_request()->set_requisition( |
| 241 kRequisition); |
239 ExpectRegistration(kOAuthToken); | 242 ExpectRegistration(kOAuthToken); |
240 EXPECT_CALL(observer_, OnRegistrationStateChanged(_)); | 243 EXPECT_CALL(observer_, OnRegistrationStateChanged(_)); |
241 client_->Register(em::DeviceRegisterRequest::USER, | 244 client_->Register(em::DeviceRegisterRequest::USER, |
242 kOAuthToken, kClientID, true); | 245 kOAuthToken, kClientID, true, kRequisition); |
243 EXPECT_EQ(kClientID, client_id_); | 246 EXPECT_EQ(kClientID, client_id_); |
244 } | 247 } |
245 | 248 |
246 TEST_F(CloudPolicyClientTest, RegistrationNoToken) { | 249 TEST_F(CloudPolicyClientTest, RegistrationNoToken) { |
247 registration_response_.mutable_register_response()-> | 250 registration_response_.mutable_register_response()-> |
248 clear_device_management_token(); | 251 clear_device_management_token(); |
249 ExpectRegistration(kOAuthToken); | 252 ExpectRegistration(kOAuthToken); |
250 EXPECT_CALL(observer_, OnClientError(_)); | 253 EXPECT_CALL(observer_, OnClientError(_)); |
251 client_->Register(em::DeviceRegisterRequest::USER, | 254 client_->Register(em::DeviceRegisterRequest::USER, |
252 kOAuthToken, std::string(), false); | 255 kOAuthToken, std::string(), false, std::string()); |
253 EXPECT_FALSE(client_->is_registered()); | 256 EXPECT_FALSE(client_->is_registered()); |
254 EXPECT_FALSE(client_->GetPolicyFor(policy_ns_key_)); | 257 EXPECT_FALSE(client_->GetPolicyFor(policy_ns_key_)); |
255 EXPECT_EQ(DM_STATUS_RESPONSE_DECODING_ERROR, client_->status()); | 258 EXPECT_EQ(DM_STATUS_RESPONSE_DECODING_ERROR, client_->status()); |
256 } | 259 } |
257 | 260 |
258 TEST_F(CloudPolicyClientTest, RegistrationFailure) { | 261 TEST_F(CloudPolicyClientTest, RegistrationFailure) { |
259 EXPECT_CALL(service_, | 262 EXPECT_CALL(service_, |
260 CreateJob(DeviceManagementRequestJob::TYPE_REGISTRATION)) | 263 CreateJob(DeviceManagementRequestJob::TYPE_REGISTRATION)) |
261 .WillOnce(service_.FailJob(DM_STATUS_REQUEST_FAILED)); | 264 .WillOnce(service_.FailJob(DM_STATUS_REQUEST_FAILED)); |
262 EXPECT_CALL(service_, StartJob(_, _, _, _, _, _, _)); | 265 EXPECT_CALL(service_, StartJob(_, _, _, _, _, _, _)); |
263 EXPECT_CALL(observer_, OnClientError(_)); | 266 EXPECT_CALL(observer_, OnClientError(_)); |
264 client_->Register(em::DeviceRegisterRequest::USER, | 267 client_->Register(em::DeviceRegisterRequest::USER, |
265 kOAuthToken, std::string(), false); | 268 kOAuthToken, std::string(), false, std::string()); |
266 EXPECT_FALSE(client_->is_registered()); | 269 EXPECT_FALSE(client_->is_registered()); |
267 EXPECT_FALSE(client_->GetPolicyFor(policy_ns_key_)); | 270 EXPECT_FALSE(client_->GetPolicyFor(policy_ns_key_)); |
268 EXPECT_EQ(DM_STATUS_REQUEST_FAILED, client_->status()); | 271 EXPECT_EQ(DM_STATUS_REQUEST_FAILED, client_->status()); |
269 } | 272 } |
270 | 273 |
271 TEST_F(CloudPolicyClientTest, RetryRegistration) { | 274 TEST_F(CloudPolicyClientTest, RetryRegistration) { |
272 // First registration does not set the re-register flag. | 275 // First registration does not set the re-register flag. |
273 EXPECT_FALSE( | 276 EXPECT_FALSE( |
274 registration_request_.mutable_register_request()->has_reregister()); | 277 registration_request_.mutable_register_request()->has_reregister()); |
275 MockDeviceManagementJob* register_job = NULL; | 278 MockDeviceManagementJob* register_job = NULL; |
276 EXPECT_CALL(service_, | 279 EXPECT_CALL(service_, |
277 CreateJob(DeviceManagementRequestJob::TYPE_REGISTRATION)) | 280 CreateJob(DeviceManagementRequestJob::TYPE_REGISTRATION)) |
278 .WillOnce(service_.CreateAsyncJob(®ister_job)); | 281 .WillOnce(service_.CreateAsyncJob(®ister_job)); |
279 EXPECT_CALL(service_, StartJob(dm_protocol::kValueRequestRegister, | 282 EXPECT_CALL(service_, StartJob(dm_protocol::kValueRequestRegister, |
280 "", kOAuthToken, "", "", _, | 283 "", kOAuthToken, "", "", _, |
281 MatchProto(registration_request_))); | 284 MatchProto(registration_request_))); |
282 client_->Register(em::DeviceRegisterRequest::USER, | 285 client_->Register(em::DeviceRegisterRequest::USER, |
283 kOAuthToken, std::string(), false); | 286 kOAuthToken, std::string(), false, std::string()); |
284 EXPECT_FALSE(client_->is_registered()); | 287 EXPECT_FALSE(client_->is_registered()); |
285 Mock::VerifyAndClearExpectations(&service_); | 288 Mock::VerifyAndClearExpectations(&service_); |
286 | 289 |
287 // Simulate a retry callback before proceeding; the re-register flag is set. | 290 // Simulate a retry callback before proceeding; the re-register flag is set. |
288 registration_request_.mutable_register_request()->set_reregister(true); | 291 registration_request_.mutable_register_request()->set_reregister(true); |
289 EXPECT_CALL(service_, StartJob(dm_protocol::kValueRequestRegister, | 292 EXPECT_CALL(service_, StartJob(dm_protocol::kValueRequestRegister, |
290 "", kOAuthToken, "", "", _, | 293 "", kOAuthToken, "", "", _, |
291 MatchProto(registration_request_))); | 294 MatchProto(registration_request_))); |
292 register_job->RetryJob(); | 295 register_job->RetryJob(); |
293 Mock::VerifyAndClearExpectations(&service_); | 296 Mock::VerifyAndClearExpectations(&service_); |
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
522 EXPECT_CALL(service_, StartJob(_, _, _, _, _, _, _)); | 525 EXPECT_CALL(service_, StartJob(_, _, _, _, _, _, _)); |
523 EXPECT_CALL(observer_, OnClientError(_)); | 526 EXPECT_CALL(observer_, OnClientError(_)); |
524 CloudPolicyClient::StatusCallback callback = base::Bind( | 527 CloudPolicyClient::StatusCallback callback = base::Bind( |
525 &MockUploadCertificateObserver::OnUploadComplete, | 528 &MockUploadCertificateObserver::OnUploadComplete, |
526 base::Unretained(&upload_certificate_observer_)); | 529 base::Unretained(&upload_certificate_observer_)); |
527 client_->UploadCertificate(kDeviceCertificate, callback); | 530 client_->UploadCertificate(kDeviceCertificate, callback); |
528 EXPECT_EQ(DM_STATUS_REQUEST_FAILED, client_->status()); | 531 EXPECT_EQ(DM_STATUS_REQUEST_FAILED, client_->status()); |
529 } | 532 } |
530 | 533 |
531 } // namespace policy | 534 } // namespace policy |
OLD | NEW |