Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(379)

Side by Side Diff: chrome/browser/chromeos/settings/device_settings_service_unittest.cc

Issue 270663002: Implemented profile-aware owner key loading. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixes, rebase. Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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
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
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
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
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/settings/device_settings_service.cc ('k') | chrome/browser/chromeos/settings/mock_owner_key_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698