| 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/settings/device_settings_service.h" | 5 #include "chrome/browser/chromeos/settings/device_settings_service.h" |
| 6 | 6 |
| 7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/bind_helpers.h" | 9 #include "base/bind_helpers.h" |
| 10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 157 device_settings_service_.status()); | 157 device_settings_service_.status()); |
| 158 CheckPolicy(); | 158 CheckPolicy(); |
| 159 } | 159 } |
| 160 | 160 |
| 161 TEST_F(DeviceSettingsServiceTest, SignAndStoreFailure) { | 161 TEST_F(DeviceSettingsServiceTest, SignAndStoreFailure) { |
| 162 ReloadDeviceSettings(); | 162 ReloadDeviceSettings(); |
| 163 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS, | 163 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS, |
| 164 device_settings_service_.status()); | 164 device_settings_service_.status()); |
| 165 | 165 |
| 166 owner_key_util_->SetPrivateKey(device_policy_.GetSigningKey()); | 166 owner_key_util_->SetPrivateKey(device_policy_.GetSigningKey()); |
| 167 device_settings_service_.SetUsername(device_policy_.policy_data().username()); | 167 crypto::ScopedPK11Slot slot; |
| 168 device_settings_service_.InitOwner(device_policy_.policy_data().username(), |
| 169 slot.Pass()); |
| 168 FlushDeviceSettings(); | 170 FlushDeviceSettings(); |
| 169 | 171 |
| 170 scoped_ptr<em::ChromeDeviceSettingsProto> new_device_settings( | 172 scoped_ptr<em::ChromeDeviceSettingsProto> new_device_settings( |
| 171 new em::ChromeDeviceSettingsProto(device_policy_.payload())); | 173 new em::ChromeDeviceSettingsProto(device_policy_.payload())); |
| 172 new_device_settings->mutable_device_policy_refresh_rate()-> | 174 new_device_settings->mutable_device_policy_refresh_rate()-> |
| 173 set_device_policy_refresh_rate(300); | 175 set_device_policy_refresh_rate(300); |
| 174 device_settings_test_helper_.set_store_result(false); | 176 device_settings_test_helper_.set_store_result(false); |
| 175 device_settings_service_.SignAndStore( | 177 device_settings_service_.SignAndStore( |
| 176 new_device_settings.Pass(), | 178 new_device_settings.Pass(), |
| 177 base::Bind(&DeviceSettingsServiceTest::SetOperationCompleted, | 179 base::Bind(&DeviceSettingsServiceTest::SetOperationCompleted, |
| 178 base::Unretained(this))); | 180 base::Unretained(this))); |
| 179 FlushDeviceSettings(); | 181 FlushDeviceSettings(); |
| 180 EXPECT_TRUE(operation_completed_); | 182 EXPECT_TRUE(operation_completed_); |
| 181 EXPECT_EQ(DeviceSettingsService::STORE_OPERATION_FAILED, | 183 EXPECT_EQ(DeviceSettingsService::STORE_OPERATION_FAILED, |
| 182 device_settings_service_.status()); | 184 device_settings_service_.status()); |
| 183 CheckPolicy(); | 185 CheckPolicy(); |
| 184 } | 186 } |
| 185 | 187 |
| 186 TEST_F(DeviceSettingsServiceTest, SignAndStoreSuccess) { | 188 TEST_F(DeviceSettingsServiceTest, SignAndStoreSuccess) { |
| 187 const base::Time before(base::Time::Now()); | 189 const base::Time before(base::Time::Now()); |
| 188 ReloadDeviceSettings(); | 190 ReloadDeviceSettings(); |
| 189 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS, | 191 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS, |
| 190 device_settings_service_.status()); | 192 device_settings_service_.status()); |
| 191 | 193 |
| 192 owner_key_util_->SetPrivateKey(device_policy_.GetSigningKey()); | 194 owner_key_util_->SetPrivateKey(device_policy_.GetSigningKey()); |
| 193 device_settings_service_.SetUsername(device_policy_.policy_data().username()); | 195 crypto::ScopedPK11Slot slot; |
| 196 device_settings_service_.InitOwner(device_policy_.policy_data().username(), |
| 197 slot.Pass()); |
| 194 FlushDeviceSettings(); | 198 FlushDeviceSettings(); |
| 195 | 199 |
| 196 device_policy_.payload().mutable_device_policy_refresh_rate()-> | 200 device_policy_.payload().mutable_device_policy_refresh_rate()-> |
| 197 set_device_policy_refresh_rate(300); | 201 set_device_policy_refresh_rate(300); |
| 198 device_policy_.Build(); | 202 device_policy_.Build(); |
| 199 device_settings_service_.SignAndStore( | 203 device_settings_service_.SignAndStore( |
| 200 scoped_ptr<em::ChromeDeviceSettingsProto>( | 204 scoped_ptr<em::ChromeDeviceSettingsProto>( |
| 201 new em::ChromeDeviceSettingsProto(device_policy_.payload())), | 205 new em::ChromeDeviceSettingsProto(device_policy_.payload())), |
| 202 base::Bind(&DeviceSettingsServiceTest::SetOperationCompleted, | 206 base::Bind(&DeviceSettingsServiceTest::SetOperationCompleted, |
| 203 base::Unretained(this))); | 207 base::Unretained(this))); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 222 EXPECT_EQ(device_settings_service_.GetUsername(), | 226 EXPECT_EQ(device_settings_service_.GetUsername(), |
| 223 policy_data->username()); | 227 policy_data->username()); |
| 224 } | 228 } |
| 225 | 229 |
| 226 TEST_F(DeviceSettingsServiceTest, SetManagementSettingsModeTransition) { | 230 TEST_F(DeviceSettingsServiceTest, SetManagementSettingsModeTransition) { |
| 227 ReloadDeviceSettings(); | 231 ReloadDeviceSettings(); |
| 228 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS, | 232 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS, |
| 229 device_settings_service_.status()); | 233 device_settings_service_.status()); |
| 230 | 234 |
| 231 owner_key_util_->SetPrivateKey(device_policy_.GetSigningKey()); | 235 owner_key_util_->SetPrivateKey(device_policy_.GetSigningKey()); |
| 232 device_settings_service_.SetUsername(device_policy_.policy_data().username()); | 236 crypto::ScopedPK11Slot slot; |
| 237 device_settings_service_.InitOwner(device_policy_.policy_data().username(), |
| 238 slot.Pass()); |
| 233 FlushDeviceSettings(); | 239 FlushDeviceSettings(); |
| 234 | 240 |
| 235 // The initial management mode should be NOT_MANAGED. | 241 // The initial management mode should be NOT_MANAGED. |
| 236 EXPECT_EQ(em::PolicyData::NOT_MANAGED, | 242 EXPECT_EQ(em::PolicyData::NOT_MANAGED, |
| 237 device_settings_service_.policy_data()->management_mode()); | 243 device_settings_service_.policy_data()->management_mode()); |
| 238 | 244 |
| 239 // NOT_MANAGED -> CONSUMER_MANAGED: Okay. | 245 // NOT_MANAGED -> CONSUMER_MANAGED: Okay. |
| 240 device_settings_service_.SetManagementSettings( | 246 device_settings_service_.SetManagementSettings( |
| 241 em::PolicyData::CONSUMER_MANAGED, | 247 em::PolicyData::CONSUMER_MANAGED, |
| 242 "fake_request_token", | 248 "fake_request_token", |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 336 device_settings_service_.policy_data()->management_mode()); | 342 device_settings_service_.policy_data()->management_mode()); |
| 337 | 343 |
| 338 } | 344 } |
| 339 | 345 |
| 340 TEST_F(DeviceSettingsServiceTest, SetManagementSettingsSuccess) { | 346 TEST_F(DeviceSettingsServiceTest, SetManagementSettingsSuccess) { |
| 341 ReloadDeviceSettings(); | 347 ReloadDeviceSettings(); |
| 342 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS, | 348 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS, |
| 343 device_settings_service_.status()); | 349 device_settings_service_.status()); |
| 344 | 350 |
| 345 owner_key_util_->SetPrivateKey(device_policy_.GetSigningKey()); | 351 owner_key_util_->SetPrivateKey(device_policy_.GetSigningKey()); |
| 346 device_settings_service_.SetUsername(device_policy_.policy_data().username()); | 352 crypto::ScopedPK11Slot slot; |
| 353 device_settings_service_.InitOwner(device_policy_.policy_data().username(), |
| 354 slot.Pass()); |
| 347 FlushDeviceSettings(); | 355 FlushDeviceSettings(); |
| 348 | 356 |
| 349 device_settings_service_.SetManagementSettings( | 357 device_settings_service_.SetManagementSettings( |
| 350 em::PolicyData::CONSUMER_MANAGED, | 358 em::PolicyData::CONSUMER_MANAGED, |
| 351 "fake_request_token", | 359 "fake_request_token", |
| 352 "fake_device_id", | 360 "fake_device_id", |
| 353 base::Bind(&DeviceSettingsServiceTest::SetOperationCompleted, | 361 base::Bind(&DeviceSettingsServiceTest::SetOperationCompleted, |
| 354 base::Unretained(this))); | 362 base::Unretained(this))); |
| 355 FlushDeviceSettings(); | 363 FlushDeviceSettings(); |
| 356 | 364 |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 463 ASSERT_TRUE(device_settings_service_.GetOwnerKey()->public_key()); | 471 ASSERT_TRUE(device_settings_service_.GetOwnerKey()->public_key()); |
| 464 std::vector<uint8> key; | 472 std::vector<uint8> key; |
| 465 ASSERT_TRUE(device_policy_.GetSigningKey()->ExportPublicKey(&key)); | 473 ASSERT_TRUE(device_policy_.GetSigningKey()->ExportPublicKey(&key)); |
| 466 EXPECT_EQ(*device_settings_service_.GetOwnerKey()->public_key(), key); | 474 EXPECT_EQ(*device_settings_service_.GetOwnerKey()->public_key(), key); |
| 467 EXPECT_FALSE(device_settings_service_.GetOwnerKey()->private_key()); | 475 EXPECT_FALSE(device_settings_service_.GetOwnerKey()->private_key()); |
| 468 EXPECT_EQ(DeviceSettingsService::OWNERSHIP_TAKEN, | 476 EXPECT_EQ(DeviceSettingsService::OWNERSHIP_TAKEN, |
| 469 device_settings_service_.GetOwnershipStatus()); | 477 device_settings_service_.GetOwnershipStatus()); |
| 470 EXPECT_EQ(DeviceSettingsService::OWNERSHIP_TAKEN, ownership_status_); | 478 EXPECT_EQ(DeviceSettingsService::OWNERSHIP_TAKEN, ownership_status_); |
| 471 | 479 |
| 472 owner_key_util_->SetPrivateKey(device_policy_.GetSigningKey()); | 480 owner_key_util_->SetPrivateKey(device_policy_.GetSigningKey()); |
| 473 device_settings_service_.SetUsername(device_policy_.policy_data().username()); | 481 crypto::ScopedPK11Slot slot; |
| 482 device_settings_service_.InitOwner(device_policy_.policy_data().username(), |
| 483 slot.Pass()); |
| 474 device_settings_service_.GetOwnershipStatusAsync( | 484 device_settings_service_.GetOwnershipStatusAsync( |
| 475 base::Bind(&DeviceSettingsServiceTest::SetOwnershipStatus, | 485 base::Bind(&DeviceSettingsServiceTest::SetOwnershipStatus, |
| 476 base::Unretained(this))); | 486 base::Unretained(this))); |
| 477 FlushDeviceSettings(); | 487 FlushDeviceSettings(); |
| 478 EXPECT_TRUE(device_settings_service_.HasPrivateOwnerKey()); | 488 EXPECT_TRUE(device_settings_service_.HasPrivateOwnerKey()); |
| 479 ASSERT_TRUE(device_settings_service_.GetOwnerKey().get()); | 489 ASSERT_TRUE(device_settings_service_.GetOwnerKey().get()); |
| 480 ASSERT_TRUE(device_settings_service_.GetOwnerKey()->public_key()); | 490 ASSERT_TRUE(device_settings_service_.GetOwnerKey()->public_key()); |
| 481 ASSERT_TRUE(device_policy_.GetSigningKey()->ExportPublicKey(&key)); | 491 ASSERT_TRUE(device_policy_.GetSigningKey()->ExportPublicKey(&key)); |
| 482 EXPECT_EQ(*device_settings_service_.GetOwnerKey()->public_key(), key); | 492 EXPECT_EQ(*device_settings_service_.GetOwnerKey()->public_key(), key); |
| 483 EXPECT_TRUE(device_settings_service_.GetOwnerKey()->private_key()); | 493 EXPECT_TRUE(device_settings_service_.GetOwnerKey()->private_key()); |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 547 ASSERT_TRUE(device_settings_service_.GetOwnerKey()->public_key()); | 557 ASSERT_TRUE(device_settings_service_.GetOwnerKey()->public_key()); |
| 548 std::vector<uint8> key; | 558 std::vector<uint8> key; |
| 549 ASSERT_TRUE(device_policy_.GetSigningKey()->ExportPublicKey(&key)); | 559 ASSERT_TRUE(device_policy_.GetSigningKey()->ExportPublicKey(&key)); |
| 550 EXPECT_EQ(*device_settings_service_.GetOwnerKey()->public_key(), key); | 560 EXPECT_EQ(*device_settings_service_.GetOwnerKey()->public_key(), key); |
| 551 EXPECT_FALSE(device_settings_service_.GetOwnerKey()->private_key()); | 561 EXPECT_FALSE(device_settings_service_.GetOwnerKey()->private_key()); |
| 552 EXPECT_EQ(DeviceSettingsService::OWNERSHIP_TAKEN, | 562 EXPECT_EQ(DeviceSettingsService::OWNERSHIP_TAKEN, |
| 553 device_settings_service_.GetOwnershipStatus()); | 563 device_settings_service_.GetOwnershipStatus()); |
| 554 EXPECT_FALSE(is_owner_set_); | 564 EXPECT_FALSE(is_owner_set_); |
| 555 | 565 |
| 556 owner_key_util_->SetPrivateKey(device_policy_.GetSigningKey()); | 566 owner_key_util_->SetPrivateKey(device_policy_.GetSigningKey()); |
| 557 device_settings_service_.SetUsername(device_policy_.policy_data().username()); | 567 crypto::ScopedPK11Slot slot; |
| 568 device_settings_service_.InitOwner(device_policy_.policy_data().username(), |
| 569 slot.Pass()); |
| 558 device_settings_service_.OnTPMTokenReady(); | 570 device_settings_service_.OnTPMTokenReady(); |
| 559 FlushDeviceSettings(); | 571 FlushDeviceSettings(); |
| 560 | 572 |
| 561 EXPECT_TRUE(device_settings_service_.HasPrivateOwnerKey()); | 573 EXPECT_TRUE(device_settings_service_.HasPrivateOwnerKey()); |
| 562 ASSERT_TRUE(device_settings_service_.GetOwnerKey().get()); | 574 ASSERT_TRUE(device_settings_service_.GetOwnerKey().get()); |
| 563 ASSERT_TRUE(device_settings_service_.GetOwnerKey()->public_key()); | 575 ASSERT_TRUE(device_settings_service_.GetOwnerKey()->public_key()); |
| 564 ASSERT_TRUE(device_policy_.GetSigningKey()->ExportPublicKey(&key)); | 576 ASSERT_TRUE(device_policy_.GetSigningKey()->ExportPublicKey(&key)); |
| 565 EXPECT_EQ(*device_settings_service_.GetOwnerKey()->public_key(), key); | 577 EXPECT_EQ(*device_settings_service_.GetOwnerKey()->public_key(), key); |
| 566 EXPECT_TRUE(device_settings_service_.GetOwnerKey()->private_key()); | 578 EXPECT_TRUE(device_settings_service_.GetOwnerKey()->private_key()); |
| 567 EXPECT_EQ(DeviceSettingsService::OWNERSHIP_TAKEN, | 579 EXPECT_EQ(DeviceSettingsService::OWNERSHIP_TAKEN, |
| 568 device_settings_service_.GetOwnershipStatus()); | 580 device_settings_service_.GetOwnershipStatus()); |
| 569 EXPECT_TRUE(is_owner_set_); | 581 EXPECT_TRUE(is_owner_set_); |
| 570 EXPECT_TRUE(is_owner_); | 582 EXPECT_TRUE(is_owner_); |
| 571 } | 583 } |
| 572 | 584 |
| 573 TEST_F(DeviceSettingsServiceTest, IsCurrentUserOwnerAsyncWithLoadedCerts) { | 585 TEST_F(DeviceSettingsServiceTest, IsCurrentUserOwnerAsyncWithLoadedCerts) { |
| 574 owner_key_util_->Clear(); | 586 owner_key_util_->Clear(); |
| 575 | 587 |
| 576 EXPECT_FALSE(device_settings_service_.HasPrivateOwnerKey()); | 588 EXPECT_FALSE(device_settings_service_.HasPrivateOwnerKey()); |
| 577 EXPECT_FALSE(device_settings_service_.GetOwnerKey().get()); | 589 EXPECT_FALSE(device_settings_service_.GetOwnerKey().get()); |
| 578 EXPECT_EQ(DeviceSettingsService::OWNERSHIP_UNKNOWN, | 590 EXPECT_EQ(DeviceSettingsService::OWNERSHIP_UNKNOWN, |
| 579 device_settings_service_.GetOwnershipStatus()); | 591 device_settings_service_.GetOwnershipStatus()); |
| 580 | 592 |
| 581 owner_key_util_->SetPublicKeyFromPrivateKey(*device_policy_.GetSigningKey()); | 593 owner_key_util_->SetPublicKeyFromPrivateKey(*device_policy_.GetSigningKey()); |
| 582 owner_key_util_->SetPrivateKey(device_policy_.GetSigningKey()); | 594 owner_key_util_->SetPrivateKey(device_policy_.GetSigningKey()); |
| 583 device_settings_service_.SetUsername(device_policy_.policy_data().username()); | 595 crypto::ScopedPK11Slot slot; |
| 596 device_settings_service_.InitOwner(device_policy_.policy_data().username(), |
| 597 slot.Pass()); |
| 584 ReloadDeviceSettings(); | 598 ReloadDeviceSettings(); |
| 585 | 599 |
| 586 device_settings_service_.OnTPMTokenReady(); | 600 device_settings_service_.OnTPMTokenReady(); |
| 587 FlushDeviceSettings(); | 601 FlushDeviceSettings(); |
| 588 | 602 |
| 589 EXPECT_TRUE(device_settings_service_.HasPrivateOwnerKey()); | 603 EXPECT_TRUE(device_settings_service_.HasPrivateOwnerKey()); |
| 590 ASSERT_TRUE(device_settings_service_.GetOwnerKey().get()); | 604 ASSERT_TRUE(device_settings_service_.GetOwnerKey().get()); |
| 591 ASSERT_TRUE(device_settings_service_.GetOwnerKey()->public_key()); | 605 ASSERT_TRUE(device_settings_service_.GetOwnerKey()->public_key()); |
| 592 std::vector<uint8> key; | 606 std::vector<uint8> key; |
| 593 ASSERT_TRUE(device_policy_.GetSigningKey()->ExportPublicKey(&key)); | 607 ASSERT_TRUE(device_policy_.GetSigningKey()->ExportPublicKey(&key)); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 640 EXPECT_CALL(observer_, OwnershipStatusChanged()).Times(0); | 654 EXPECT_CALL(observer_, OwnershipStatusChanged()).Times(0); |
| 641 EXPECT_CALL(observer_, DeviceSettingsUpdated()).Times(1); | 655 EXPECT_CALL(observer_, DeviceSettingsUpdated()).Times(1); |
| 642 device_settings_service_.PropertyChangeComplete(true); | 656 device_settings_service_.PropertyChangeComplete(true); |
| 643 FlushDeviceSettings(); | 657 FlushDeviceSettings(); |
| 644 Mock::VerifyAndClearExpectations(&observer_); | 658 Mock::VerifyAndClearExpectations(&observer_); |
| 645 | 659 |
| 646 device_settings_service_.RemoveObserver(&observer_); | 660 device_settings_service_.RemoveObserver(&observer_); |
| 647 } | 661 } |
| 648 | 662 |
| 649 } // namespace chromeos | 663 } // namespace chromeos |
| OLD | NEW |