| 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_provider.h" | 5 #include "chrome/browser/chromeos/settings/device_settings_provider.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/callback.h" | 10 #include "base/callback.h" |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 42 user_data_dir_override_(chrome::DIR_USER_DATA) {} | 42 user_data_dir_override_(chrome::DIR_USER_DATA) {} |
| 43 | 43 |
| 44 virtual void SetUp() OVERRIDE { | 44 virtual void SetUp() OVERRIDE { |
| 45 DeviceSettingsTestBase::SetUp(); | 45 DeviceSettingsTestBase::SetUp(); |
| 46 | 46 |
| 47 EXPECT_CALL(*this, SettingChanged(_)).Times(AnyNumber()); | 47 EXPECT_CALL(*this, SettingChanged(_)).Times(AnyNumber()); |
| 48 provider_.reset( | 48 provider_.reset( |
| 49 new DeviceSettingsProvider( | 49 new DeviceSettingsProvider( |
| 50 base::Bind(&DeviceSettingsProviderTest::SettingChanged, | 50 base::Bind(&DeviceSettingsProviderTest::SettingChanged, |
| 51 base::Unretained(this)), | 51 base::Unretained(this)), |
| 52 &device_settings_service_)); | 52 device_settings_service_)); |
| 53 Mock::VerifyAndClearExpectations(this); | 53 Mock::VerifyAndClearExpectations(this); |
| 54 } | 54 } |
| 55 | 55 |
| 56 virtual void TearDown() OVERRIDE { | 56 virtual void TearDown() OVERRIDE { |
| 57 DeviceSettingsTestBase::TearDown(); | 57 DeviceSettingsTestBase::TearDown(); |
| 58 } | 58 } |
| 59 | 59 |
| 60 ScopedStubCrosEnabler stub_cros_enabler_; | 60 ScopedStubCrosEnabler stub_cros_enabler_; |
| 61 | 61 |
| 62 ScopedTestingLocalState local_state_; | 62 ScopedTestingLocalState local_state_; |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 134 // Verify the change has not been applied. | 134 // Verify the change has not been applied. |
| 135 const base::Value* saved_value = provider_->Get(kStatsReportingPref); | 135 const base::Value* saved_value = provider_->Get(kStatsReportingPref); |
| 136 ASSERT_TRUE(saved_value); | 136 ASSERT_TRUE(saved_value); |
| 137 bool bool_value; | 137 bool bool_value; |
| 138 EXPECT_TRUE(saved_value->GetAsBoolean(&bool_value)); | 138 EXPECT_TRUE(saved_value->GetAsBoolean(&bool_value)); |
| 139 EXPECT_FALSE(bool_value); | 139 EXPECT_FALSE(bool_value); |
| 140 } | 140 } |
| 141 | 141 |
| 142 TEST_F(DeviceSettingsProviderTest, SetPrefSucceed) { | 142 TEST_F(DeviceSettingsProviderTest, SetPrefSucceed) { |
| 143 owner_key_util_->SetPrivateKey(device_policy_.signing_key()); | 143 owner_key_util_->SetPrivateKey(device_policy_.signing_key()); |
| 144 device_settings_service_.SetUsername(device_policy_.policy_data().username()); | 144 device_settings_service_->SetUsername( |
| 145 device_policy_.policy_data().username()); |
| 145 FlushDeviceSettings(); | 146 FlushDeviceSettings(); |
| 146 | 147 |
| 147 base::FundamentalValue value(true); | 148 base::FundamentalValue value(true); |
| 148 EXPECT_CALL(*this, SettingChanged(_)).Times(AnyNumber()); | 149 EXPECT_CALL(*this, SettingChanged(_)).Times(AnyNumber()); |
| 149 EXPECT_CALL(*this, SettingChanged(kStatsReportingPref)).Times(1); | 150 EXPECT_CALL(*this, SettingChanged(kStatsReportingPref)).Times(1); |
| 150 provider_->Set(kStatsReportingPref, value); | 151 provider_->Set(kStatsReportingPref, value); |
| 151 Mock::VerifyAndClearExpectations(this); | 152 Mock::VerifyAndClearExpectations(this); |
| 152 | 153 |
| 153 // Process the store. | 154 // Process the store. |
| 154 device_settings_test_helper_.set_policy_blob(std::string()); | 155 device_settings_test_helper_.set_policy_blob(std::string()); |
| 155 FlushDeviceSettings(); | 156 FlushDeviceSettings(); |
| 156 | 157 |
| 157 // Verify that the device policy has been adjusted. | 158 // Verify that the device policy has been adjusted. |
| 158 ASSERT_TRUE(device_settings_service_.device_settings()); | 159 ASSERT_TRUE(device_settings_service_->device_settings()); |
| 159 EXPECT_TRUE(device_settings_service_.device_settings()-> | 160 EXPECT_TRUE(device_settings_service_->device_settings()-> |
| 160 metrics_enabled().metrics_enabled()); | 161 metrics_enabled().metrics_enabled()); |
| 161 | 162 |
| 162 // Verify the change has been applied. | 163 // Verify the change has been applied. |
| 163 const base::Value* saved_value = provider_->Get(kStatsReportingPref); | 164 const base::Value* saved_value = provider_->Get(kStatsReportingPref); |
| 164 ASSERT_TRUE(saved_value); | 165 ASSERT_TRUE(saved_value); |
| 165 bool bool_value; | 166 bool bool_value; |
| 166 EXPECT_TRUE(saved_value->GetAsBoolean(&bool_value)); | 167 EXPECT_TRUE(saved_value->GetAsBoolean(&bool_value)); |
| 167 EXPECT_TRUE(bool_value); | 168 EXPECT_TRUE(bool_value); |
| 168 } | 169 } |
| 169 | 170 |
| 170 TEST_F(DeviceSettingsProviderTest, SetPrefTwice) { | 171 TEST_F(DeviceSettingsProviderTest, SetPrefTwice) { |
| 171 owner_key_util_->SetPrivateKey(device_policy_.signing_key()); | 172 owner_key_util_->SetPrivateKey(device_policy_.signing_key()); |
| 172 device_settings_service_.SetUsername(device_policy_.policy_data().username()); | 173 device_settings_service_->SetUsername( |
| 174 device_policy_.policy_data().username()); |
| 173 FlushDeviceSettings(); | 175 FlushDeviceSettings(); |
| 174 | 176 |
| 175 EXPECT_CALL(*this, SettingChanged(_)).Times(AnyNumber()); | 177 EXPECT_CALL(*this, SettingChanged(_)).Times(AnyNumber()); |
| 176 | 178 |
| 177 base::StringValue value1("beta"); | 179 base::StringValue value1("beta"); |
| 178 provider_->Set(kReleaseChannel, value1); | 180 provider_->Set(kReleaseChannel, value1); |
| 179 base::StringValue value2("dev"); | 181 base::StringValue value2("dev"); |
| 180 provider_->Set(kReleaseChannel, value2); | 182 provider_->Set(kReleaseChannel, value2); |
| 181 | 183 |
| 182 // Let the changes propagate through the system. | 184 // Let the changes propagate through the system. |
| 183 device_settings_test_helper_.set_policy_blob(std::string()); | 185 device_settings_test_helper_.set_policy_blob(std::string()); |
| 184 FlushDeviceSettings(); | 186 FlushDeviceSettings(); |
| 185 | 187 |
| 186 // Verify the second change has been applied. | 188 // Verify the second change has been applied. |
| 187 const base::Value* saved_value = provider_->Get(kReleaseChannel); | 189 const base::Value* saved_value = provider_->Get(kReleaseChannel); |
| 188 EXPECT_TRUE(value2.Equals(saved_value)); | 190 EXPECT_TRUE(value2.Equals(saved_value)); |
| 189 | 191 |
| 190 Mock::VerifyAndClearExpectations(this); | 192 Mock::VerifyAndClearExpectations(this); |
| 191 } | 193 } |
| 192 | 194 |
| 193 TEST_F(DeviceSettingsProviderTest, PolicyRetrievalFailedBadSignature) { | 195 TEST_F(DeviceSettingsProviderTest, PolicyRetrievalFailedBadSignature) { |
| 194 owner_key_util_->SetPublicKeyFromPrivateKey(device_policy_.signing_key()); | 196 owner_key_util_->SetPublicKeyFromPrivateKey(device_policy_.signing_key()); |
| 195 device_policy_.policy().set_policy_data_signature("bad signature"); | 197 device_policy_.policy().set_policy_data_signature("bad signature"); |
| 196 device_settings_test_helper_.set_policy_blob(device_policy_.GetBlob()); | 198 device_settings_test_helper_.set_policy_blob(device_policy_.GetBlob()); |
| 197 ReloadDeviceSettings(); | 199 ReloadDeviceSettings(); |
| 198 | 200 |
| 199 // Verify that the cached settings blob is not "trusted". | 201 // Verify that the cached settings blob is not "trusted". |
| 200 EXPECT_EQ(DeviceSettingsService::STORE_VALIDATION_ERROR, | 202 EXPECT_EQ(DeviceSettingsService::STORE_VALIDATION_ERROR, |
| 201 device_settings_service_.status()); | 203 device_settings_service_->status()); |
| 202 EXPECT_EQ(CrosSettingsProvider::PERMANENTLY_UNTRUSTED, | 204 EXPECT_EQ(CrosSettingsProvider::PERMANENTLY_UNTRUSTED, |
| 203 provider_->PrepareTrustedValues(base::Closure())); | 205 provider_->PrepareTrustedValues(base::Closure())); |
| 204 } | 206 } |
| 205 | 207 |
| 206 TEST_F(DeviceSettingsProviderTest, PolicyRetrievalNoPolicy) { | 208 TEST_F(DeviceSettingsProviderTest, PolicyRetrievalNoPolicy) { |
| 207 owner_key_util_->SetPublicKeyFromPrivateKey(device_policy_.signing_key()); | 209 owner_key_util_->SetPublicKeyFromPrivateKey(device_policy_.signing_key()); |
| 208 device_settings_test_helper_.set_policy_blob(std::string()); | 210 device_settings_test_helper_.set_policy_blob(std::string()); |
| 209 ReloadDeviceSettings(); | 211 ReloadDeviceSettings(); |
| 210 | 212 |
| 211 // Verify that the cached settings blob is not "trusted". | 213 // Verify that the cached settings blob is not "trusted". |
| 212 EXPECT_EQ(DeviceSettingsService::STORE_NO_POLICY, | 214 EXPECT_EQ(DeviceSettingsService::STORE_NO_POLICY, |
| 213 device_settings_service_.status()); | 215 device_settings_service_->status()); |
| 214 EXPECT_EQ(CrosSettingsProvider::PERMANENTLY_UNTRUSTED, | 216 EXPECT_EQ(CrosSettingsProvider::PERMANENTLY_UNTRUSTED, |
| 215 provider_->PrepareTrustedValues(base::Closure())); | 217 provider_->PrepareTrustedValues(base::Closure())); |
| 216 } | 218 } |
| 217 | 219 |
| 218 TEST_F(DeviceSettingsProviderTest, PolicyFailedPermanentlyNotification) { | 220 TEST_F(DeviceSettingsProviderTest, PolicyFailedPermanentlyNotification) { |
| 219 device_settings_test_helper_.set_policy_blob(std::string()); | 221 device_settings_test_helper_.set_policy_blob(std::string()); |
| 220 | 222 |
| 221 EXPECT_CALL(*this, GetTrustedCallback()); | 223 EXPECT_CALL(*this, GetTrustedCallback()); |
| 222 EXPECT_EQ(CrosSettingsProvider::TEMPORARILY_UNTRUSTED, | 224 EXPECT_EQ(CrosSettingsProvider::TEMPORARILY_UNTRUSTED, |
| 223 provider_->PrepareTrustedValues( | 225 provider_->PrepareTrustedValues( |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 257 | 259 |
| 258 // Verify that migration has kicked in. | 260 // Verify that migration has kicked in. |
| 259 const base::Value* saved_value = provider_->Get(kStatsReportingPref); | 261 const base::Value* saved_value = provider_->Get(kStatsReportingPref); |
| 260 ASSERT_TRUE(saved_value); | 262 ASSERT_TRUE(saved_value); |
| 261 bool bool_value; | 263 bool bool_value; |
| 262 EXPECT_TRUE(saved_value->GetAsBoolean(&bool_value)); | 264 EXPECT_TRUE(saved_value->GetAsBoolean(&bool_value)); |
| 263 EXPECT_FALSE(bool_value); | 265 EXPECT_FALSE(bool_value); |
| 264 } | 266 } |
| 265 | 267 |
| 266 } // namespace chromeos | 268 } // namespace chromeos |
| OLD | NEW |