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 |