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 |