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 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
51 is_owner_(true), | 51 is_owner_(true), |
52 ownership_status_(DeviceSettingsService::OWNERSHIP_UNKNOWN) {} | 52 ownership_status_(DeviceSettingsService::OWNERSHIP_UNKNOWN) {} |
53 | 53 |
54 virtual void SetUp() OVERRIDE { | 54 virtual void SetUp() OVERRIDE { |
55 device_policy_.payload().mutable_device_policy_refresh_rate()-> | 55 device_policy_.payload().mutable_device_policy_refresh_rate()-> |
56 set_device_policy_refresh_rate(120); | 56 set_device_policy_refresh_rate(120); |
57 DeviceSettingsTestBase::SetUp(); | 57 DeviceSettingsTestBase::SetUp(); |
58 } | 58 } |
59 | 59 |
60 void CheckPolicy() { | 60 void CheckPolicy() { |
61 ASSERT_TRUE(device_settings_service_.policy_data()); | 61 ASSERT_TRUE(device_settings_service_->policy_data()); |
62 EXPECT_EQ(device_policy_.policy_data().SerializeAsString(), | 62 EXPECT_EQ(device_policy_.policy_data().SerializeAsString(), |
63 device_settings_service_.policy_data()->SerializeAsString()); | 63 device_settings_service_->policy_data()->SerializeAsString()); |
64 ASSERT_TRUE(device_settings_service_.device_settings()); | 64 ASSERT_TRUE(device_settings_service_->device_settings()); |
65 EXPECT_EQ(device_policy_.payload().SerializeAsString(), | 65 EXPECT_EQ(device_policy_.payload().SerializeAsString(), |
66 device_settings_service_.device_settings()->SerializeAsString()); | 66 device_settings_service_->device_settings()->SerializeAsString()); |
67 } | 67 } |
68 | 68 |
69 bool operation_completed_; | 69 bool operation_completed_; |
70 bool is_owner_; | 70 bool is_owner_; |
71 DeviceSettingsService::OwnershipStatus ownership_status_; | 71 DeviceSettingsService::OwnershipStatus ownership_status_; |
72 | 72 |
73 private: | 73 private: |
74 DISALLOW_COPY_AND_ASSIGN(DeviceSettingsServiceTest); | 74 DISALLOW_COPY_AND_ASSIGN(DeviceSettingsServiceTest); |
75 }; | 75 }; |
76 | 76 |
77 TEST_F(DeviceSettingsServiceTest, LoadNoKey) { | 77 TEST_F(DeviceSettingsServiceTest, LoadNoKey) { |
78 owner_key_util_->Clear(); | 78 owner_key_util_->Clear(); |
79 ReloadDeviceSettings(); | 79 ReloadDeviceSettings(); |
80 | 80 |
81 EXPECT_EQ(DeviceSettingsService::STORE_KEY_UNAVAILABLE, | 81 EXPECT_EQ(DeviceSettingsService::STORE_KEY_UNAVAILABLE, |
82 device_settings_service_.status()); | 82 device_settings_service_->status()); |
83 EXPECT_FALSE(device_settings_service_.policy_data()); | 83 EXPECT_FALSE(device_settings_service_->policy_data()); |
84 EXPECT_FALSE(device_settings_service_.device_settings()); | 84 EXPECT_FALSE(device_settings_service_->device_settings()); |
85 } | 85 } |
86 | 86 |
87 TEST_F(DeviceSettingsServiceTest, LoadNoPolicy) { | 87 TEST_F(DeviceSettingsServiceTest, LoadNoPolicy) { |
88 device_settings_test_helper_.set_policy_blob(std::string()); | 88 device_settings_test_helper_.set_policy_blob(std::string()); |
89 ReloadDeviceSettings(); | 89 ReloadDeviceSettings(); |
90 | 90 |
91 EXPECT_EQ(DeviceSettingsService::STORE_NO_POLICY, | 91 EXPECT_EQ(DeviceSettingsService::STORE_NO_POLICY, |
92 device_settings_service_.status()); | 92 device_settings_service_->status()); |
93 EXPECT_FALSE(device_settings_service_.policy_data()); | 93 EXPECT_FALSE(device_settings_service_->policy_data()); |
94 EXPECT_FALSE(device_settings_service_.device_settings()); | 94 EXPECT_FALSE(device_settings_service_->device_settings()); |
95 } | 95 } |
96 | 96 |
97 TEST_F(DeviceSettingsServiceTest, LoadValidationError) { | 97 TEST_F(DeviceSettingsServiceTest, LoadValidationError) { |
98 device_policy_.policy().set_policy_data_signature("bad"); | 98 device_policy_.policy().set_policy_data_signature("bad"); |
99 device_settings_test_helper_.set_policy_blob(device_policy_.GetBlob()); | 99 device_settings_test_helper_.set_policy_blob(device_policy_.GetBlob()); |
100 owner_key_util_->SetPublicKeyFromPrivateKey(device_policy_.signing_key()); | 100 owner_key_util_->SetPublicKeyFromPrivateKey(device_policy_.signing_key()); |
101 ReloadDeviceSettings(); | 101 ReloadDeviceSettings(); |
102 | 102 |
103 EXPECT_EQ(DeviceSettingsService::STORE_VALIDATION_ERROR, | 103 EXPECT_EQ(DeviceSettingsService::STORE_VALIDATION_ERROR, |
104 device_settings_service_.status()); | 104 device_settings_service_->status()); |
105 EXPECT_FALSE(device_settings_service_.policy_data()); | 105 EXPECT_FALSE(device_settings_service_->policy_data()); |
106 EXPECT_FALSE(device_settings_service_.device_settings()); | 106 EXPECT_FALSE(device_settings_service_->device_settings()); |
107 } | 107 } |
108 | 108 |
109 TEST_F(DeviceSettingsServiceTest, LoadValidationErrorFutureTimestamp) { | 109 TEST_F(DeviceSettingsServiceTest, LoadValidationErrorFutureTimestamp) { |
110 base::Time timestamp(base::Time::NowFromSystemTime() + | 110 base::Time timestamp(base::Time::NowFromSystemTime() + |
111 base::TimeDelta::FromDays(5000)); | 111 base::TimeDelta::FromDays(5000)); |
112 device_policy_.policy_data().set_timestamp( | 112 device_policy_.policy_data().set_timestamp( |
113 (timestamp - base::Time::UnixEpoch()).InMilliseconds()); | 113 (timestamp - base::Time::UnixEpoch()).InMilliseconds()); |
114 device_policy_.Build(); | 114 device_policy_.Build(); |
115 device_settings_test_helper_.set_policy_blob(device_policy_.GetBlob()); | 115 device_settings_test_helper_.set_policy_blob(device_policy_.GetBlob()); |
116 owner_key_util_->SetPublicKeyFromPrivateKey(device_policy_.signing_key()); | 116 owner_key_util_->SetPublicKeyFromPrivateKey(device_policy_.signing_key()); |
117 ReloadDeviceSettings(); | 117 ReloadDeviceSettings(); |
118 | 118 |
119 EXPECT_EQ(DeviceSettingsService::STORE_TEMP_VALIDATION_ERROR, | 119 EXPECT_EQ(DeviceSettingsService::STORE_TEMP_VALIDATION_ERROR, |
120 device_settings_service_.status()); | 120 device_settings_service_->status()); |
121 EXPECT_FALSE(device_settings_service_.policy_data()); | 121 EXPECT_FALSE(device_settings_service_->policy_data()); |
122 EXPECT_FALSE(device_settings_service_.device_settings()); | 122 EXPECT_FALSE(device_settings_service_->device_settings()); |
123 } | 123 } |
124 | 124 |
125 TEST_F(DeviceSettingsServiceTest, LoadSuccess) { | 125 TEST_F(DeviceSettingsServiceTest, LoadSuccess) { |
126 ReloadDeviceSettings(); | 126 ReloadDeviceSettings(); |
127 | 127 |
128 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS, | 128 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS, |
129 device_settings_service_.status()); | 129 device_settings_service_->status()); |
130 CheckPolicy(); | 130 CheckPolicy(); |
131 } | 131 } |
132 | 132 |
133 TEST_F(DeviceSettingsServiceTest, SignAndStoreNoKey) { | 133 TEST_F(DeviceSettingsServiceTest, SignAndStoreNoKey) { |
134 ReloadDeviceSettings(); | 134 ReloadDeviceSettings(); |
135 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS, | 135 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS, |
136 device_settings_service_.status()); | 136 device_settings_service_->status()); |
137 | 137 |
138 scoped_ptr<em::ChromeDeviceSettingsProto> new_device_settings( | 138 scoped_ptr<em::ChromeDeviceSettingsProto> new_device_settings( |
139 new em::ChromeDeviceSettingsProto(device_policy_.payload())); | 139 new em::ChromeDeviceSettingsProto(device_policy_.payload())); |
140 new_device_settings->mutable_device_policy_refresh_rate()-> | 140 new_device_settings->mutable_device_policy_refresh_rate()-> |
141 set_device_policy_refresh_rate(300); | 141 set_device_policy_refresh_rate(300); |
142 device_settings_service_.SignAndStore( | 142 device_settings_service_->SignAndStore( |
143 new_device_settings.Pass(), | 143 new_device_settings.Pass(), |
144 base::Bind(&DeviceSettingsServiceTest::SetOperationCompleted, | 144 base::Bind(&DeviceSettingsServiceTest::SetOperationCompleted, |
145 base::Unretained(this))); | 145 base::Unretained(this))); |
146 FlushDeviceSettings(); | 146 FlushDeviceSettings(); |
147 EXPECT_TRUE(operation_completed_); | 147 EXPECT_TRUE(operation_completed_); |
148 EXPECT_EQ(DeviceSettingsService::STORE_KEY_UNAVAILABLE, | 148 EXPECT_EQ(DeviceSettingsService::STORE_KEY_UNAVAILABLE, |
149 device_settings_service_.status()); | 149 device_settings_service_->status()); |
150 CheckPolicy(); | 150 CheckPolicy(); |
151 } | 151 } |
152 | 152 |
153 TEST_F(DeviceSettingsServiceTest, SignAndStoreFailure) { | 153 TEST_F(DeviceSettingsServiceTest, SignAndStoreFailure) { |
154 ReloadDeviceSettings(); | 154 ReloadDeviceSettings(); |
155 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS, | 155 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS, |
156 device_settings_service_.status()); | 156 device_settings_service_->status()); |
157 | 157 |
158 owner_key_util_->SetPrivateKey(device_policy_.signing_key()); | 158 owner_key_util_->SetPrivateKey(device_policy_.signing_key()); |
159 device_settings_service_.SetUsername(device_policy_.policy_data().username()); | 159 device_settings_service_->SetUsername( |
| 160 device_policy_.policy_data().username()); |
160 FlushDeviceSettings(); | 161 FlushDeviceSettings(); |
161 | 162 |
162 scoped_ptr<em::ChromeDeviceSettingsProto> new_device_settings( | 163 scoped_ptr<em::ChromeDeviceSettingsProto> new_device_settings( |
163 new em::ChromeDeviceSettingsProto(device_policy_.payload())); | 164 new em::ChromeDeviceSettingsProto(device_policy_.payload())); |
164 new_device_settings->mutable_device_policy_refresh_rate()-> | 165 new_device_settings->mutable_device_policy_refresh_rate()-> |
165 set_device_policy_refresh_rate(300); | 166 set_device_policy_refresh_rate(300); |
166 device_settings_test_helper_.set_store_result(false); | 167 device_settings_test_helper_.set_store_result(false); |
167 device_settings_service_.SignAndStore( | 168 device_settings_service_->SignAndStore( |
168 new_device_settings.Pass(), | 169 new_device_settings.Pass(), |
169 base::Bind(&DeviceSettingsServiceTest::SetOperationCompleted, | 170 base::Bind(&DeviceSettingsServiceTest::SetOperationCompleted, |
170 base::Unretained(this))); | 171 base::Unretained(this))); |
171 FlushDeviceSettings(); | 172 FlushDeviceSettings(); |
172 EXPECT_TRUE(operation_completed_); | 173 EXPECT_TRUE(operation_completed_); |
173 EXPECT_EQ(DeviceSettingsService::STORE_OPERATION_FAILED, | 174 EXPECT_EQ(DeviceSettingsService::STORE_OPERATION_FAILED, |
174 device_settings_service_.status()); | 175 device_settings_service_->status()); |
175 CheckPolicy(); | 176 CheckPolicy(); |
176 } | 177 } |
177 | 178 |
178 TEST_F(DeviceSettingsServiceTest, SignAndStoreSuccess) { | 179 TEST_F(DeviceSettingsServiceTest, SignAndStoreSuccess) { |
179 ReloadDeviceSettings(); | 180 ReloadDeviceSettings(); |
180 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS, | 181 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS, |
181 device_settings_service_.status()); | 182 device_settings_service_->status()); |
182 | 183 |
183 owner_key_util_->SetPrivateKey(device_policy_.signing_key()); | 184 owner_key_util_->SetPrivateKey(device_policy_.signing_key()); |
184 device_settings_service_.SetUsername(device_policy_.policy_data().username()); | 185 device_settings_service_->SetUsername( |
| 186 device_policy_.policy_data().username()); |
185 FlushDeviceSettings(); | 187 FlushDeviceSettings(); |
186 | 188 |
187 device_policy_.payload().mutable_device_policy_refresh_rate()-> | 189 device_policy_.payload().mutable_device_policy_refresh_rate()-> |
188 set_device_policy_refresh_rate(300); | 190 set_device_policy_refresh_rate(300); |
189 device_policy_.Build(); | 191 device_policy_.Build(); |
190 device_settings_service_.SignAndStore( | 192 device_settings_service_->SignAndStore( |
191 scoped_ptr<em::ChromeDeviceSettingsProto>( | 193 scoped_ptr<em::ChromeDeviceSettingsProto>( |
192 new em::ChromeDeviceSettingsProto(device_policy_.payload())), | 194 new em::ChromeDeviceSettingsProto(device_policy_.payload())), |
193 base::Bind(&DeviceSettingsServiceTest::SetOperationCompleted, | 195 base::Bind(&DeviceSettingsServiceTest::SetOperationCompleted, |
194 base::Unretained(this))); | 196 base::Unretained(this))); |
195 FlushDeviceSettings(); | 197 FlushDeviceSettings(); |
196 EXPECT_TRUE(operation_completed_); | 198 EXPECT_TRUE(operation_completed_); |
197 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS, | 199 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS, |
198 device_settings_service_.status()); | 200 device_settings_service_->status()); |
199 ASSERT_TRUE(device_settings_service_.device_settings()); | 201 ASSERT_TRUE(device_settings_service_->device_settings()); |
200 EXPECT_EQ(device_policy_.payload().SerializeAsString(), | 202 EXPECT_EQ(device_policy_.payload().SerializeAsString(), |
201 device_settings_service_.device_settings()->SerializeAsString()); | 203 device_settings_service_->device_settings()->SerializeAsString()); |
202 } | 204 } |
203 | 205 |
204 TEST_F(DeviceSettingsServiceTest, StoreFailure) { | 206 TEST_F(DeviceSettingsServiceTest, StoreFailure) { |
205 owner_key_util_->Clear(); | 207 owner_key_util_->Clear(); |
206 device_settings_test_helper_.set_policy_blob(std::string()); | 208 device_settings_test_helper_.set_policy_blob(std::string()); |
207 ReloadDeviceSettings(); | 209 ReloadDeviceSettings(); |
208 EXPECT_EQ(DeviceSettingsService::STORE_KEY_UNAVAILABLE, | 210 EXPECT_EQ(DeviceSettingsService::STORE_KEY_UNAVAILABLE, |
209 device_settings_service_.status()); | 211 device_settings_service_->status()); |
210 | 212 |
211 device_settings_test_helper_.set_store_result(false); | 213 device_settings_test_helper_.set_store_result(false); |
212 device_settings_service_.Store( | 214 device_settings_service_->Store( |
213 device_policy_.GetCopy(), | 215 device_policy_.GetCopy(), |
214 base::Bind(&DeviceSettingsServiceTest::SetOperationCompleted, | 216 base::Bind(&DeviceSettingsServiceTest::SetOperationCompleted, |
215 base::Unretained(this))); | 217 base::Unretained(this))); |
216 FlushDeviceSettings(); | 218 FlushDeviceSettings(); |
217 EXPECT_TRUE(operation_completed_); | 219 EXPECT_TRUE(operation_completed_); |
218 EXPECT_EQ(DeviceSettingsService::STORE_OPERATION_FAILED, | 220 EXPECT_EQ(DeviceSettingsService::STORE_OPERATION_FAILED, |
219 device_settings_service_.status()); | 221 device_settings_service_->status()); |
220 } | 222 } |
221 | 223 |
222 TEST_F(DeviceSettingsServiceTest, StoreSuccess) { | 224 TEST_F(DeviceSettingsServiceTest, StoreSuccess) { |
223 owner_key_util_->Clear(); | 225 owner_key_util_->Clear(); |
224 device_settings_test_helper_.set_policy_blob(std::string()); | 226 device_settings_test_helper_.set_policy_blob(std::string()); |
225 ReloadDeviceSettings(); | 227 ReloadDeviceSettings(); |
226 EXPECT_EQ(DeviceSettingsService::STORE_KEY_UNAVAILABLE, | 228 EXPECT_EQ(DeviceSettingsService::STORE_KEY_UNAVAILABLE, |
227 device_settings_service_.status()); | 229 device_settings_service_->status()); |
228 | 230 |
229 owner_key_util_->SetPublicKeyFromPrivateKey(device_policy_.signing_key()); | 231 owner_key_util_->SetPublicKeyFromPrivateKey(device_policy_.signing_key()); |
230 device_settings_service_.Store( | 232 device_settings_service_->Store( |
231 device_policy_.GetCopy(), | 233 device_policy_.GetCopy(), |
232 base::Bind(&DeviceSettingsServiceTest::SetOperationCompleted, | 234 base::Bind(&DeviceSettingsServiceTest::SetOperationCompleted, |
233 base::Unretained(this))); | 235 base::Unretained(this))); |
234 FlushDeviceSettings(); | 236 FlushDeviceSettings(); |
235 EXPECT_TRUE(operation_completed_); | 237 EXPECT_TRUE(operation_completed_); |
236 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS, | 238 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS, |
237 device_settings_service_.status()); | 239 device_settings_service_->status()); |
238 CheckPolicy(); | 240 CheckPolicy(); |
239 } | 241 } |
240 | 242 |
241 TEST_F(DeviceSettingsServiceTest, StoreRotation) { | 243 TEST_F(DeviceSettingsServiceTest, StoreRotation) { |
242 ReloadDeviceSettings(); | 244 ReloadDeviceSettings(); |
243 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS, | 245 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS, |
244 device_settings_service_.status()); | 246 device_settings_service_->status()); |
245 | 247 |
246 device_policy_.payload().mutable_device_policy_refresh_rate()-> | 248 device_policy_.payload().mutable_device_policy_refresh_rate()-> |
247 set_device_policy_refresh_rate(300); | 249 set_device_policy_refresh_rate(300); |
248 device_policy_.set_new_signing_key( | 250 device_policy_.set_new_signing_key( |
249 policy::PolicyBuilder::CreateTestNewSigningKey()); | 251 policy::PolicyBuilder::CreateTestNewSigningKey()); |
250 device_policy_.Build(); | 252 device_policy_.Build(); |
251 device_settings_service_.Store(device_policy_.GetCopy(), base::Closure()); | 253 device_settings_service_->Store(device_policy_.GetCopy(), base::Closure()); |
252 FlushDeviceSettings(); | 254 FlushDeviceSettings(); |
253 owner_key_util_->SetPublicKeyFromPrivateKey(device_policy_.new_signing_key()); | 255 owner_key_util_->SetPublicKeyFromPrivateKey(device_policy_.new_signing_key()); |
254 device_settings_service_.OwnerKeySet(true); | 256 device_settings_service_->OwnerKeySet(true); |
255 FlushDeviceSettings(); | 257 FlushDeviceSettings(); |
256 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS, | 258 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS, |
257 device_settings_service_.status()); | 259 device_settings_service_->status()); |
258 CheckPolicy(); | 260 CheckPolicy(); |
259 | 261 |
260 // Check the new key has been loaded. | 262 // Check the new key has been loaded. |
261 std::vector<uint8> key; | 263 std::vector<uint8> key; |
262 ASSERT_TRUE(device_policy_.new_signing_key()->ExportPublicKey(&key)); | 264 ASSERT_TRUE(device_policy_.new_signing_key()->ExportPublicKey(&key)); |
263 EXPECT_EQ(*device_settings_service_.GetOwnerKey()->public_key(), key); | 265 EXPECT_EQ(*device_settings_service_->GetOwnerKey()->public_key(), key); |
264 } | 266 } |
265 | 267 |
266 TEST_F(DeviceSettingsServiceTest, OwnershipStatus) { | 268 TEST_F(DeviceSettingsServiceTest, OwnershipStatus) { |
267 owner_key_util_->Clear(); | 269 owner_key_util_->Clear(); |
268 | 270 |
269 EXPECT_FALSE(device_settings_service_.HasPrivateOwnerKey()); | 271 EXPECT_FALSE(device_settings_service_->HasPrivateOwnerKey()); |
270 EXPECT_FALSE(device_settings_service_.GetOwnerKey()); | 272 EXPECT_FALSE(device_settings_service_->GetOwnerKey()); |
271 EXPECT_EQ(DeviceSettingsService::OWNERSHIP_UNKNOWN, | 273 EXPECT_EQ(DeviceSettingsService::OWNERSHIP_UNKNOWN, |
272 device_settings_service_.GetOwnershipStatus()); | 274 device_settings_service_->GetOwnershipStatus()); |
273 | 275 |
274 device_settings_service_.GetOwnershipStatusAsync( | 276 device_settings_service_->GetOwnershipStatusAsync( |
275 base::Bind(&DeviceSettingsServiceTest::SetOwnershipStatus, | 277 base::Bind(&DeviceSettingsServiceTest::SetOwnershipStatus, |
276 base::Unretained(this))); | 278 base::Unretained(this))); |
277 FlushDeviceSettings(); | 279 FlushDeviceSettings(); |
278 EXPECT_FALSE(device_settings_service_.HasPrivateOwnerKey()); | 280 EXPECT_FALSE(device_settings_service_->HasPrivateOwnerKey()); |
279 ASSERT_TRUE(device_settings_service_.GetOwnerKey()); | 281 ASSERT_TRUE(device_settings_service_->GetOwnerKey()); |
280 EXPECT_FALSE(device_settings_service_.GetOwnerKey()->public_key()); | 282 EXPECT_FALSE(device_settings_service_->GetOwnerKey()->public_key()); |
281 EXPECT_FALSE(device_settings_service_.GetOwnerKey()->private_key()); | 283 EXPECT_FALSE(device_settings_service_->GetOwnerKey()->private_key()); |
282 EXPECT_EQ(DeviceSettingsService::OWNERSHIP_NONE, | 284 EXPECT_EQ(DeviceSettingsService::OWNERSHIP_NONE, |
283 device_settings_service_.GetOwnershipStatus()); | 285 device_settings_service_->GetOwnershipStatus()); |
284 EXPECT_FALSE(is_owner_); | 286 EXPECT_FALSE(is_owner_); |
285 EXPECT_EQ(DeviceSettingsService::OWNERSHIP_NONE, ownership_status_); | 287 EXPECT_EQ(DeviceSettingsService::OWNERSHIP_NONE, ownership_status_); |
286 | 288 |
287 owner_key_util_->SetPublicKeyFromPrivateKey(device_policy_.signing_key()); | 289 owner_key_util_->SetPublicKeyFromPrivateKey(device_policy_.signing_key()); |
288 ReloadDeviceSettings(); | 290 ReloadDeviceSettings(); |
289 device_settings_service_.GetOwnershipStatusAsync( | 291 device_settings_service_->GetOwnershipStatusAsync( |
290 base::Bind(&DeviceSettingsServiceTest::SetOwnershipStatus, | 292 base::Bind(&DeviceSettingsServiceTest::SetOwnershipStatus, |
291 base::Unretained(this))); | 293 base::Unretained(this))); |
292 FlushDeviceSettings(); | 294 FlushDeviceSettings(); |
293 EXPECT_FALSE(device_settings_service_.HasPrivateOwnerKey()); | 295 EXPECT_FALSE(device_settings_service_->HasPrivateOwnerKey()); |
294 ASSERT_TRUE(device_settings_service_.GetOwnerKey()); | 296 ASSERT_TRUE(device_settings_service_->GetOwnerKey()); |
295 ASSERT_TRUE(device_settings_service_.GetOwnerKey()->public_key()); | 297 ASSERT_TRUE(device_settings_service_->GetOwnerKey()->public_key()); |
296 std::vector<uint8> key; | 298 std::vector<uint8> key; |
297 ASSERT_TRUE(device_policy_.signing_key()->ExportPublicKey(&key)); | 299 ASSERT_TRUE(device_policy_.signing_key()->ExportPublicKey(&key)); |
298 EXPECT_EQ(*device_settings_service_.GetOwnerKey()->public_key(), key); | 300 EXPECT_EQ(*device_settings_service_->GetOwnerKey()->public_key(), key); |
299 EXPECT_FALSE(device_settings_service_.GetOwnerKey()->private_key()); | 301 EXPECT_FALSE(device_settings_service_->GetOwnerKey()->private_key()); |
300 EXPECT_EQ(DeviceSettingsService::OWNERSHIP_TAKEN, | 302 EXPECT_EQ(DeviceSettingsService::OWNERSHIP_TAKEN, |
301 device_settings_service_.GetOwnershipStatus()); | 303 device_settings_service_->GetOwnershipStatus()); |
302 EXPECT_FALSE(is_owner_); | 304 EXPECT_FALSE(is_owner_); |
303 EXPECT_EQ(DeviceSettingsService::OWNERSHIP_TAKEN, ownership_status_); | 305 EXPECT_EQ(DeviceSettingsService::OWNERSHIP_TAKEN, ownership_status_); |
304 | 306 |
305 owner_key_util_->SetPrivateKey(device_policy_.signing_key()); | 307 owner_key_util_->SetPrivateKey(device_policy_.signing_key()); |
306 device_settings_service_.SetUsername(device_policy_.policy_data().username()); | 308 device_settings_service_->SetUsername( |
307 device_settings_service_.GetOwnershipStatusAsync( | 309 device_policy_.policy_data().username()); |
| 310 device_settings_service_->GetOwnershipStatusAsync( |
308 base::Bind(&DeviceSettingsServiceTest::SetOwnershipStatus, | 311 base::Bind(&DeviceSettingsServiceTest::SetOwnershipStatus, |
309 base::Unretained(this))); | 312 base::Unretained(this))); |
310 FlushDeviceSettings(); | 313 FlushDeviceSettings(); |
311 EXPECT_TRUE(device_settings_service_.HasPrivateOwnerKey()); | 314 EXPECT_TRUE(device_settings_service_->HasPrivateOwnerKey()); |
312 ASSERT_TRUE(device_settings_service_.GetOwnerKey()); | 315 ASSERT_TRUE(device_settings_service_->GetOwnerKey()); |
313 ASSERT_TRUE(device_settings_service_.GetOwnerKey()->public_key()); | 316 ASSERT_TRUE(device_settings_service_->GetOwnerKey()->public_key()); |
314 ASSERT_TRUE(device_policy_.signing_key()->ExportPublicKey(&key)); | 317 ASSERT_TRUE(device_policy_.signing_key()->ExportPublicKey(&key)); |
315 EXPECT_EQ(*device_settings_service_.GetOwnerKey()->public_key(), key); | 318 EXPECT_EQ(*device_settings_service_->GetOwnerKey()->public_key(), key); |
316 EXPECT_TRUE(device_settings_service_.GetOwnerKey()->private_key()); | 319 EXPECT_TRUE(device_settings_service_->GetOwnerKey()->private_key()); |
317 EXPECT_EQ(DeviceSettingsService::OWNERSHIP_TAKEN, | 320 EXPECT_EQ(DeviceSettingsService::OWNERSHIP_TAKEN, |
318 device_settings_service_.GetOwnershipStatus()); | 321 device_settings_service_->GetOwnershipStatus()); |
319 EXPECT_TRUE(is_owner_); | 322 EXPECT_TRUE(is_owner_); |
320 EXPECT_EQ(DeviceSettingsService::OWNERSHIP_TAKEN, ownership_status_); | 323 EXPECT_EQ(DeviceSettingsService::OWNERSHIP_TAKEN, ownership_status_); |
321 } | 324 } |
322 | 325 |
323 TEST_F(DeviceSettingsServiceTest, Observer) { | 326 TEST_F(DeviceSettingsServiceTest, Observer) { |
324 owner_key_util_->Clear(); | 327 owner_key_util_->Clear(); |
325 MockDeviceSettingsObserver observer_; | 328 MockDeviceSettingsObserver observer_; |
326 device_settings_service_.AddObserver(&observer_); | 329 device_settings_service_->AddObserver(&observer_); |
327 | 330 |
328 EXPECT_CALL(observer_, OwnershipStatusChanged()).Times(1); | 331 EXPECT_CALL(observer_, OwnershipStatusChanged()).Times(1); |
329 EXPECT_CALL(observer_, DeviceSettingsUpdated()).Times(1); | 332 EXPECT_CALL(observer_, DeviceSettingsUpdated()).Times(1); |
330 ReloadDeviceSettings(); | 333 ReloadDeviceSettings(); |
331 Mock::VerifyAndClearExpectations(&observer_); | 334 Mock::VerifyAndClearExpectations(&observer_); |
332 | 335 |
333 EXPECT_CALL(observer_, OwnershipStatusChanged()).Times(1); | 336 EXPECT_CALL(observer_, OwnershipStatusChanged()).Times(1); |
334 EXPECT_CALL(observer_, DeviceSettingsUpdated()).Times(1); | 337 EXPECT_CALL(observer_, DeviceSettingsUpdated()).Times(1); |
335 owner_key_util_->SetPublicKeyFromPrivateKey(device_policy_.signing_key()); | 338 owner_key_util_->SetPublicKeyFromPrivateKey(device_policy_.signing_key()); |
336 ReloadDeviceSettings(); | 339 ReloadDeviceSettings(); |
337 Mock::VerifyAndClearExpectations(&observer_); | 340 Mock::VerifyAndClearExpectations(&observer_); |
338 | 341 |
339 EXPECT_CALL(observer_, OwnershipStatusChanged()).Times(0); | 342 EXPECT_CALL(observer_, OwnershipStatusChanged()).Times(0); |
340 EXPECT_CALL(observer_, DeviceSettingsUpdated()).Times(1); | 343 EXPECT_CALL(observer_, DeviceSettingsUpdated()).Times(1); |
341 device_settings_service_.Store(device_policy_.GetCopy(), base::Closure()); | 344 device_settings_service_->Store(device_policy_.GetCopy(), base::Closure()); |
342 FlushDeviceSettings(); | 345 FlushDeviceSettings(); |
343 Mock::VerifyAndClearExpectations(&observer_); | 346 Mock::VerifyAndClearExpectations(&observer_); |
344 | 347 |
345 EXPECT_CALL(observer_, OwnershipStatusChanged()).Times(0); | 348 EXPECT_CALL(observer_, OwnershipStatusChanged()).Times(0); |
346 EXPECT_CALL(observer_, DeviceSettingsUpdated()).Times(1); | 349 EXPECT_CALL(observer_, DeviceSettingsUpdated()).Times(1); |
347 device_settings_service_.PropertyChangeComplete(true); | 350 device_settings_service_->PropertyChangeComplete(true); |
348 FlushDeviceSettings(); | 351 FlushDeviceSettings(); |
349 Mock::VerifyAndClearExpectations(&observer_); | 352 Mock::VerifyAndClearExpectations(&observer_); |
350 | 353 |
351 device_settings_service_.RemoveObserver(&observer_); | 354 device_settings_service_->RemoveObserver(&observer_); |
352 } | 355 } |
353 | 356 |
354 } // namespace chromeos | 357 } // namespace chromeos |
OLD | NEW |