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/chromeos/login/signed_settings.h" | 5 #include "chrome/browser/chromeos/login/signed_settings.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
9 #include "base/values.h" | 9 #include "base/values.h" |
10 #include "chrome/browser/chromeos/cros/cros_library.h" | 10 #include "chrome/browser/chromeos/cros/cros_library.h" |
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
227 s->Execute(); | 227 s->Execute(); |
228 message_loop_.RunAllPending(); | 228 message_loop_.RunAllPending(); |
229 | 229 |
230 // Fake out a successful signing. | 230 // Fake out a successful signing. |
231 std::string signed_serialized; | 231 std::string signed_serialized; |
232 em::PolicyFetchResponse signed_policy = BuildProto(data_serialized, | 232 em::PolicyFetchResponse signed_policy = BuildProto(data_serialized, |
233 fake_signature_, | 233 fake_signature_, |
234 &signed_serialized); | 234 &signed_serialized); |
235 MockSessionManagerClient* client = | 235 MockSessionManagerClient* client = |
236 mock_dbus_thread_manager_->mock_session_manager_client(); | 236 mock_dbus_thread_manager_->mock_session_manager_client(); |
237 EXPECT_CALL(*client, StorePolicy(signed_serialized, _)) | 237 EXPECT_CALL(*client, StoreDevicePolicy(signed_serialized, _)) |
238 .WillOnce(Store(true)) | 238 .WillOnce(Store(true)) |
239 .RetiresOnSaturation(); | 239 .RetiresOnSaturation(); |
240 s->OnKeyOpComplete(OwnerManager::SUCCESS, fake_value_signature_); | 240 s->OnKeyOpComplete(OwnerManager::SUCCESS, fake_value_signature_); |
241 message_loop_.RunAllPending(); | 241 message_loop_.RunAllPending(); |
242 } | 242 } |
243 | 243 |
244 TEST_F(SignedSettingsTest, StoreSignedPolicy) { | 244 TEST_F(SignedSettingsTest, StoreSignedPolicy) { |
245 NormalDelegate<bool> d(true); | 245 NormalDelegate<bool> d(true); |
246 d.expect_success(); | 246 d.expect_success(); |
247 | 247 |
248 em::PolicyData in_pol = BuildPolicyData(std::vector<std::string>()); | 248 em::PolicyData in_pol = BuildPolicyData(std::vector<std::string>()); |
249 std::string serialized = in_pol.SerializeAsString(); | 249 std::string serialized = in_pol.SerializeAsString(); |
250 std::string signed_serialized; | 250 std::string signed_serialized; |
251 em::PolicyFetchResponse signed_policy = BuildProto(serialized, | 251 em::PolicyFetchResponse signed_policy = BuildProto(serialized, |
252 fake_signature_, | 252 fake_signature_, |
253 &signed_serialized); | 253 &signed_serialized); |
254 scoped_refptr<SignedSettings> s( | 254 scoped_refptr<SignedSettings> s( |
255 SignedSettings::CreateStorePolicyOp(&signed_policy, &d)); | 255 SignedSettings::CreateStorePolicyOp(&signed_policy, &d)); |
256 MockSessionManagerClient* client = | 256 MockSessionManagerClient* client = |
257 mock_dbus_thread_manager_->mock_session_manager_client(); | 257 mock_dbus_thread_manager_->mock_session_manager_client(); |
258 EXPECT_CALL(*client, StorePolicy(signed_serialized, _)) | 258 EXPECT_CALL(*client, StoreDevicePolicy(signed_serialized, _)) |
259 .WillOnce(Store(true)) | 259 .WillOnce(Store(true)) |
260 .RetiresOnSaturation(); | 260 .RetiresOnSaturation(); |
261 | 261 |
262 mock_service(s.get(), &m_); | 262 mock_service(s.get(), &m_); |
263 em::PolicyData out_pol; | 263 em::PolicyData out_pol; |
264 | 264 |
265 s->Execute(); | 265 s->Execute(); |
266 message_loop_.RunAllPending(); | 266 message_loop_.RunAllPending(); |
267 } | 267 } |
268 | 268 |
(...skipping 26 matching lines...) Expand all Loading... |
295 std::string signed_serialized; | 295 std::string signed_serialized; |
296 em::PolicyFetchResponse signed_policy = BuildProto(serialized, | 296 em::PolicyFetchResponse signed_policy = BuildProto(serialized, |
297 fake_signature_, | 297 fake_signature_, |
298 &signed_serialized); | 298 &signed_serialized); |
299 ProtoDelegate d(signed_policy); | 299 ProtoDelegate d(signed_policy); |
300 d.expect_success(); | 300 d.expect_success(); |
301 scoped_refptr<SignedSettings> s(SignedSettings::CreateRetrievePolicyOp(&d)); | 301 scoped_refptr<SignedSettings> s(SignedSettings::CreateRetrievePolicyOp(&d)); |
302 | 302 |
303 MockSessionManagerClient* client = | 303 MockSessionManagerClient* client = |
304 mock_dbus_thread_manager_->mock_session_manager_client(); | 304 mock_dbus_thread_manager_->mock_session_manager_client(); |
305 EXPECT_CALL(*client, RetrievePolicy(_)) | 305 EXPECT_CALL(*client, RetrieveDevicePolicy(_)) |
306 .WillOnce(Retrieve(signed_serialized)) | 306 .WillOnce(Retrieve(signed_serialized)) |
307 .RetiresOnSaturation(); | 307 .RetiresOnSaturation(); |
308 | 308 |
309 mock_service(s.get(), &m_); | 309 mock_service(s.get(), &m_); |
310 EXPECT_CALL(m_, StartVerifyAttempt(serialized, fake_value_signature_, _)) | 310 EXPECT_CALL(m_, StartVerifyAttempt(serialized, fake_value_signature_, _)) |
311 .Times(1); | 311 .Times(1); |
312 em::PolicyData out_pol; | 312 em::PolicyData out_pol; |
313 | 313 |
314 s->Execute(); | 314 s->Execute(); |
315 message_loop_.RunAllPending(); | 315 message_loop_.RunAllPending(); |
316 | 316 |
317 s->OnKeyOpComplete(OwnerManager::SUCCESS, std::vector<uint8>()); | 317 s->OnKeyOpComplete(OwnerManager::SUCCESS, std::vector<uint8>()); |
318 message_loop_.RunAllPending(); | 318 message_loop_.RunAllPending(); |
319 } | 319 } |
320 | 320 |
321 TEST_F(SignedSettingsTest, RetrieveNullPolicy) { | 321 TEST_F(SignedSettingsTest, RetrieveNullPolicy) { |
322 em::PolicyFetchResponse policy; | 322 em::PolicyFetchResponse policy; |
323 ProtoDelegate d(policy); | 323 ProtoDelegate d(policy); |
324 d.expect_failure(SignedSettings::NOT_FOUND); | 324 d.expect_failure(SignedSettings::NOT_FOUND); |
325 scoped_refptr<SignedSettings> s(SignedSettings::CreateRetrievePolicyOp(&d)); | 325 scoped_refptr<SignedSettings> s(SignedSettings::CreateRetrievePolicyOp(&d)); |
326 | 326 |
327 MockSessionManagerClient* client = | 327 MockSessionManagerClient* client = |
328 mock_dbus_thread_manager_->mock_session_manager_client(); | 328 mock_dbus_thread_manager_->mock_session_manager_client(); |
329 EXPECT_CALL(*client, RetrievePolicy(_)) | 329 EXPECT_CALL(*client, RetrieveDevicePolicy(_)) |
330 .WillOnce(Retrieve("")) | 330 .WillOnce(Retrieve("")) |
331 .RetiresOnSaturation(); | 331 .RetiresOnSaturation(); |
332 | 332 |
333 s->Execute(); | 333 s->Execute(); |
334 message_loop_.RunAllPending(); | 334 message_loop_.RunAllPending(); |
335 } | 335 } |
336 | 336 |
337 TEST_F(SignedSettingsTest, RetrieveEmptyPolicy) { | 337 TEST_F(SignedSettingsTest, RetrieveEmptyPolicy) { |
338 std::string serialized; | 338 std::string serialized; |
339 em::PolicyFetchResponse policy = BuildProto("", "", &serialized); | 339 em::PolicyFetchResponse policy = BuildProto("", "", &serialized); |
340 ProtoDelegate d(policy); | 340 ProtoDelegate d(policy); |
341 d.expect_failure(SignedSettings::NOT_FOUND); | 341 d.expect_failure(SignedSettings::NOT_FOUND); |
342 scoped_refptr<SignedSettings> s(SignedSettings::CreateRetrievePolicyOp(&d)); | 342 scoped_refptr<SignedSettings> s(SignedSettings::CreateRetrievePolicyOp(&d)); |
343 | 343 |
344 MockSessionManagerClient* client = | 344 MockSessionManagerClient* client = |
345 mock_dbus_thread_manager_->mock_session_manager_client(); | 345 mock_dbus_thread_manager_->mock_session_manager_client(); |
346 EXPECT_CALL(*client, RetrievePolicy(_)) | 346 EXPECT_CALL(*client, RetrieveDevicePolicy(_)) |
347 .WillOnce(Retrieve("")) | 347 .WillOnce(Retrieve("")) |
348 .RetiresOnSaturation(); | 348 .RetiresOnSaturation(); |
349 | 349 |
350 s->Execute(); | 350 s->Execute(); |
351 message_loop_.RunAllPending(); | 351 message_loop_.RunAllPending(); |
352 } | 352 } |
353 | 353 |
354 TEST_F(SignedSettingsTest, RetrieveUnsignedPolicy) { | 354 TEST_F(SignedSettingsTest, RetrieveUnsignedPolicy) { |
355 std::string serialized; | 355 std::string serialized; |
356 em::PolicyFetchResponse policy = BuildProto(fake_prop_, | 356 em::PolicyFetchResponse policy = BuildProto(fake_prop_, |
357 std::string(), | 357 std::string(), |
358 &serialized); | 358 &serialized); |
359 ProtoDelegate d(policy); | 359 ProtoDelegate d(policy); |
360 d.expect_failure(SignedSettings::BAD_SIGNATURE); | 360 d.expect_failure(SignedSettings::BAD_SIGNATURE); |
361 scoped_refptr<SignedSettings> s(SignedSettings::CreateRetrievePolicyOp(&d)); | 361 scoped_refptr<SignedSettings> s(SignedSettings::CreateRetrievePolicyOp(&d)); |
362 | 362 |
363 MockSessionManagerClient* client = | 363 MockSessionManagerClient* client = |
364 mock_dbus_thread_manager_->mock_session_manager_client(); | 364 mock_dbus_thread_manager_->mock_session_manager_client(); |
365 EXPECT_CALL(*client, RetrievePolicy(_)) | 365 EXPECT_CALL(*client, RetrieveDevicePolicy(_)) |
366 .WillOnce(Retrieve(serialized)) | 366 .WillOnce(Retrieve(serialized)) |
367 .RetiresOnSaturation(); | 367 .RetiresOnSaturation(); |
368 | 368 |
369 s->Execute(); | 369 s->Execute(); |
370 message_loop_.RunAllPending(); | 370 message_loop_.RunAllPending(); |
371 } | 371 } |
372 | 372 |
373 TEST_F(SignedSettingsTest, RetrieveMalsignedPolicy) { | 373 TEST_F(SignedSettingsTest, RetrieveMalsignedPolicy) { |
374 std::string signed_serialized; | 374 std::string signed_serialized; |
375 em::PolicyFetchResponse signed_policy = BuildProto(fake_prop_, | 375 em::PolicyFetchResponse signed_policy = BuildProto(fake_prop_, |
376 fake_signature_, | 376 fake_signature_, |
377 &signed_serialized); | 377 &signed_serialized); |
378 ProtoDelegate d(signed_policy); | 378 ProtoDelegate d(signed_policy); |
379 d.expect_failure(SignedSettings::BAD_SIGNATURE); | 379 d.expect_failure(SignedSettings::BAD_SIGNATURE); |
380 scoped_refptr<SignedSettings> s(SignedSettings::CreateRetrievePolicyOp(&d)); | 380 scoped_refptr<SignedSettings> s(SignedSettings::CreateRetrievePolicyOp(&d)); |
381 | 381 |
382 MockSessionManagerClient* client = | 382 MockSessionManagerClient* client = |
383 mock_dbus_thread_manager_->mock_session_manager_client(); | 383 mock_dbus_thread_manager_->mock_session_manager_client(); |
384 EXPECT_CALL(*client, RetrievePolicy(_)) | 384 EXPECT_CALL(*client, RetrieveDevicePolicy(_)) |
385 .WillOnce(Retrieve(signed_serialized)) | 385 .WillOnce(Retrieve(signed_serialized)) |
386 .RetiresOnSaturation(); | 386 .RetiresOnSaturation(); |
387 | 387 |
388 mock_service(s.get(), &m_); | 388 mock_service(s.get(), &m_); |
389 EXPECT_CALL(m_, StartVerifyAttempt(fake_prop_, fake_value_signature_, _)) | 389 EXPECT_CALL(m_, StartVerifyAttempt(fake_prop_, fake_value_signature_, _)) |
390 .Times(1); | 390 .Times(1); |
391 | 391 |
392 s->Execute(); | 392 s->Execute(); |
393 message_loop_.RunAllPending(); | 393 message_loop_.RunAllPending(); |
394 | 394 |
395 s->OnKeyOpComplete(OwnerManager::OPERATION_FAILED, std::vector<uint8>()); | 395 s->OnKeyOpComplete(OwnerManager::OPERATION_FAILED, std::vector<uint8>()); |
396 message_loop_.RunAllPending(); | 396 message_loop_.RunAllPending(); |
397 } | 397 } |
398 | 398 |
399 } // namespace chromeos | 399 } // namespace chromeos |
OLD | NEW |