Index: chrome/browser/chromeos/settings/device_settings_service_unittest.cc |
diff --git a/chrome/browser/chromeos/settings/device_settings_service_unittest.cc b/chrome/browser/chromeos/settings/device_settings_service_unittest.cc |
index 226c1e41aa211fdb88b4f170fb2a1cd325323ea1..85d60c1071c04d0ec74b085db8e7dc89a11f84a9 100644 |
--- a/chrome/browser/chromeos/settings/device_settings_service_unittest.cc |
+++ b/chrome/browser/chromeos/settings/device_settings_service_unittest.cc |
@@ -531,6 +531,42 @@ TEST_F(DeviceSettingsServiceTest, OnTPMTokenReadyForNonOwner) { |
EXPECT_FALSE(is_owner_); |
} |
+TEST_F(DeviceSettingsServiceTest, OwnerPrivateKeyInTPMToken) { |
+ owner_key_util_->Clear(); |
+ |
+ EXPECT_FALSE(device_settings_service_.HasPrivateOwnerKey()); |
+ EXPECT_FALSE(device_settings_service_.GetPublicKey().get()); |
+ EXPECT_EQ(DeviceSettingsService::OWNERSHIP_UNKNOWN, |
+ device_settings_service_.GetOwnershipStatus()); |
+ |
+ const std::string& user_id = device_policy_.policy_data().username(); |
+ owner_key_util_->SetPublicKeyFromPrivateKey(*device_policy_.GetSigningKey()); |
+ InitOwner(user_id, false); |
+ OwnerSettingsServiceChromeOS* service = |
+ OwnerSettingsServiceChromeOSFactory::GetForProfile(profile_.get()); |
+ ASSERT_TRUE(service); |
+ ReloadDeviceSettings(); |
+ |
+ EXPECT_FALSE(device_settings_service_.HasPrivateOwnerKey()); |
+ ASSERT_TRUE(device_settings_service_.GetPublicKey().get()); |
+ ASSERT_TRUE(device_settings_service_.GetPublicKey()->is_loaded()); |
+ std::vector<uint8> key; |
+ ASSERT_TRUE(device_policy_.GetSigningKey()->ExportPublicKey(&key)); |
+ EXPECT_EQ(device_settings_service_.GetPublicKey()->data(), key); |
+ EXPECT_EQ(DeviceSettingsService::OWNERSHIP_TAKEN, |
+ device_settings_service_.GetOwnershipStatus()); |
+ |
+ owner_key_util_->SetPrivateKey(device_policy_.GetSigningKey()); |
+ service->OnTPMTokenReady(true /* is ready */); |
+ FlushDeviceSettings(); |
+ |
+ EXPECT_TRUE(device_settings_service_.HasPrivateOwnerKey()); |
+ ASSERT_TRUE(device_settings_service_.GetPublicKey().get()); |
+ ASSERT_TRUE(device_settings_service_.GetPublicKey()->is_loaded()); |
+ ASSERT_TRUE(device_policy_.GetSigningKey()->ExportPublicKey(&key)); |
+ EXPECT_EQ(device_settings_service_.GetPublicKey()->data(), key); |
+} |
+ |
TEST_F(DeviceSettingsServiceTest, OnTPMTokenReadyForOwner) { |
owner_key_util_->Clear(); |