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

Side by Side Diff: chrome/browser/signin/easy_unlock_screenlock_state_handler_unittest.cc

Issue 1113043004: [Smart Lock] Extract the screenlock state to the proximity_auth component. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix unit tests compile Created 5 years, 7 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/signin/easy_unlock_screenlock_state_handler.h" 5 #include "chrome/browser/signin/easy_unlock_screenlock_state_handler.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/strings/string16.h" 10 #include "base/strings/string16.h"
11 #include "base/strings/string_number_conversions.h"
11 #include "base/strings/string_util.h" 12 #include "base/strings/string_util.h"
12 #include "base/strings/utf_string_conversions.h" 13 #include "base/strings/utf_string_conversions.h"
13 #include "base/test/histogram_tester.h" 14 #include "base/test/histogram_tester.h"
14 #include "chrome/browser/signin/easy_unlock_metrics.h" 15 #include "chrome/browser/signin/easy_unlock_metrics.h"
15 #include "chrome/browser/signin/easy_unlock_service.h" 16 #include "chrome/browser/signin/easy_unlock_service.h"
16 #include "chrome/browser/signin/proximity_auth_facade.h" 17 #include "chrome/browser/signin/proximity_auth_facade.h"
17 #include "chrome/grit/generated_resources.h" 18 #include "chrome/grit/generated_resources.h"
18 #include "components/proximity_auth/screenlock_bridge.h" 19 #include "components/proximity_auth/screenlock_bridge.h"
20 #include "components/proximity_auth/screenlock_state.h"
19 #include "testing/gtest/include/gtest/gtest.h" 21 #include "testing/gtest/include/gtest/gtest.h"
20 #include "ui/base/l10n/l10n_util.h" 22 #include "ui/base/l10n/l10n_util.h"
21 23
24 using proximity_auth::ScreenlockState;
25
22 namespace { 26 namespace {
23 27
24 // Icons used by EasyUnlockScreenlockStateHandler. The icon id values are the 28 // Icons used by EasyUnlockScreenlockStateHandler. The icon id values are the
25 // same as the ones set by proximity_auth::ScreenlockBridge. 29 // same as the ones set by proximity_auth::ScreenlockBridge.
26 const char kLockedIconId[] = "locked"; 30 const char kLockedIconId[] = "locked";
27 const char kLockedToBeActivatedIconId[] = "locked-to-be-activated"; 31 const char kLockedToBeActivatedIconId[] = "locked-to-be-activated";
28 const char kUnlockedIconId[] = "unlocked"; 32 const char kUnlockedIconId[] = "unlocked";
29 const char kSpinnerIconId[] = "spinner"; 33 const char kSpinnerIconId[] = "spinner";
30 const char kHardlockedIconId[] = "hardlocked"; 34 const char kHardlockedIconId[] = "hardlocked";
31 35
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
233 // The user associated with |state_handler_|. 237 // The user associated with |state_handler_|.
234 const std::string user_email_; 238 const std::string user_email_;
235 239
236 // Faked lock handler given to proximity_auth::ScreenlockBridge during the 240 // Faked lock handler given to proximity_auth::ScreenlockBridge during the
237 // test. Abstracts the screen lock UI. 241 // test. Abstracts the screen lock UI.
238 scoped_ptr<TestLockHandler> lock_handler_; 242 scoped_ptr<TestLockHandler> lock_handler_;
239 }; 243 };
240 244
241 TEST_F(EasyUnlockScreenlockStateHandlerTest, AuthenticatedTrialRun) { 245 TEST_F(EasyUnlockScreenlockStateHandlerTest, AuthenticatedTrialRun) {
242 state_handler_->SetTrialRun(); 246 state_handler_->SetTrialRun();
243 state_handler_->ChangeState( 247 state_handler_->ChangeState(ScreenlockState::AUTHENTICATED);
244 EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED);
245 248
246 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount()); 249 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount());
247 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::USER_CLICK, 250 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::USER_CLICK,
248 lock_handler_->GetAuthType(user_email_)); 251 lock_handler_->GetAuthType(user_email_));
249 252
250 ASSERT_TRUE(lock_handler_->HasCustomIcon()); 253 ASSERT_TRUE(lock_handler_->HasCustomIcon());
251 EXPECT_EQ(kUnlockedIconId, lock_handler_->GetCustomIconId()); 254 EXPECT_EQ(kUnlockedIconId, lock_handler_->GetCustomIconId());
252 EXPECT_TRUE(lock_handler_->CustomIconHasTooltip()); 255 EXPECT_TRUE(lock_handler_->CustomIconHasTooltip());
253 EXPECT_TRUE(lock_handler_->IsCustomIconTooltipAutoshown()); 256 EXPECT_TRUE(lock_handler_->IsCustomIconTooltipAutoshown());
254 EXPECT_FALSE(lock_handler_->CustomIconHardlocksOnClick()); 257 EXPECT_FALSE(lock_handler_->CustomIconHardlocksOnClick());
255 258
256 state_handler_->ChangeState( 259 state_handler_->ChangeState(ScreenlockState::AUTHENTICATED);
257 EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED);
258 // Duplicated state change should be ignored. 260 // Duplicated state change should be ignored.
259 EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount()); 261 EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount());
260 } 262 }
261 263
262 TEST_F(EasyUnlockScreenlockStateHandlerTest, AuthenticatedNotInitialRun) { 264 TEST_F(EasyUnlockScreenlockStateHandlerTest, AuthenticatedNotInitialRun) {
263 state_handler_->ChangeState( 265 state_handler_->ChangeState(ScreenlockState::AUTHENTICATED);
264 EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED);
265 266
266 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount()); 267 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount());
267 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::USER_CLICK, 268 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::USER_CLICK,
268 lock_handler_->GetAuthType(user_email_)); 269 lock_handler_->GetAuthType(user_email_));
269 270
270 ASSERT_TRUE(lock_handler_->HasCustomIcon()); 271 ASSERT_TRUE(lock_handler_->HasCustomIcon());
271 EXPECT_EQ(kUnlockedIconId, lock_handler_->GetCustomIconId()); 272 EXPECT_EQ(kUnlockedIconId, lock_handler_->GetCustomIconId());
272 EXPECT_TRUE(lock_handler_->CustomIconHasTooltip()); 273 EXPECT_TRUE(lock_handler_->CustomIconHasTooltip());
273 EXPECT_FALSE(lock_handler_->IsCustomIconTooltipAutoshown()); 274 EXPECT_FALSE(lock_handler_->IsCustomIconTooltipAutoshown());
274 EXPECT_TRUE(lock_handler_->CustomIconHardlocksOnClick()); 275 EXPECT_TRUE(lock_handler_->CustomIconHardlocksOnClick());
275 } 276 }
276 277
277 TEST_F(EasyUnlockScreenlockStateHandlerTest, IsActive) { 278 TEST_F(EasyUnlockScreenlockStateHandlerTest, IsActive) {
278 EXPECT_FALSE(state_handler_->IsActive()); 279 EXPECT_FALSE(state_handler_->IsActive());
279 state_handler_->ChangeState( 280 state_handler_->ChangeState(ScreenlockState::AUTHENTICATED);
280 EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED);
281 EXPECT_TRUE(state_handler_->IsActive()); 281 EXPECT_TRUE(state_handler_->IsActive());
282 state_handler_->ChangeState( 282 state_handler_->ChangeState(ScreenlockState::INACTIVE);
283 EasyUnlockScreenlockStateHandler::STATE_INACTIVE);
284 EXPECT_FALSE(state_handler_->IsActive()); 283 EXPECT_FALSE(state_handler_->IsActive());
285 } 284 }
286 285
287 TEST_F(EasyUnlockScreenlockStateHandlerTest, BluetoothConnecting) { 286 TEST_F(EasyUnlockScreenlockStateHandlerTest, BluetoothConnecting) {
288 state_handler_->ChangeState( 287 state_handler_->ChangeState(ScreenlockState::BLUETOOTH_CONNECTING);
289 EasyUnlockScreenlockStateHandler::STATE_BLUETOOTH_CONNECTING);
290 EXPECT_TRUE(state_handler_->IsActive()); 288 EXPECT_TRUE(state_handler_->IsActive());
291 289
292 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount()); 290 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount());
293 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::OFFLINE_PASSWORD, 291 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::OFFLINE_PASSWORD,
294 lock_handler_->GetAuthType(user_email_)); 292 lock_handler_->GetAuthType(user_email_));
295 293
296 ASSERT_TRUE(lock_handler_->HasCustomIcon()); 294 ASSERT_TRUE(lock_handler_->HasCustomIcon());
297 EXPECT_EQ(kSpinnerIconId, lock_handler_->GetCustomIconId()); 295 EXPECT_EQ(kSpinnerIconId, lock_handler_->GetCustomIconId());
298 EXPECT_FALSE(lock_handler_->CustomIconHasTooltip()); 296 EXPECT_FALSE(lock_handler_->CustomIconHasTooltip());
299 EXPECT_TRUE(lock_handler_->CustomIconHardlocksOnClick()); 297 EXPECT_TRUE(lock_handler_->CustomIconHardlocksOnClick());
300 298
301 state_handler_->ChangeState( 299 state_handler_->ChangeState(ScreenlockState::BLUETOOTH_CONNECTING);
302 EasyUnlockScreenlockStateHandler::STATE_BLUETOOTH_CONNECTING);
303 // Duplicated state change should be ignored. 300 // Duplicated state change should be ignored.
304 EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount()); 301 EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount());
305 } 302 }
306 303
307 TEST_F(EasyUnlockScreenlockStateHandlerTest, HardlockedState) { 304 TEST_F(EasyUnlockScreenlockStateHandlerTest, HardlockedState) {
308 state_handler_->ChangeState( 305 state_handler_->ChangeState(ScreenlockState::AUTHENTICATED);
309 EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED);
310 306
311 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount()); 307 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount());
312 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::USER_CLICK, 308 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::USER_CLICK,
313 lock_handler_->GetAuthType(user_email_)); 309 lock_handler_->GetAuthType(user_email_));
314 310
315 state_handler_->SetHardlockState( 311 state_handler_->SetHardlockState(
316 EasyUnlockScreenlockStateHandler::USER_HARDLOCK); 312 EasyUnlockScreenlockStateHandler::USER_HARDLOCK);
317 313
318 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount()); 314 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount());
319 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::OFFLINE_PASSWORD, 315 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::OFFLINE_PASSWORD,
320 lock_handler_->GetAuthType(user_email_)); 316 lock_handler_->GetAuthType(user_email_));
321 317
322 ASSERT_TRUE(lock_handler_->HasCustomIcon()); 318 ASSERT_TRUE(lock_handler_->HasCustomIcon());
323 EXPECT_EQ(kHardlockedIconId, lock_handler_->GetCustomIconId()); 319 EXPECT_EQ(kHardlockedIconId, lock_handler_->GetCustomIconId());
324 EXPECT_TRUE(lock_handler_->CustomIconHasTooltip()); 320 EXPECT_TRUE(lock_handler_->CustomIconHasTooltip());
325 EXPECT_TRUE(lock_handler_->IsCustomIconTooltipAutoshown()); 321 EXPECT_TRUE(lock_handler_->IsCustomIconTooltipAutoshown());
326 EXPECT_FALSE(lock_handler_->CustomIconHardlocksOnClick()); 322 EXPECT_FALSE(lock_handler_->CustomIconHardlocksOnClick());
327 323
328 state_handler_->SetHardlockState( 324 state_handler_->SetHardlockState(
329 EasyUnlockScreenlockStateHandler::USER_HARDLOCK); 325 EasyUnlockScreenlockStateHandler::USER_HARDLOCK);
330 326
331 EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount()); 327 EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount());
332 ASSERT_TRUE(lock_handler_->HasCustomIcon()); 328 ASSERT_TRUE(lock_handler_->HasCustomIcon());
333 } 329 }
334 330
335 TEST_F(EasyUnlockScreenlockStateHandlerTest, HardlockedStateNoPairing) { 331 TEST_F(EasyUnlockScreenlockStateHandlerTest, HardlockedStateNoPairing) {
336 state_handler_->ChangeState( 332 state_handler_->ChangeState(ScreenlockState::AUTHENTICATED);
337 EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED);
338 333
339 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount()); 334 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount());
340 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::USER_CLICK, 335 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::USER_CLICK,
341 lock_handler_->GetAuthType(user_email_)); 336 lock_handler_->GetAuthType(user_email_));
342 337
343 state_handler_->SetHardlockState( 338 state_handler_->SetHardlockState(
344 EasyUnlockScreenlockStateHandler::NO_PAIRING); 339 EasyUnlockScreenlockStateHandler::NO_PAIRING);
345 340
346 EXPECT_FALSE(lock_handler_->HasCustomIcon()); 341 EXPECT_FALSE(lock_handler_->HasCustomIcon());
347 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::OFFLINE_PASSWORD, 342 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::OFFLINE_PASSWORD,
348 lock_handler_->GetAuthType(user_email_)); 343 lock_handler_->GetAuthType(user_email_));
349 } 344 }
350 345
351 TEST_F(EasyUnlockScreenlockStateHandlerTest, StatesWithLockedIcon) { 346 TEST_F(EasyUnlockScreenlockStateHandlerTest, StatesWithLockedIcon) {
352 std::vector<EasyUnlockScreenlockStateHandler::State> states; 347 std::vector<ScreenlockState> states;
353 states.push_back(EasyUnlockScreenlockStateHandler::STATE_NO_BLUETOOTH); 348 states.push_back(ScreenlockState::NO_BLUETOOTH);
354 states.push_back(EasyUnlockScreenlockStateHandler::STATE_NO_PHONE); 349 states.push_back(ScreenlockState::NO_PHONE);
355 states.push_back(EasyUnlockScreenlockStateHandler::STATE_PHONE_UNSUPPORTED); 350 states.push_back(ScreenlockState::PHONE_UNSUPPORTED);
356 states.push_back(EasyUnlockScreenlockStateHandler::STATE_PHONE_UNLOCKABLE); 351 states.push_back(ScreenlockState::PHONE_NOT_LOCKABLE);
357 states.push_back( 352 states.push_back(ScreenlockState::PHONE_NOT_AUTHENTICATED);
358 EasyUnlockScreenlockStateHandler::STATE_PHONE_NOT_AUTHENTICATED); 353 states.push_back(ScreenlockState::PHONE_LOCKED);
359 states.push_back(EasyUnlockScreenlockStateHandler::STATE_PHONE_LOCKED);
360 354
361 for (size_t i = 0; i < states.size(); ++i) { 355 for (size_t i = 0; i < states.size(); ++i) {
356 SCOPED_TRACE(base::IntToString(i));
362 state_handler_->ChangeState(states[i]); 357 state_handler_->ChangeState(states[i]);
363 EXPECT_TRUE(state_handler_->IsActive()); 358 EXPECT_TRUE(state_handler_->IsActive());
364 359
365 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount()) 360 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount());
366 << "State: " << states[i];
367 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::OFFLINE_PASSWORD, 361 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::OFFLINE_PASSWORD,
368 lock_handler_->GetAuthType(user_email_)) 362 lock_handler_->GetAuthType(user_email_));
369 << "State: " << states[i];
370 363
371 ASSERT_TRUE(lock_handler_->HasCustomIcon()) 364 ASSERT_TRUE(lock_handler_->HasCustomIcon());
372 << "State: " << states[i]; 365 EXPECT_EQ(kLockedIconId, lock_handler_->GetCustomIconId());
373 EXPECT_EQ(kLockedIconId, lock_handler_->GetCustomIconId()) 366 EXPECT_TRUE(lock_handler_->CustomIconHasTooltip());
374 << "State: " << states[i]; 367 EXPECT_TRUE(lock_handler_->IsCustomIconTooltipAutoshown());
375 EXPECT_TRUE(lock_handler_->CustomIconHasTooltip()) 368 EXPECT_TRUE(lock_handler_->CustomIconHardlocksOnClick());
376 << "State: " << states[i];
377 EXPECT_TRUE(lock_handler_->IsCustomIconTooltipAutoshown())
378 << "State: " << states[i];
379 EXPECT_TRUE(lock_handler_->CustomIconHardlocksOnClick())
380 << "State: " << states[i];
381 369
382 state_handler_->ChangeState(states[i]); 370 state_handler_->ChangeState(states[i]);
383 EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount()) 371 EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount());
384 << "State: " << states[i];
385 } 372 }
386 } 373 }
387 374
388 TEST_F(EasyUnlockScreenlockStateHandlerTest, SettingTrialRunUpdatesUI) { 375 TEST_F(EasyUnlockScreenlockStateHandlerTest, SettingTrialRunUpdatesUI) {
389 state_handler_->ChangeState( 376 state_handler_->ChangeState(ScreenlockState::AUTHENTICATED);
390 EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED);
391 377
392 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount()); 378 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount());
393 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::USER_CLICK, 379 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::USER_CLICK,
394 lock_handler_->GetAuthType(user_email_)); 380 lock_handler_->GetAuthType(user_email_));
395 381
396 ASSERT_TRUE(lock_handler_->HasCustomIcon()); 382 ASSERT_TRUE(lock_handler_->HasCustomIcon());
397 ASSERT_FALSE(lock_handler_->IsCustomIconTooltipAutoshown()); 383 ASSERT_FALSE(lock_handler_->IsCustomIconTooltipAutoshown());
398 384
399 state_handler_->SetTrialRun(); 385 state_handler_->SetTrialRun();
400 386
401 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount()); 387 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount());
402 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::USER_CLICK, 388 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::USER_CLICK,
403 lock_handler_->GetAuthType(user_email_)); 389 lock_handler_->GetAuthType(user_email_));
404 390
405 ASSERT_TRUE(lock_handler_->HasCustomIcon()); 391 ASSERT_TRUE(lock_handler_->HasCustomIcon());
406 ASSERT_TRUE(lock_handler_->IsCustomIconTooltipAutoshown()); 392 ASSERT_TRUE(lock_handler_->IsCustomIconTooltipAutoshown());
407 } 393 }
408 394
409 TEST_F(EasyUnlockScreenlockStateHandlerTest, 395 TEST_F(EasyUnlockScreenlockStateHandlerTest,
410 LockScreenClearedOnStateHandlerDestruction) { 396 LockScreenClearedOnStateHandlerDestruction) {
411 state_handler_->ChangeState( 397 state_handler_->ChangeState(ScreenlockState::AUTHENTICATED);
412 EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED);
413 398
414 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount()); 399 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount());
415 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::USER_CLICK, 400 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::USER_CLICK,
416 lock_handler_->GetAuthType(user_email_)); 401 lock_handler_->GetAuthType(user_email_));
417 402
418 ASSERT_TRUE(lock_handler_->HasCustomIcon()); 403 ASSERT_TRUE(lock_handler_->HasCustomIcon());
419 404
420 state_handler_.reset(); 405 state_handler_.reset();
421 406
422 EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount()); 407 EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount());
423 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::OFFLINE_PASSWORD, 408 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::OFFLINE_PASSWORD,
424 lock_handler_->GetAuthType(user_email_)); 409 lock_handler_->GetAuthType(user_email_));
425 410
426 ASSERT_FALSE(lock_handler_->HasCustomIcon()); 411 ASSERT_FALSE(lock_handler_->HasCustomIcon());
427 } 412 }
428 413
429 TEST_F(EasyUnlockScreenlockStateHandlerTest, StatePreservedWhenScreenUnlocks) { 414 TEST_F(EasyUnlockScreenlockStateHandlerTest, StatePreservedWhenScreenUnlocks) {
430 state_handler_->ChangeState( 415 state_handler_->ChangeState(ScreenlockState::AUTHENTICATED);
431 EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED);
432 416
433 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount()); 417 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount());
434 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::USER_CLICK, 418 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::USER_CLICK,
435 lock_handler_->GetAuthType(user_email_)); 419 lock_handler_->GetAuthType(user_email_));
436 ASSERT_TRUE(lock_handler_->HasCustomIcon()); 420 ASSERT_TRUE(lock_handler_->HasCustomIcon());
437 421
438 GetScreenlockBridgeInstance()->SetLockHandler(NULL); 422 GetScreenlockBridgeInstance()->SetLockHandler(NULL);
439 lock_handler_.reset(new TestLockHandler(user_email_)); 423 lock_handler_.reset(new TestLockHandler(user_email_));
440 EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount()); 424 EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount());
441 GetScreenlockBridgeInstance()->SetLockHandler(lock_handler_.get()); 425 GetScreenlockBridgeInstance()->SetLockHandler(lock_handler_.get());
442 426
443 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount()); 427 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount());
444 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::USER_CLICK, 428 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::USER_CLICK,
445 lock_handler_->GetAuthType(user_email_)); 429 lock_handler_->GetAuthType(user_email_));
446 ASSERT_TRUE(lock_handler_->HasCustomIcon()); 430 ASSERT_TRUE(lock_handler_->HasCustomIcon());
447 } 431 }
448 432
449 TEST_F(EasyUnlockScreenlockStateHandlerTest, StateChangeWhileScreenUnlocked) { 433 TEST_F(EasyUnlockScreenlockStateHandlerTest, StateChangeWhileScreenUnlocked) {
450 state_handler_->ChangeState( 434 state_handler_->ChangeState(ScreenlockState::AUTHENTICATED);
451 EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED);
452 435
453 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount()); 436 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount());
454 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::USER_CLICK, 437 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::USER_CLICK,
455 lock_handler_->GetAuthType(user_email_)); 438 lock_handler_->GetAuthType(user_email_));
456 ASSERT_TRUE(lock_handler_->HasCustomIcon()); 439 ASSERT_TRUE(lock_handler_->HasCustomIcon());
457 440
458 GetScreenlockBridgeInstance()->SetLockHandler(NULL); 441 GetScreenlockBridgeInstance()->SetLockHandler(NULL);
459 lock_handler_.reset(new TestLockHandler(user_email_)); 442 lock_handler_.reset(new TestLockHandler(user_email_));
460 EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount()); 443 EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount());
461 444
462 state_handler_->ChangeState( 445 state_handler_->ChangeState(ScreenlockState::BLUETOOTH_CONNECTING);
463 EasyUnlockScreenlockStateHandler::STATE_BLUETOOTH_CONNECTING);
464 446
465 GetScreenlockBridgeInstance()->SetLockHandler(lock_handler_.get()); 447 GetScreenlockBridgeInstance()->SetLockHandler(lock_handler_.get());
466 448
467 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount()); 449 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount());
468 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::OFFLINE_PASSWORD, 450 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::OFFLINE_PASSWORD,
469 lock_handler_->GetAuthType(user_email_)); 451 lock_handler_->GetAuthType(user_email_));
470 ASSERT_TRUE(lock_handler_->HasCustomIcon()); 452 ASSERT_TRUE(lock_handler_->HasCustomIcon());
471 EXPECT_EQ(kSpinnerIconId, lock_handler_->GetCustomIconId()); 453 EXPECT_EQ(kSpinnerIconId, lock_handler_->GetCustomIconId());
472 } 454 }
473 455
474 TEST_F(EasyUnlockScreenlockStateHandlerTest, 456 TEST_F(EasyUnlockScreenlockStateHandlerTest,
475 HardlockEnabledAfterInitialUnlock) { 457 HardlockEnabledAfterInitialUnlock) {
476 state_handler_->SetTrialRun(); 458 state_handler_->SetTrialRun();
477 459
478 std::vector<EasyUnlockScreenlockStateHandler::State> states; 460 std::vector<ScreenlockState> states;
479 states.push_back( 461 states.push_back(ScreenlockState::BLUETOOTH_CONNECTING);
480 EasyUnlockScreenlockStateHandler::STATE_BLUETOOTH_CONNECTING); 462 states.push_back(ScreenlockState::PHONE_NOT_AUTHENTICATED);
481 states.push_back( 463 states.push_back(ScreenlockState::NO_BLUETOOTH);
482 EasyUnlockScreenlockStateHandler::STATE_PHONE_NOT_AUTHENTICATED); 464 states.push_back(ScreenlockState::NO_PHONE);
483 states.push_back(EasyUnlockScreenlockStateHandler::STATE_NO_BLUETOOTH); 465 states.push_back(ScreenlockState::PHONE_UNSUPPORTED);
484 states.push_back(EasyUnlockScreenlockStateHandler::STATE_NO_PHONE); 466 states.push_back(ScreenlockState::PHONE_NOT_LOCKABLE);
485 states.push_back(EasyUnlockScreenlockStateHandler::STATE_PHONE_UNSUPPORTED);
486 states.push_back(EasyUnlockScreenlockStateHandler::STATE_PHONE_UNLOCKABLE);
487 // This one should go last as changing state to AUTHENTICATED enables hard 467 // This one should go last as changing state to AUTHENTICATED enables hard
488 // locking. 468 // locking.
489 states.push_back(EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED); 469 states.push_back(ScreenlockState::AUTHENTICATED);
490 470
491 for (size_t i = 0; i < states.size(); ++i) { 471 for (size_t i = 0; i < states.size(); ++i) {
472 SCOPED_TRACE(base::IntToString(i));
492 state_handler_->ChangeState(states[i]); 473 state_handler_->ChangeState(states[i]);
493 ASSERT_TRUE(lock_handler_->HasCustomIcon()) << "State: " << states[i]; 474 ASSERT_TRUE(lock_handler_->HasCustomIcon());
494 EXPECT_FALSE(lock_handler_->CustomIconHardlocksOnClick()) 475 EXPECT_FALSE(lock_handler_->CustomIconHardlocksOnClick());
495 << "State: " << states[i];
496 } 476 }
497 477
498 GetScreenlockBridgeInstance()->SetLockHandler(NULL); 478 GetScreenlockBridgeInstance()->SetLockHandler(NULL);
499 lock_handler_.reset(new TestLockHandler(user_email_)); 479 lock_handler_.reset(new TestLockHandler(user_email_));
500 GetScreenlockBridgeInstance()->SetLockHandler(lock_handler_.get()); 480 GetScreenlockBridgeInstance()->SetLockHandler(lock_handler_.get());
501 481
502 for (size_t i = 0; i < states.size(); ++i) { 482 for (size_t i = 0; i < states.size(); ++i) {
483 SCOPED_TRACE(base::IntToString(i));
503 state_handler_->ChangeState(states[i]); 484 state_handler_->ChangeState(states[i]);
504 ASSERT_TRUE(lock_handler_->HasCustomIcon()) << "State: " << states[i]; 485 ASSERT_TRUE(lock_handler_->HasCustomIcon());
505 EXPECT_TRUE(lock_handler_->CustomIconHardlocksOnClick()) 486 EXPECT_TRUE(lock_handler_->CustomIconHardlocksOnClick());
506 << "State: " << states[i];
507 } 487 }
508 } 488 }
509 489
510 TEST_F(EasyUnlockScreenlockStateHandlerTest, 490 TEST_F(EasyUnlockScreenlockStateHandlerTest,
511 NoPairingHardlockClearsIcon) { 491 NoPairingHardlockClearsIcon) {
512 state_handler_->ChangeState( 492 state_handler_->ChangeState(ScreenlockState::PHONE_LOCKED);
513 EasyUnlockScreenlockStateHandler::STATE_PHONE_LOCKED);
514 493
515 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount()); 494 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount());
516 ASSERT_TRUE(lock_handler_->HasCustomIcon()); 495 ASSERT_TRUE(lock_handler_->HasCustomIcon());
517 EXPECT_EQ(kLockedIconId, lock_handler_->GetCustomIconId()); 496 EXPECT_EQ(kLockedIconId, lock_handler_->GetCustomIconId());
518 497
519 state_handler_->SetHardlockState( 498 state_handler_->SetHardlockState(
520 EasyUnlockScreenlockStateHandler::NO_PAIRING); 499 EasyUnlockScreenlockStateHandler::NO_PAIRING);
521 500
522 EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount()); 501 EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount());
523 ASSERT_FALSE(lock_handler_->HasCustomIcon()); 502 ASSERT_FALSE(lock_handler_->HasCustomIcon());
524 } 503 }
525 504
526 TEST_F(EasyUnlockScreenlockStateHandlerTest, PairingChangedHardlock) { 505 TEST_F(EasyUnlockScreenlockStateHandlerTest, PairingChangedHardlock) {
527 state_handler_->ChangeState( 506 state_handler_->ChangeState(ScreenlockState::PHONE_LOCKED);
528 EasyUnlockScreenlockStateHandler::STATE_PHONE_LOCKED);
529 507
530 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount()); 508 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount());
531 ASSERT_TRUE(lock_handler_->HasCustomIcon()); 509 ASSERT_TRUE(lock_handler_->HasCustomIcon());
532 EXPECT_EQ(kLockedIconId, lock_handler_->GetCustomIconId()); 510 EXPECT_EQ(kLockedIconId, lock_handler_->GetCustomIconId());
533 511
534 state_handler_->SetHardlockState( 512 state_handler_->SetHardlockState(
535 EasyUnlockScreenlockStateHandler::PAIRING_CHANGED); 513 EasyUnlockScreenlockStateHandler::PAIRING_CHANGED);
536 514
537 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount()); 515 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount());
538 ASSERT_TRUE(lock_handler_->HasCustomIcon()); 516 ASSERT_TRUE(lock_handler_->HasCustomIcon());
539 EXPECT_EQ(kLockedToBeActivatedIconId, lock_handler_->GetCustomIconId()); 517 EXPECT_EQ(kLockedToBeActivatedIconId, lock_handler_->GetCustomIconId());
540 518
541 state_handler_->ChangeState( 519 state_handler_->ChangeState(ScreenlockState::AUTHENTICATED);
542 EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED);
543 520
544 EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount()); 521 EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount());
545 ASSERT_TRUE(lock_handler_->HasCustomIcon()); 522 ASSERT_TRUE(lock_handler_->HasCustomIcon());
546 EXPECT_EQ(kLockedToBeActivatedIconId, lock_handler_->GetCustomIconId()); 523 EXPECT_EQ(kLockedToBeActivatedIconId, lock_handler_->GetCustomIconId());
547 } 524 }
548 525
549 TEST_F(EasyUnlockScreenlockStateHandlerTest, 526 TEST_F(EasyUnlockScreenlockStateHandlerTest,
550 PairingChangedHardlockIneffectiveOnInitialRun) { 527 PairingChangedHardlockIneffectiveOnInitialRun) {
551 state_handler_->SetTrialRun(); 528 state_handler_->SetTrialRun();
552 529
553 state_handler_->ChangeState( 530 state_handler_->ChangeState(ScreenlockState::PHONE_LOCKED);
554 EasyUnlockScreenlockStateHandler::STATE_PHONE_LOCKED);
555 531
556 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount()); 532 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount());
557 ASSERT_TRUE(lock_handler_->HasCustomIcon()); 533 ASSERT_TRUE(lock_handler_->HasCustomIcon());
558 EXPECT_EQ(kLockedIconId, lock_handler_->GetCustomIconId()); 534 EXPECT_EQ(kLockedIconId, lock_handler_->GetCustomIconId());
559 535
560 state_handler_->SetHardlockState( 536 state_handler_->SetHardlockState(
561 EasyUnlockScreenlockStateHandler::PAIRING_CHANGED); 537 EasyUnlockScreenlockStateHandler::PAIRING_CHANGED);
562 538
563 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount()); 539 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount());
564 ASSERT_TRUE(lock_handler_->HasCustomIcon()); 540 ASSERT_TRUE(lock_handler_->HasCustomIcon());
565 EXPECT_EQ(kLockedIconId, lock_handler_->GetCustomIconId()); 541 EXPECT_EQ(kLockedIconId, lock_handler_->GetCustomIconId());
566 } 542 }
567 543
568 TEST_F(EasyUnlockScreenlockStateHandlerTest, InactiveStateHidesIcon) { 544 TEST_F(EasyUnlockScreenlockStateHandlerTest, InactiveStateHidesIcon) {
569 state_handler_->ChangeState( 545 state_handler_->ChangeState(ScreenlockState::AUTHENTICATED);
570 EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED);
571 546
572 ASSERT_TRUE(lock_handler_->HasCustomIcon()); 547 ASSERT_TRUE(lock_handler_->HasCustomIcon());
573 548
574 state_handler_->ChangeState( 549 state_handler_->ChangeState(ScreenlockState::INACTIVE);
575 EasyUnlockScreenlockStateHandler::STATE_INACTIVE);
576 550
577 ASSERT_FALSE(lock_handler_->HasCustomIcon()); 551 ASSERT_FALSE(lock_handler_->HasCustomIcon());
578 } 552 }
579 553
580 TEST_F(EasyUnlockScreenlockStateHandlerTest, 554 TEST_F(EasyUnlockScreenlockStateHandlerTest,
581 AuthenticatedStateClearsPreviousAuthValue) { 555 AuthenticatedStateClearsPreviousAuthValue) {
582 state_handler_->ChangeState( 556 state_handler_->ChangeState(ScreenlockState::INACTIVE);
583 EasyUnlockScreenlockStateHandler::STATE_INACTIVE);
584 557
585 lock_handler_->SetAuthValue(base::ASCIIToUTF16("xxx")); 558 lock_handler_->SetAuthValue(base::ASCIIToUTF16("xxx"));
586 559
587 state_handler_->ChangeState( 560 state_handler_->ChangeState(ScreenlockState::AUTHENTICATED);
588 EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED);
589 561
590 EXPECT_EQ(l10n_util::GetStringUTF16( 562 EXPECT_EQ(l10n_util::GetStringUTF16(
591 IDS_EASY_UNLOCK_SCREENLOCK_USER_POD_AUTH_VALUE), 563 IDS_EASY_UNLOCK_SCREENLOCK_USER_POD_AUTH_VALUE),
592 lock_handler_->GetAuthValue()); 564 lock_handler_->GetAuthValue());
593 565
594 state_handler_->ChangeState( 566 state_handler_->ChangeState(ScreenlockState::NO_PHONE);
595 EasyUnlockScreenlockStateHandler::STATE_NO_PHONE);
596 567
597 EXPECT_EQ(base::string16(), lock_handler_->GetAuthValue()); 568 EXPECT_EQ(base::string16(), lock_handler_->GetAuthValue());
598 } 569 }
599 570
600 TEST_F(EasyUnlockScreenlockStateHandlerTest, 571 TEST_F(EasyUnlockScreenlockStateHandlerTest,
601 ChangingStateDoesNotAffectAuthValueIfAuthTypeDoesNotChange) { 572 ChangingStateDoesNotAffectAuthValueIfAuthTypeDoesNotChange) {
602 lock_handler_->SetAuthValue(base::ASCIIToUTF16("xxx")); 573 lock_handler_->SetAuthValue(base::ASCIIToUTF16("xxx"));
603 574
604 state_handler_->ChangeState( 575 state_handler_->ChangeState(ScreenlockState::NO_PHONE);
605 EasyUnlockScreenlockStateHandler::STATE_NO_PHONE);
606 EXPECT_EQ(base::ASCIIToUTF16("xxx"), lock_handler_->GetAuthValue()); 576 EXPECT_EQ(base::ASCIIToUTF16("xxx"), lock_handler_->GetAuthValue());
607 577
608 state_handler_->ChangeState( 578 state_handler_->ChangeState(ScreenlockState::PHONE_NOT_AUTHENTICATED);
609 EasyUnlockScreenlockStateHandler::STATE_PHONE_NOT_AUTHENTICATED);
610 EXPECT_EQ(base::ASCIIToUTF16("xxx"), lock_handler_->GetAuthValue()); 579 EXPECT_EQ(base::ASCIIToUTF16("xxx"), lock_handler_->GetAuthValue());
611 580
612 state_handler_->ChangeState( 581 state_handler_->ChangeState(ScreenlockState::BLUETOOTH_CONNECTING);
613 EasyUnlockScreenlockStateHandler::STATE_BLUETOOTH_CONNECTING);
614 EXPECT_EQ(base::ASCIIToUTF16("xxx"), lock_handler_->GetAuthValue()); 582 EXPECT_EQ(base::ASCIIToUTF16("xxx"), lock_handler_->GetAuthValue());
615 ASSERT_TRUE(lock_handler_->HasCustomIcon()); 583 ASSERT_TRUE(lock_handler_->HasCustomIcon());
616 EXPECT_EQ(kSpinnerIconId, lock_handler_->GetCustomIconId()); 584 EXPECT_EQ(kSpinnerIconId, lock_handler_->GetCustomIconId());
617 } 585 }
618 586
619 TEST_F(EasyUnlockScreenlockStateHandlerTest, StateChangesIgnoredIfHardlocked) { 587 TEST_F(EasyUnlockScreenlockStateHandlerTest, StateChangesIgnoredIfHardlocked) {
620 state_handler_->ChangeState( 588 state_handler_->ChangeState(ScreenlockState::AUTHENTICATED);
621 EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED);
622 589
623 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount()); 590 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount());
624 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::USER_CLICK, 591 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::USER_CLICK,
625 lock_handler_->GetAuthType(user_email_)); 592 lock_handler_->GetAuthType(user_email_));
626 593
627 state_handler_->SetHardlockState( 594 state_handler_->SetHardlockState(
628 EasyUnlockScreenlockStateHandler::USER_HARDLOCK); 595 EasyUnlockScreenlockStateHandler::USER_HARDLOCK);
629 596
630 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount()); 597 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount());
631 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::OFFLINE_PASSWORD, 598 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::OFFLINE_PASSWORD,
632 lock_handler_->GetAuthType(user_email_)); 599 lock_handler_->GetAuthType(user_email_));
633 ASSERT_TRUE(lock_handler_->HasCustomIcon()); 600 ASSERT_TRUE(lock_handler_->HasCustomIcon());
634 EXPECT_EQ(kHardlockedIconId, lock_handler_->GetCustomIconId()); 601 EXPECT_EQ(kHardlockedIconId, lock_handler_->GetCustomIconId());
635 602
636 state_handler_->ChangeState( 603 state_handler_->ChangeState(ScreenlockState::NO_PHONE);
637 EasyUnlockScreenlockStateHandler::STATE_NO_PHONE);
638 ASSERT_TRUE(lock_handler_->HasCustomIcon()); 604 ASSERT_TRUE(lock_handler_->HasCustomIcon());
639 EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount()); 605 EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount());
640 606
641 state_handler_->ChangeState( 607 state_handler_->ChangeState(ScreenlockState::AUTHENTICATED);
642 EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED);
643 ASSERT_TRUE(lock_handler_->HasCustomIcon()); 608 ASSERT_TRUE(lock_handler_->HasCustomIcon());
644 EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount()); 609 EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount());
645 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::OFFLINE_PASSWORD, 610 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::OFFLINE_PASSWORD,
646 lock_handler_->GetAuthType(user_email_)); 611 lock_handler_->GetAuthType(user_email_));
647 } 612 }
648 613
649 TEST_F(EasyUnlockScreenlockStateHandlerTest, 614 TEST_F(EasyUnlockScreenlockStateHandlerTest,
650 LockScreenChangeableOnLockAfterHardlockReset) { 615 LockScreenChangeableOnLockAfterHardlockReset) {
651 state_handler_->ChangeState( 616 state_handler_->ChangeState(ScreenlockState::AUTHENTICATED);
652 EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED);
653 617
654 state_handler_->SetHardlockState( 618 state_handler_->SetHardlockState(
655 EasyUnlockScreenlockStateHandler::USER_HARDLOCK); 619 EasyUnlockScreenlockStateHandler::USER_HARDLOCK);
656 EXPECT_EQ(2u, lock_handler_->GetAndResetShowIconCount()); 620 EXPECT_EQ(2u, lock_handler_->GetAndResetShowIconCount());
657 621
658 state_handler_->SetHardlockState( 622 state_handler_->SetHardlockState(
659 EasyUnlockScreenlockStateHandler::NO_HARDLOCK); 623 EasyUnlockScreenlockStateHandler::NO_HARDLOCK);
660 624
661 GetScreenlockBridgeInstance()->SetLockHandler(NULL); 625 GetScreenlockBridgeInstance()->SetLockHandler(NULL);
662 lock_handler_.reset(new TestLockHandler(user_email_)); 626 lock_handler_.reset(new TestLockHandler(user_email_));
663 EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount()); 627 EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount());
664 GetScreenlockBridgeInstance()->SetLockHandler(lock_handler_.get()); 628 GetScreenlockBridgeInstance()->SetLockHandler(lock_handler_.get());
665 629
666 state_handler_->ChangeState( 630 state_handler_->ChangeState(ScreenlockState::NO_PHONE);
667 EasyUnlockScreenlockStateHandler::STATE_NO_PHONE);
668 631
669 EXPECT_EQ(2u, lock_handler_->GetAndResetShowIconCount()); 632 EXPECT_EQ(2u, lock_handler_->GetAndResetShowIconCount());
670 EXPECT_TRUE(lock_handler_->HasCustomIcon()); 633 EXPECT_TRUE(lock_handler_->HasCustomIcon());
671 634
672 GetScreenlockBridgeInstance()->SetLockHandler(NULL); 635 GetScreenlockBridgeInstance()->SetLockHandler(NULL);
673 lock_handler_.reset(new TestLockHandler(user_email_)); 636 lock_handler_.reset(new TestLockHandler(user_email_));
674 EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount()); 637 EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount());
675 GetScreenlockBridgeInstance()->SetLockHandler(lock_handler_.get()); 638 GetScreenlockBridgeInstance()->SetLockHandler(lock_handler_.get());
676 639
677 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount()); 640 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount());
678 EXPECT_TRUE(lock_handler_->HasCustomIcon()); 641 EXPECT_TRUE(lock_handler_->HasCustomIcon());
679 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::OFFLINE_PASSWORD, 642 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::OFFLINE_PASSWORD,
680 lock_handler_->GetAuthType(user_email_)); 643 lock_handler_->GetAuthType(user_email_));
681 EXPECT_EQ(kLockedIconId, lock_handler_->GetCustomIconId()); 644 EXPECT_EQ(kLockedIconId, lock_handler_->GetCustomIconId());
682 645
683 state_handler_->ChangeState( 646 state_handler_->ChangeState(ScreenlockState::AUTHENTICATED);
684 EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED);
685 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount()); 647 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount());
686 EXPECT_TRUE(lock_handler_->HasCustomIcon()); 648 EXPECT_TRUE(lock_handler_->HasCustomIcon());
687 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::USER_CLICK, 649 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::USER_CLICK,
688 lock_handler_->GetAuthType(user_email_)); 650 lock_handler_->GetAuthType(user_email_));
689 EXPECT_TRUE(lock_handler_->CustomIconHardlocksOnClick()); 651 EXPECT_TRUE(lock_handler_->CustomIconHardlocksOnClick());
690 } 652 }
691 653
692 TEST_F(EasyUnlockScreenlockStateHandlerTest, HardlockStatePersistsOverUnlocks) { 654 TEST_F(EasyUnlockScreenlockStateHandlerTest, HardlockStatePersistsOverUnlocks) {
693 state_handler_->ChangeState( 655 state_handler_->ChangeState(ScreenlockState::AUTHENTICATED);
694 EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED);
695 state_handler_->SetHardlockState( 656 state_handler_->SetHardlockState(
696 EasyUnlockScreenlockStateHandler::USER_HARDLOCK); 657 EasyUnlockScreenlockStateHandler::USER_HARDLOCK);
697 EXPECT_EQ(2u, lock_handler_->GetAndResetShowIconCount()); 658 EXPECT_EQ(2u, lock_handler_->GetAndResetShowIconCount());
698 659
699 GetScreenlockBridgeInstance()->SetLockHandler(NULL); 660 GetScreenlockBridgeInstance()->SetLockHandler(NULL);
700 lock_handler_.reset(new TestLockHandler(user_email_)); 661 lock_handler_.reset(new TestLockHandler(user_email_));
701 EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount()); 662 EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount());
702 GetScreenlockBridgeInstance()->SetLockHandler(lock_handler_.get()); 663 GetScreenlockBridgeInstance()->SetLockHandler(lock_handler_.get());
703 664
704 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount()); 665 EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount());
705 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::OFFLINE_PASSWORD, 666 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::OFFLINE_PASSWORD,
706 lock_handler_->GetAuthType(user_email_)); 667 lock_handler_->GetAuthType(user_email_));
707 ASSERT_TRUE(lock_handler_->HasCustomIcon()); 668 ASSERT_TRUE(lock_handler_->HasCustomIcon());
708 EXPECT_EQ(kHardlockedIconId, lock_handler_->GetCustomIconId()); 669 EXPECT_EQ(kHardlockedIconId, lock_handler_->GetCustomIconId());
709 670
710 state_handler_->ChangeState( 671 state_handler_->ChangeState(ScreenlockState::AUTHENTICATED);
711 EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED);
712 EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount()); 672 EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount());
713 EXPECT_TRUE(lock_handler_->HasCustomIcon()); 673 EXPECT_TRUE(lock_handler_->HasCustomIcon());
714 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::OFFLINE_PASSWORD, 674 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::OFFLINE_PASSWORD,
715 lock_handler_->GetAuthType(user_email_)); 675 lock_handler_->GetAuthType(user_email_));
716 } 676 }
717 677
718 TEST_F(EasyUnlockScreenlockStateHandlerTest, NoOverrideOnlineSignin) { 678 TEST_F(EasyUnlockScreenlockStateHandlerTest, NoOverrideOnlineSignin) {
719 lock_handler_->SetAuthType( 679 lock_handler_->SetAuthType(
720 user_email_, 680 user_email_,
721 proximity_auth::ScreenlockBridge::LockHandler::ONLINE_SIGN_IN, 681 proximity_auth::ScreenlockBridge::LockHandler::ONLINE_SIGN_IN,
722 base::string16()); 682 base::string16());
723 683
724 std::vector<EasyUnlockScreenlockStateHandler::State> states; 684 std::vector<ScreenlockState> states;
725 states.push_back(EasyUnlockScreenlockStateHandler::STATE_NO_BLUETOOTH); 685 states.push_back(ScreenlockState::NO_BLUETOOTH);
726 states.push_back(EasyUnlockScreenlockStateHandler::STATE_NO_PHONE); 686 states.push_back(ScreenlockState::NO_PHONE);
727 states.push_back(EasyUnlockScreenlockStateHandler::STATE_PHONE_UNSUPPORTED); 687 states.push_back(ScreenlockState::PHONE_UNSUPPORTED);
728 states.push_back(EasyUnlockScreenlockStateHandler::STATE_PHONE_UNLOCKABLE); 688 states.push_back(ScreenlockState::PHONE_NOT_LOCKABLE);
729 states.push_back( 689 states.push_back(ScreenlockState::PHONE_NOT_AUTHENTICATED);
730 EasyUnlockScreenlockStateHandler::STATE_PHONE_NOT_AUTHENTICATED); 690 states.push_back(ScreenlockState::PHONE_LOCKED);
731 states.push_back(EasyUnlockScreenlockStateHandler::STATE_PHONE_LOCKED); 691 states.push_back(ScreenlockState::PHONE_NOT_LOCKABLE);
732 states.push_back(EasyUnlockScreenlockStateHandler::STATE_PHONE_UNLOCKABLE); 692 states.push_back(ScreenlockState::PHONE_UNSUPPORTED);
733 states.push_back(EasyUnlockScreenlockStateHandler::STATE_PHONE_UNSUPPORTED); 693 states.push_back(ScreenlockState::RSSI_TOO_LOW);
734 states.push_back(EasyUnlockScreenlockStateHandler::STATE_RSSI_TOO_LOW); 694 states.push_back(ScreenlockState::TX_POWER_TOO_HIGH);
735 states.push_back(EasyUnlockScreenlockStateHandler::STATE_TX_POWER_TOO_HIGH); 695 states.push_back(ScreenlockState::AUTHENTICATED);
736 states.push_back(EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED);
737 696
738 for (size_t i = 0; i < states.size(); ++i) { 697 for (size_t i = 0; i < states.size(); ++i) {
739 state_handler_->ChangeState(states[i]); 698 state_handler_->ChangeState(states[i]);
740 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::ONLINE_SIGN_IN, 699 EXPECT_EQ(proximity_auth::ScreenlockBridge::LockHandler::ONLINE_SIGN_IN,
741 lock_handler_->GetAuthType(user_email_)); 700 lock_handler_->GetAuthType(user_email_));
742 EXPECT_FALSE(lock_handler_->HasCustomIcon()); 701 EXPECT_FALSE(lock_handler_->HasCustomIcon());
743 } 702 }
744 703
745 std::vector<EasyUnlockScreenlockStateHandler::HardlockState> hardlock_states; 704 std::vector<EasyUnlockScreenlockStateHandler::HardlockState> hardlock_states;
746 hardlock_states.push_back(EasyUnlockScreenlockStateHandler::NO_HARDLOCK); 705 hardlock_states.push_back(EasyUnlockScreenlockStateHandler::NO_HARDLOCK);
(...skipping 27 matching lines...) Expand all
774 state_handler_->RecordClickOnLockIcon(); 733 state_handler_->RecordClickOnLockIcon();
775 histogram_tester.ExpectTotalCount("EasyUnlock.TrialRun.Events", 4); 734 histogram_tester.ExpectTotalCount("EasyUnlock.TrialRun.Events", 4);
776 histogram_tester.ExpectBucketCount("EasyUnlock.TrialRun.Events", 735 histogram_tester.ExpectBucketCount("EasyUnlock.TrialRun.Events",
777 EASY_UNLOCK_TRIAL_RUN_EVENT_LAUNCHED, 1); 736 EASY_UNLOCK_TRIAL_RUN_EVENT_LAUNCHED, 1);
778 histogram_tester.ExpectBucketCount( 737 histogram_tester.ExpectBucketCount(
779 "EasyUnlock.TrialRun.Events", 738 "EasyUnlock.TrialRun.Events",
780 EASY_UNLOCK_TRIAL_RUN_EVENT_CLICKED_LOCK_ICON, 3); 739 EASY_UNLOCK_TRIAL_RUN_EVENT_CLICKED_LOCK_ICON, 3);
781 } 740 }
782 741
783 } // namespace 742 } // namespace
OLDNEW
« no previous file with comments | « chrome/browser/signin/easy_unlock_screenlock_state_handler.cc ('k') | chrome/browser/signin/easy_unlock_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698