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

Side by Side Diff: chrome/browser/chromeos/policy/auto_enrollment_client_unittest.cc

Issue 676773002: Add device disabling to OOBE flow (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update browser tests. Created 6 years, 2 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
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/policy/auto_enrollment_client.h" 5 #include "chrome/browser/chromeos/policy/auto_enrollment_client.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/prefs/pref_service.h" 10 #include "base/prefs/pref_service.h"
(...skipping 17 matching lines...) Expand all
28 namespace em = enterprise_management; 28 namespace em = enterprise_management;
29 29
30 namespace policy { 30 namespace policy {
31 31
32 namespace { 32 namespace {
33 33
34 const char kStateKey[] = "state_key"; 34 const char kStateKey[] = "state_key";
35 const char kStateKeyHash[] = 35 const char kStateKeyHash[] =
36 "\xde\x74\xcd\xf0\x03\x36\x8c\x21\x79\xba\xb1\x5a\xc4\x32\xee\xd6" 36 "\xde\x74\xcd\xf0\x03\x36\x8c\x21\x79\xba\xb1\x5a\xc4\x32\xee\xd6"
37 "\xb3\x4a\x5e\xff\x73\x7e\x92\xd9\xf8\x6e\x72\x44\xd0\x97\xc3\xe6"; 37 "\xb3\x4a\x5e\xff\x73\x7e\x92\xd9\xf8\x6e\x72\x44\xd0\x97\xc3\xe6";
38 const char kDisabledMessage[] = "This device has been disabled.";
38 39
39 using ::testing::InSequence; 40 using ::testing::InSequence;
40 using ::testing::Mock; 41 using ::testing::Mock;
41 using ::testing::SaveArg; 42 using ::testing::SaveArg;
42 using ::testing::_; 43 using ::testing::_;
43 44
44 class AutoEnrollmentClientTest : public testing::Test { 45 class AutoEnrollmentClientTest : public testing::Test {
45 protected: 46 protected:
46 AutoEnrollmentClientTest() 47 AutoEnrollmentClientTest()
47 : scoped_testing_local_state_( 48 : scoped_testing_local_state_(
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 enrollment_response->mutable_hash()->Add()->assign(kStateKeyHash, 110 enrollment_response->mutable_hash()->Add()->assign(kStateKeyHash,
110 crypto::kSHA256Length); 111 crypto::kSHA256Length);
111 } 112 }
112 EXPECT_CALL(*service_, 113 EXPECT_CALL(*service_,
113 CreateJob(DeviceManagementRequestJob::TYPE_AUTO_ENROLLMENT, _)) 114 CreateJob(DeviceManagementRequestJob::TYPE_AUTO_ENROLLMENT, _))
114 .WillOnce(service_->SucceedJob(response)); 115 .WillOnce(service_->SucceedJob(response));
115 } 116 }
116 117
117 void ServerWillSendState( 118 void ServerWillSendState(
118 const std::string& management_domain, 119 const std::string& management_domain,
119 em::DeviceStateRetrievalResponse::RestoreMode restore_mode) { 120 em::DeviceStateRetrievalResponse::RestoreMode restore_mode,
121 scoped_ptr<std::string> device_disabled_message) {
120 em::DeviceManagementResponse response; 122 em::DeviceManagementResponse response;
121 em::DeviceStateRetrievalResponse* state_response = 123 em::DeviceStateRetrievalResponse* state_response =
122 response.mutable_device_state_retrieval_response(); 124 response.mutable_device_state_retrieval_response();
123 state_response->set_restore_mode(restore_mode); 125 state_response->set_restore_mode(restore_mode);
124 state_response->set_management_domain(management_domain); 126 state_response->set_management_domain(management_domain);
127 if (device_disabled_message) {
128 em::DisabledState* disabled_state =
129 state_response->mutable_disabled_state();
130 disabled_state->set_message(*device_disabled_message);
131 }
125 EXPECT_CALL( 132 EXPECT_CALL(
126 *service_, 133 *service_,
127 CreateJob(DeviceManagementRequestJob::TYPE_DEVICE_STATE_RETRIEVAL, _)) 134 CreateJob(DeviceManagementRequestJob::TYPE_DEVICE_STATE_RETRIEVAL, _))
128 .WillOnce(service_->SucceedJob(response)); 135 .WillOnce(service_->SucceedJob(response));
129 } 136 }
130 137
131 void ServerWillReplyAsync(MockDeviceManagementJob** job) { 138 void ServerWillReplyAsync(MockDeviceManagementJob** job) {
132 EXPECT_CALL(*service_, 139 EXPECT_CALL(*service_,
133 CreateJob(DeviceManagementRequestJob::TYPE_AUTO_ENROLLMENT, _)) 140 CreateJob(DeviceManagementRequestJob::TYPE_AUTO_ENROLLMENT, _))
134 .WillOnce(service_->CreateAsyncJob(job)); 141 .WillOnce(service_->CreateAsyncJob(job));
(...skipping 11 matching lines...) Expand all
146 local_state_->GetUserPref(prefs::kShouldAutoEnroll))); 153 local_state_->GetUserPref(prefs::kShouldAutoEnroll)));
147 EXPECT_TRUE(base::Value::Equals( 154 EXPECT_TRUE(base::Value::Equals(
148 &value_power_limit, 155 &value_power_limit,
149 local_state_->GetUserPref(prefs::kAutoEnrollmentPowerLimit))); 156 local_state_->GetUserPref(prefs::kAutoEnrollmentPowerLimit)));
150 } 157 }
151 158
152 bool HasServerBackedState() { 159 bool HasServerBackedState() {
153 return local_state_->GetUserPref(prefs::kServerBackedDeviceState); 160 return local_state_->GetUserPref(prefs::kServerBackedDeviceState);
154 } 161 }
155 162
156 void VerifyServerBackedState(const std::string& expected_management_domain, 163 void VerifyServerBackedState(
157 const std::string& expected_restore_mode) { 164 const std::string& expected_management_domain,
165 const std::string& expected_restore_mode,
166 scoped_ptr<std::string> expected_disabled_message) {
158 const base::Value* state = 167 const base::Value* state =
159 local_state_->GetUserPref(prefs::kServerBackedDeviceState); 168 local_state_->GetUserPref(prefs::kServerBackedDeviceState);
160 ASSERT_TRUE(state); 169 ASSERT_TRUE(state);
161 const base::DictionaryValue* state_dict = nullptr; 170 const base::DictionaryValue* state_dict = nullptr;
162 ASSERT_TRUE(state->GetAsDictionary(&state_dict)); 171 ASSERT_TRUE(state->GetAsDictionary(&state_dict));
163 172
164 std::string actual_management_domain; 173 std::string actual_management_domain;
165 EXPECT_TRUE(state_dict->GetString(kDeviceStateManagementDomain, 174 EXPECT_TRUE(state_dict->GetString(kDeviceStateManagementDomain,
166 &actual_management_domain)); 175 &actual_management_domain));
167 EXPECT_EQ(expected_management_domain, actual_management_domain); 176 EXPECT_EQ(expected_management_domain, actual_management_domain);
168 177
169 std::string actual_restore_mode; 178 if (!expected_restore_mode.empty()) {
170 EXPECT_TRUE(state_dict->GetString(kDeviceStateRestoreMode, 179 std::string actual_restore_mode;
171 &actual_restore_mode)); 180 EXPECT_TRUE(state_dict->GetString(kDeviceStateRestoreMode,
172 EXPECT_EQ(expected_restore_mode, actual_restore_mode); 181 &actual_restore_mode));
182 EXPECT_EQ(expected_restore_mode, actual_restore_mode);
183 } else {
184 EXPECT_FALSE(state_dict->HasKey(kDeviceStateRestoreMode));
185 }
186
187 const bool expected_disabled_state = expected_disabled_message;
188 bool actual_disabled_state = false;
189 EXPECT_TRUE(state_dict->GetBoolean(kDeviceStateDisabled,
190 &actual_disabled_state));
191 EXPECT_EQ(expected_disabled_state, actual_disabled_state);
192
193 if (expected_disabled_message) {
194 std::string actual_disabled_message;
195 EXPECT_TRUE(state_dict->GetString(kDeviceStateDisabledMessage,
196 &actual_disabled_message));
197 EXPECT_EQ(*expected_disabled_message, actual_disabled_message);
198 } else {
199 EXPECT_FALSE(state_dict->HasKey(kDeviceStateDisabledMessage));
200 }
173 } 201 }
174 202
175 const em::DeviceAutoEnrollmentRequest& auto_enrollment_request() { 203 const em::DeviceAutoEnrollmentRequest& auto_enrollment_request() {
176 return last_request_.auto_enrollment_request(); 204 return last_request_.auto_enrollment_request();
177 } 205 }
178 206
179 content::TestBrowserThreadBundle browser_threads_; 207 content::TestBrowserThreadBundle browser_threads_;
180 ScopedTestingLocalState scoped_testing_local_state_; 208 ScopedTestingLocalState scoped_testing_local_state_;
181 TestingPrefServiceSimple* local_state_; 209 TestingPrefServiceSimple* local_state_;
182 scoped_ptr<MockDeviceManagementService> service_; 210 scoped_ptr<MockDeviceManagementService> service_;
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
236 EXPECT_FALSE(HasCachedDecision()); 264 EXPECT_FALSE(HasCachedDecision());
237 EXPECT_FALSE(HasServerBackedState()); 265 EXPECT_FALSE(HasServerBackedState());
238 } 266 }
239 267
240 TEST_F(AutoEnrollmentClientTest, AskForLess) { 268 TEST_F(AutoEnrollmentClientTest, AskForLess) {
241 InSequence sequence; 269 InSequence sequence;
242 ServerWillReply(8, false, false); 270 ServerWillReply(8, false, false);
243 ServerWillReply(-1, true, true); 271 ServerWillReply(-1, true, true);
244 ServerWillSendState( 272 ServerWillSendState(
245 "example.com", 273 "example.com",
246 em::DeviceStateRetrievalResponse::RESTORE_MODE_REENROLLMENT_ENFORCED); 274 em::DeviceStateRetrievalResponse::RESTORE_MODE_REENROLLMENT_ENFORCED,
275 make_scoped_ptr(new std::string(kDisabledMessage)));
247 client_->Start(); 276 client_->Start();
248 EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_); 277 EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_);
249 VerifyCachedResult(true, 8); 278 VerifyCachedResult(true, 8);
250 VerifyServerBackedState("example.com", 279 VerifyServerBackedState("example.com",
251 kDeviceStateRestoreModeReEnrollmentEnforced); 280 kDeviceStateRestoreModeReEnrollmentEnforced,
281 make_scoped_ptr(new std::string(kDisabledMessage)));
252 } 282 }
253 283
254 TEST_F(AutoEnrollmentClientTest, AskForSame) { 284 TEST_F(AutoEnrollmentClientTest, AskForSame) {
255 InSequence sequence; 285 InSequence sequence;
256 ServerWillReply(16, false, false); 286 ServerWillReply(16, false, false);
257 ServerWillReply(-1, true, true); 287 ServerWillReply(-1, true, true);
258 ServerWillSendState( 288 ServerWillSendState(
259 "example.com", 289 "example.com",
260 em::DeviceStateRetrievalResponse::RESTORE_MODE_REENROLLMENT_ENFORCED); 290 em::DeviceStateRetrievalResponse::RESTORE_MODE_REENROLLMENT_ENFORCED,
291 make_scoped_ptr(new std::string(kDisabledMessage)));
261 client_->Start(); 292 client_->Start();
262 EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_); 293 EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_);
263 VerifyCachedResult(true, 8); 294 VerifyCachedResult(true, 8);
264 VerifyServerBackedState("example.com", 295 VerifyServerBackedState("example.com",
265 kDeviceStateRestoreModeReEnrollmentEnforced); 296 kDeviceStateRestoreModeReEnrollmentEnforced,
297 make_scoped_ptr(new std::string(kDisabledMessage)));
266 } 298 }
267 299
268 TEST_F(AutoEnrollmentClientTest, AskForSameTwice) { 300 TEST_F(AutoEnrollmentClientTest, AskForSameTwice) {
269 InSequence sequence; 301 InSequence sequence;
270 ServerWillReply(16, false, false); 302 ServerWillReply(16, false, false);
271 ServerWillReply(16, false, false); 303 ServerWillReply(16, false, false);
272 client_->Start(); 304 client_->Start();
273 EXPECT_EQ(AUTO_ENROLLMENT_STATE_SERVER_ERROR, state_); 305 EXPECT_EQ(AUTO_ENROLLMENT_STATE_SERVER_ERROR, state_);
274 EXPECT_FALSE(HasCachedDecision()); 306 EXPECT_FALSE(HasCachedDecision());
275 EXPECT_FALSE(HasServerBackedState()); 307 EXPECT_FALSE(HasServerBackedState());
(...skipping 27 matching lines...) Expand all
303 EXPECT_EQ(AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, state_); 335 EXPECT_EQ(AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, state_);
304 VerifyCachedResult(false, 8); 336 VerifyCachedResult(false, 8);
305 EXPECT_FALSE(HasServerBackedState()); 337 EXPECT_FALSE(HasServerBackedState());
306 338
307 // Network changes don't trigger retries after obtaining a response from 339 // Network changes don't trigger retries after obtaining a response from
308 // the server. 340 // the server.
309 client_->OnNetworkChanged(net::NetworkChangeNotifier::CONNECTION_ETHERNET); 341 client_->OnNetworkChanged(net::NetworkChangeNotifier::CONNECTION_ETHERNET);
310 EXPECT_EQ(AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, state_); 342 EXPECT_EQ(AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, state_);
311 } 343 }
312 344
313 TEST_F(AutoEnrollmentClientTest, EnterpriseDevice) { 345 TEST_F(AutoEnrollmentClientTest, ForcedReEnrollment) {
314 ServerWillReply(-1, true, true); 346 ServerWillReply(-1, true, true);
315 ServerWillSendState( 347 ServerWillSendState(
316 "example.com", 348 "example.com",
317 em::DeviceStateRetrievalResponse::RESTORE_MODE_REENROLLMENT_ENFORCED); 349 em::DeviceStateRetrievalResponse::RESTORE_MODE_REENROLLMENT_ENFORCED,
350 nullptr);
318 client_->Start(); 351 client_->Start();
319 EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_); 352 EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_);
320 VerifyCachedResult(true, 8); 353 VerifyCachedResult(true, 8);
321 VerifyServerBackedState("example.com", 354 VerifyServerBackedState("example.com",
322 kDeviceStateRestoreModeReEnrollmentEnforced); 355 kDeviceStateRestoreModeReEnrollmentEnforced,
356 nullptr);
323 357
324 // Network changes don't trigger retries after obtaining a response from 358 // Network changes don't trigger retries after obtaining a response from
325 // the server. 359 // the server.
326 client_->OnNetworkChanged(net::NetworkChangeNotifier::CONNECTION_ETHERNET); 360 client_->OnNetworkChanged(net::NetworkChangeNotifier::CONNECTION_ETHERNET);
327 EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_); 361 EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_);
328 } 362 }
329 363
364 TEST_F(AutoEnrollmentClientTest, RequestedReEnrollment) {
365 ServerWillReply(-1, true, true);
366 ServerWillSendState(
367 "example.com",
368 em::DeviceStateRetrievalResponse::RESTORE_MODE_REENROLLMENT_REQUESTED,
369 nullptr);
370 client_->Start();
371 EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_);
372 VerifyCachedResult(true, 8);
373 VerifyServerBackedState("example.com",
374 kDeviceStateRestoreModeReEnrollmentRequested,
375 nullptr);
376 }
377
378 TEST_F(AutoEnrollmentClientTest, DeviceDisabled) {
379 ServerWillReply(-1, true, true);
380 ServerWillSendState(
381 "example.com",
382 em::DeviceStateRetrievalResponse::RESTORE_MODE_NONE,
383 make_scoped_ptr(new std::string(kDisabledMessage)));
384 client_->Start();
385 EXPECT_EQ(AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, state_);
386 VerifyCachedResult(true, 8);
387 VerifyServerBackedState("example.com",
388 "",
389 make_scoped_ptr(new std::string(kDisabledMessage)));
390 }
391
330 TEST_F(AutoEnrollmentClientTest, NoSerial) { 392 TEST_F(AutoEnrollmentClientTest, NoSerial) {
331 CreateClient("", true, 4, 8); 393 CreateClient("", true, 4, 8);
332 client_->Start(); 394 client_->Start();
333 EXPECT_EQ(AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, state_); 395 EXPECT_EQ(AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, state_);
334 EXPECT_FALSE(HasCachedDecision()); 396 EXPECT_FALSE(HasCachedDecision());
335 EXPECT_FALSE(HasServerBackedState()); 397 EXPECT_FALSE(HasServerBackedState());
336 } 398 }
337 399
338 TEST_F(AutoEnrollmentClientTest, NoBitsUploaded) { 400 TEST_F(AutoEnrollmentClientTest, NoBitsUploaded) {
339 CreateClient(kStateKey, true, 0, 0); 401 CreateClient(kStateKey, true, 0, 0);
(...skipping 25 matching lines...) Expand all
365 } 427 }
366 } 428 }
367 429
368 TEST_F(AutoEnrollmentClientTest, MoreThan32BitsUploaded) { 430 TEST_F(AutoEnrollmentClientTest, MoreThan32BitsUploaded) {
369 CreateClient(kStateKey, true, 10, 37); 431 CreateClient(kStateKey, true, 10, 37);
370 InSequence sequence; 432 InSequence sequence;
371 ServerWillReply(GG_INT64_C(1) << 37, false, false); 433 ServerWillReply(GG_INT64_C(1) << 37, false, false);
372 ServerWillReply(-1, true, true); 434 ServerWillReply(-1, true, true);
373 ServerWillSendState( 435 ServerWillSendState(
374 "example.com", 436 "example.com",
375 em::DeviceStateRetrievalResponse::RESTORE_MODE_REENROLLMENT_ENFORCED); 437 em::DeviceStateRetrievalResponse::RESTORE_MODE_REENROLLMENT_ENFORCED,
438 make_scoped_ptr(new std::string(kDisabledMessage)));
376 client_->Start(); 439 client_->Start();
377 EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_); 440 EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_);
378 VerifyCachedResult(true, 37); 441 VerifyCachedResult(true, 37);
379 VerifyServerBackedState("example.com", 442 VerifyServerBackedState("example.com",
380 kDeviceStateRestoreModeReEnrollmentEnforced); 443 kDeviceStateRestoreModeReEnrollmentEnforced,
444 make_scoped_ptr(new std::string(kDisabledMessage)));
381 } 445 }
382 446
383 TEST_F(AutoEnrollmentClientTest, ReuseCachedDecision) { 447 TEST_F(AutoEnrollmentClientTest, ReuseCachedDecision) {
384 EXPECT_CALL(*service_, CreateJob(_, _)).Times(0); 448 EXPECT_CALL(*service_, CreateJob(_, _)).Times(0);
385 local_state_->SetUserPref(prefs::kShouldAutoEnroll, 449 local_state_->SetUserPref(prefs::kShouldAutoEnroll,
386 new base::FundamentalValue(true)); 450 new base::FundamentalValue(true));
387 local_state_->SetUserPref(prefs::kAutoEnrollmentPowerLimit, 451 local_state_->SetUserPref(prefs::kAutoEnrollmentPowerLimit,
388 new base::FundamentalValue(8)); 452 new base::FundamentalValue(8));
389 ServerWillSendState( 453 ServerWillSendState(
390 "example.com", 454 "example.com",
391 em::DeviceStateRetrievalResponse::RESTORE_MODE_REENROLLMENT_ENFORCED); 455 em::DeviceStateRetrievalResponse::RESTORE_MODE_REENROLLMENT_ENFORCED,
456 make_scoped_ptr(new std::string(kDisabledMessage)));
392 client_->Start(); 457 client_->Start();
393 EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_); 458 EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_);
394 VerifyServerBackedState("example.com", 459 VerifyServerBackedState("example.com",
395 kDeviceStateRestoreModeReEnrollmentEnforced); 460 kDeviceStateRestoreModeReEnrollmentEnforced,
461 make_scoped_ptr(new std::string(kDisabledMessage)));
396 AutoEnrollmentClient::CancelAutoEnrollment(); 462 AutoEnrollmentClient::CancelAutoEnrollment();
397 client_->Start(); 463 client_->Start();
398 EXPECT_EQ(AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, state_); 464 EXPECT_EQ(AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, state_);
399 EXPECT_FALSE(HasServerBackedState()); 465 EXPECT_FALSE(HasServerBackedState());
400 } 466 }
401 467
402 TEST_F(AutoEnrollmentClientTest, RetryIfPowerLargerThanCached) { 468 TEST_F(AutoEnrollmentClientTest, RetryIfPowerLargerThanCached) {
403 local_state_->SetUserPref(prefs::kShouldAutoEnroll, 469 local_state_->SetUserPref(prefs::kShouldAutoEnroll,
404 new base::FundamentalValue(false)); 470 new base::FundamentalValue(false));
405 local_state_->SetUserPref(prefs::kAutoEnrollmentPowerLimit, 471 local_state_->SetUserPref(prefs::kAutoEnrollmentPowerLimit,
406 new base::FundamentalValue(8)); 472 new base::FundamentalValue(8));
407 CreateClient(kStateKey, true, 5, 10); 473 CreateClient(kStateKey, true, 5, 10);
408 ServerWillReply(-1, true, true); 474 ServerWillReply(-1, true, true);
409 ServerWillSendState( 475 ServerWillSendState(
410 "example.com", 476 "example.com",
411 em::DeviceStateRetrievalResponse::RESTORE_MODE_REENROLLMENT_ENFORCED); 477 em::DeviceStateRetrievalResponse::RESTORE_MODE_REENROLLMENT_ENFORCED,
478 make_scoped_ptr(new std::string(kDisabledMessage)));
412 client_->Start(); 479 client_->Start();
413 EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_); 480 EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_);
414 VerifyServerBackedState("example.com", 481 VerifyServerBackedState("example.com",
415 kDeviceStateRestoreModeReEnrollmentEnforced); 482 kDeviceStateRestoreModeReEnrollmentEnforced,
483 make_scoped_ptr(new std::string(kDisabledMessage)));
416 } 484 }
417 485
418 TEST_F(AutoEnrollmentClientTest, NetworkChangeRetryAfterErrors) { 486 TEST_F(AutoEnrollmentClientTest, NetworkChangeRetryAfterErrors) {
419 ServerWillFail(DM_STATUS_TEMPORARY_UNAVAILABLE); 487 ServerWillFail(DM_STATUS_TEMPORARY_UNAVAILABLE);
420 client_->Start(); 488 client_->Start();
421 // Don't invoke the callback if there was a network failure. 489 // Don't invoke the callback if there was a network failure.
422 EXPECT_EQ(AUTO_ENROLLMENT_STATE_SERVER_ERROR, state_); 490 EXPECT_EQ(AUTO_ENROLLMENT_STATE_SERVER_ERROR, state_);
423 EXPECT_FALSE(HasCachedDecision()); 491 EXPECT_FALSE(HasCachedDecision());
424 EXPECT_FALSE(HasServerBackedState()); 492 EXPECT_FALSE(HasServerBackedState());
425 493
426 // The client doesn't retry if no new connection became available. 494 // The client doesn't retry if no new connection became available.
427 client_->OnNetworkChanged(net::NetworkChangeNotifier::CONNECTION_NONE); 495 client_->OnNetworkChanged(net::NetworkChangeNotifier::CONNECTION_NONE);
428 EXPECT_EQ(AUTO_ENROLLMENT_STATE_SERVER_ERROR, state_); 496 EXPECT_EQ(AUTO_ENROLLMENT_STATE_SERVER_ERROR, state_);
429 EXPECT_FALSE(HasCachedDecision()); 497 EXPECT_FALSE(HasCachedDecision());
430 EXPECT_FALSE(HasServerBackedState()); 498 EXPECT_FALSE(HasServerBackedState());
431 499
432 // Retry once the network is back. 500 // Retry once the network is back.
433 ServerWillReply(-1, true, true); 501 ServerWillReply(-1, true, true);
434 ServerWillSendState( 502 ServerWillSendState(
435 "example.com", 503 "example.com",
436 em::DeviceStateRetrievalResponse::RESTORE_MODE_REENROLLMENT_ENFORCED); 504 em::DeviceStateRetrievalResponse::RESTORE_MODE_REENROLLMENT_ENFORCED,
505 make_scoped_ptr(new std::string(kDisabledMessage)));
437 client_->OnNetworkChanged(net::NetworkChangeNotifier::CONNECTION_ETHERNET); 506 client_->OnNetworkChanged(net::NetworkChangeNotifier::CONNECTION_ETHERNET);
438 EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_); 507 EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_);
439 EXPECT_TRUE(HasCachedDecision()); 508 EXPECT_TRUE(HasCachedDecision());
440 VerifyServerBackedState("example.com", 509 VerifyServerBackedState("example.com",
441 kDeviceStateRestoreModeReEnrollmentEnforced); 510 kDeviceStateRestoreModeReEnrollmentEnforced,
511 make_scoped_ptr(new std::string(kDisabledMessage)));
442 512
443 // Subsequent network changes don't trigger retries. 513 // Subsequent network changes don't trigger retries.
444 client_->OnNetworkChanged(net::NetworkChangeNotifier::CONNECTION_NONE); 514 client_->OnNetworkChanged(net::NetworkChangeNotifier::CONNECTION_NONE);
445 client_->OnNetworkChanged(net::NetworkChangeNotifier::CONNECTION_ETHERNET); 515 client_->OnNetworkChanged(net::NetworkChangeNotifier::CONNECTION_ETHERNET);
446 EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_); 516 EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_);
447 EXPECT_TRUE(HasCachedDecision()); 517 EXPECT_TRUE(HasCachedDecision());
448 VerifyServerBackedState("example.com", 518 VerifyServerBackedState("example.com",
449 kDeviceStateRestoreModeReEnrollmentEnforced); 519 kDeviceStateRestoreModeReEnrollmentEnforced,
520 make_scoped_ptr(new std::string(kDisabledMessage)));
450 } 521 }
451 522
452 TEST_F(AutoEnrollmentClientTest, CancelAndDeleteSoonWithPendingRequest) { 523 TEST_F(AutoEnrollmentClientTest, CancelAndDeleteSoonWithPendingRequest) {
453 MockDeviceManagementJob* job = NULL; 524 MockDeviceManagementJob* job = NULL;
454 ServerWillReplyAsync(&job); 525 ServerWillReplyAsync(&job);
455 EXPECT_FALSE(job); 526 EXPECT_FALSE(job);
456 client_->Start(); 527 client_->Start();
457 ASSERT_TRUE(job); 528 ASSERT_TRUE(job);
458 EXPECT_EQ(AUTO_ENROLLMENT_STATE_PENDING, state_); 529 EXPECT_EQ(AUTO_ENROLLMENT_STATE_PENDING, state_);
459 530
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
497 568
498 // Network changes that have been posted before are also ignored: 569 // Network changes that have been posted before are also ignored:
499 client->OnNetworkChanged(net::NetworkChangeNotifier::CONNECTION_ETHERNET); 570 client->OnNetworkChanged(net::NetworkChangeNotifier::CONNECTION_ETHERNET);
500 EXPECT_EQ(AUTO_ENROLLMENT_STATE_PENDING, state_); 571 EXPECT_EQ(AUTO_ENROLLMENT_STATE_PENDING, state_);
501 } 572 }
502 573
503 TEST_F(AutoEnrollmentClientTest, CancelAndDeleteSoonAfterCompletion) { 574 TEST_F(AutoEnrollmentClientTest, CancelAndDeleteSoonAfterCompletion) {
504 ServerWillReply(-1, true, true); 575 ServerWillReply(-1, true, true);
505 ServerWillSendState( 576 ServerWillSendState(
506 "example.com", 577 "example.com",
507 em::DeviceStateRetrievalResponse::RESTORE_MODE_REENROLLMENT_ENFORCED); 578 em::DeviceStateRetrievalResponse::RESTORE_MODE_REENROLLMENT_ENFORCED,
579 make_scoped_ptr(new std::string(kDisabledMessage)));
508 client_->Start(); 580 client_->Start();
509 EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_); 581 EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_);
510 VerifyServerBackedState("example.com", 582 VerifyServerBackedState("example.com",
511 kDeviceStateRestoreModeReEnrollmentEnforced); 583 kDeviceStateRestoreModeReEnrollmentEnforced,
584 make_scoped_ptr(new std::string(kDisabledMessage)));
512 585
513 // The client will delete itself immediately if there are no pending 586 // The client will delete itself immediately if there are no pending
514 // requests. 587 // requests.
515 EXPECT_TRUE(base::MessageLoop::current()->IsIdleForTesting()); 588 EXPECT_TRUE(base::MessageLoop::current()->IsIdleForTesting());
516 client_.release()->CancelAndDeleteSoon(); 589 client_.release()->CancelAndDeleteSoon();
517 EXPECT_TRUE(base::MessageLoop::current()->IsIdleForTesting()); 590 EXPECT_TRUE(base::MessageLoop::current()->IsIdleForTesting());
518 } 591 }
519 592
520 TEST_F(AutoEnrollmentClientTest, CancelAndDeleteSoonAfterNetworkFailure) { 593 TEST_F(AutoEnrollmentClientTest, CancelAndDeleteSoonAfterNetworkFailure) {
521 ServerWillFail(DM_STATUS_TEMPORARY_UNAVAILABLE); 594 ServerWillFail(DM_STATUS_TEMPORARY_UNAVAILABLE);
(...skipping 23 matching lines...) Expand all
545 InSequence sequence; 618 InSequence sequence;
546 // The default client uploads 4 bits. Make the server ask for 5. 619 // The default client uploads 4 bits. Make the server ask for 5.
547 ServerWillReply(1 << 5, false, false); 620 ServerWillReply(1 << 5, false, false);
548 EXPECT_CALL(*service_, StartJob(_, _, _, _, _, _, _)); 621 EXPECT_CALL(*service_, StartJob(_, _, _, _, _, _, _));
549 // Then reply with a valid response and include the hash. 622 // Then reply with a valid response and include the hash.
550 ServerWillReply(-1, true, true); 623 ServerWillReply(-1, true, true);
551 EXPECT_CALL(*service_, StartJob(_, _, _, _, _, _, _)); 624 EXPECT_CALL(*service_, StartJob(_, _, _, _, _, _, _));
552 // State download triggers. 625 // State download triggers.
553 ServerWillSendState( 626 ServerWillSendState(
554 "example.com", 627 "example.com",
555 em::DeviceStateRetrievalResponse::RESTORE_MODE_REENROLLMENT_ENFORCED); 628 em::DeviceStateRetrievalResponse::RESTORE_MODE_REENROLLMENT_ENFORCED,
629 make_scoped_ptr(new std::string(kDisabledMessage)));
556 EXPECT_CALL(*service_, StartJob(_, _, _, _, _, _, _)); 630 EXPECT_CALL(*service_, StartJob(_, _, _, _, _, _, _));
557 631
558 // Trigger a network change event. 632 // Trigger a network change event.
559 client_->OnNetworkChanged(net::NetworkChangeNotifier::CONNECTION_ETHERNET); 633 client_->OnNetworkChanged(net::NetworkChangeNotifier::CONNECTION_ETHERNET);
560 EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_); 634 EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_);
561 EXPECT_TRUE(HasCachedDecision()); 635 EXPECT_TRUE(HasCachedDecision());
562 VerifyServerBackedState("example.com", 636 VerifyServerBackedState("example.com",
563 kDeviceStateRestoreModeReEnrollmentEnforced); 637 kDeviceStateRestoreModeReEnrollmentEnforced,
638 make_scoped_ptr(new std::string(kDisabledMessage)));
564 Mock::VerifyAndClearExpectations(service_.get()); 639 Mock::VerifyAndClearExpectations(service_.get());
565 } 640 }
566 641
567 TEST_F(AutoEnrollmentClientTest, NoDeviceStateRetrieval) { 642 TEST_F(AutoEnrollmentClientTest, NoDeviceStateRetrieval) {
568 CreateClient(kStateKey, false, 4, 8); 643 CreateClient(kStateKey, false, 4, 8);
569 ServerWillReply(-1, true, true); 644 ServerWillReply(-1, true, true);
570 EXPECT_CALL(*service_, 645 EXPECT_CALL(*service_,
571 CreateJob(DeviceManagementRequestJob::TYPE_DEVICE_STATE_RETRIEVAL, 646 CreateJob(DeviceManagementRequestJob::TYPE_DEVICE_STATE_RETRIEVAL,
572 _)).Times(0); 647 _)).Times(0);
573 client_->Start(); 648 client_->Start();
574 EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_); 649 EXPECT_EQ(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT, state_);
575 VerifyCachedResult(true, 8); 650 VerifyCachedResult(true, 8);
576 EXPECT_FALSE(HasServerBackedState()); 651 EXPECT_FALSE(HasServerBackedState());
577 } 652 }
578 653
579 } // namespace 654 } // namespace
580 } // namespace policy 655 } // namespace policy
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/policy/auto_enrollment_client.cc ('k') | chrome/browser/chromeos/policy/server_backed_device_state.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698