Index: chrome/browser/signin/easy_unlock_screenlock_state_handler_unittest.cc |
diff --git a/chrome/browser/signin/easy_unlock_screenlock_state_handler_unittest.cc b/chrome/browser/signin/easy_unlock_screenlock_state_handler_unittest.cc |
index feae058b963d4a842f902395ba8197ec411344dc..1c4a5ec71a468e202986ff9a74cb5b2124da02fe 100644 |
--- a/chrome/browser/signin/easy_unlock_screenlock_state_handler_unittest.cc |
+++ b/chrome/browser/signin/easy_unlock_screenlock_state_handler_unittest.cc |
@@ -24,6 +24,7 @@ namespace { |
const char kLockedIconURL[] = "chrome://theme/IDR_EASY_UNLOCK_LOCKED"; |
const char kUnlockedIconURL[] = "chrome://theme/IDR_EASY_UNLOCK_UNLOCKED"; |
const char kSpinnerIconURL[] = "chrome://theme/IDR_EASY_UNLOCK_SPINNER"; |
+const char kHardlockedIconURL[] = "chrome://theme/IDR_EASY_UNLOCK_HARDLOCKED"; |
// The expected size of user pod custom icons set by |
// EasyUnlockScreenlockStateHandler. |
@@ -248,6 +249,7 @@ class EasyUnlockScreenlockStateHandlerTest : public testing::Test { |
// Create the screenlock state handler object that will be tested. |
state_handler_.reset( |
new EasyUnlockScreenlockStateHandler(user_email_, |
+ false, |
pref_service_.get(), |
screenlock_bridge)); |
} |
@@ -337,6 +339,34 @@ TEST_F(EasyUnlockScreenlockStateHandlerTest, BluetoothConnecting) { |
EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount()); |
} |
+TEST_F(EasyUnlockScreenlockStateHandlerTest, HardlockedState) { |
+ pref_service_->SetBoolean(prefs::kEasyUnlockShowTutorial, false); |
+ state_handler_->ChangeState( |
+ EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED); |
+ |
+ EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount()); |
+ EXPECT_EQ(ScreenlockBridge::LockHandler::USER_CLICK, |
+ lock_handler_->GetAuthType(user_email_)); |
+ |
+ state_handler_->SetHardlocked(true); |
+ |
+ EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount()); |
+ EXPECT_EQ(ScreenlockBridge::LockHandler::OFFLINE_PASSWORD, |
+ lock_handler_->GetAuthType(user_email_)); |
+ |
+ ASSERT_TRUE(lock_handler_->HasCustomIcon()); |
+ EXPECT_EQ(kHardlockedIconURL, lock_handler_->GetCustomIconURL()); |
+ EXPECT_TRUE(lock_handler_->CustomIconHasTooltip()); |
+ EXPECT_FALSE(lock_handler_->CustomIconHardlocksOnClick()); |
+ EXPECT_FALSE(lock_handler_->IsCustomIconAnimated()); |
+ EXPECT_EQ(100, lock_handler_->GetCustomIconOpacity()); |
+ |
+ state_handler_->SetHardlocked(true); |
+ |
+ EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount()); |
+ ASSERT_TRUE(lock_handler_->HasCustomIcon()); |
+} |
+ |
TEST_F(EasyUnlockScreenlockStateHandlerTest, StatesWithLockedIcon) { |
pref_service_->SetBoolean(prefs::kEasyUnlockShowTutorial, false); |
@@ -532,37 +562,51 @@ TEST_F(EasyUnlockScreenlockStateHandlerTest, StateChangesIgnoredIfHardlocked) { |
state_handler_->ChangeState( |
EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED); |
- lock_handler_->SetAuthType( |
- user_email_, |
- ScreenlockBridge::LockHandler::FORCE_OFFLINE_PASSWORD, |
- base::string16()); |
- lock_handler_->HideUserPodCustomIcon(user_email_); |
+ EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount()); |
+ EXPECT_EQ(ScreenlockBridge::LockHandler::USER_CLICK, |
+ lock_handler_->GetAuthType(user_email_)); |
+ |
+ state_handler_->SetHardlocked(true); |
+ |
+ EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount()); |
+ EXPECT_EQ(ScreenlockBridge::LockHandler::OFFLINE_PASSWORD, |
+ lock_handler_->GetAuthType(user_email_)); |
+ ASSERT_TRUE(lock_handler_->HasCustomIcon()); |
+ EXPECT_EQ(kHardlockedIconURL, lock_handler_->GetCustomIconURL()); |
state_handler_->ChangeState( |
EasyUnlockScreenlockStateHandler::STATE_NO_PHONE); |
- EXPECT_FALSE(lock_handler_->HasCustomIcon()); |
+ ASSERT_TRUE(lock_handler_->HasCustomIcon()); |
+ EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount()); |
state_handler_->ChangeState( |
EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED); |
- EXPECT_FALSE(lock_handler_->HasCustomIcon()); |
- EXPECT_EQ(ScreenlockBridge::LockHandler::FORCE_OFFLINE_PASSWORD, |
+ ASSERT_TRUE(lock_handler_->HasCustomIcon()); |
+ EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount()); |
+ EXPECT_EQ(ScreenlockBridge::LockHandler::OFFLINE_PASSWORD, |
lock_handler_->GetAuthType(user_email_)); |
} |
TEST_F(EasyUnlockScreenlockStateHandlerTest, |
- LockScreenChangeableAfterHardlockUnlocked) { |
+ LockScreenChangeableOnLockAfterHardlockReset) { |
state_handler_->ChangeState( |
EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED); |
- lock_handler_->SetAuthType( |
- user_email_, |
- ScreenlockBridge::LockHandler::FORCE_OFFLINE_PASSWORD, |
- base::string16()); |
- lock_handler_->HideUserPodCustomIcon(user_email_); |
+ state_handler_->SetHardlocked(true); |
+ EXPECT_EQ(2u, lock_handler_->GetAndResetShowIconCount()); |
+ |
+ state_handler_->SetHardlocked(false); |
+ |
+ ScreenlockBridge::Get()->SetLockHandler(NULL); |
+ lock_handler_.reset(new TestLockHandler(user_email_)); |
+ EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount()); |
+ ScreenlockBridge::Get()->SetLockHandler(lock_handler_.get()); |
state_handler_->ChangeState( |
EasyUnlockScreenlockStateHandler::STATE_NO_PHONE); |
- EXPECT_FALSE(lock_handler_->HasCustomIcon()); |
+ |
+ EXPECT_EQ(2u, lock_handler_->GetAndResetShowIconCount()); |
+ EXPECT_TRUE(lock_handler_->HasCustomIcon()); |
ScreenlockBridge::Get()->SetLockHandler(NULL); |
lock_handler_.reset(new TestLockHandler(user_email_)); |
@@ -573,6 +617,7 @@ TEST_F(EasyUnlockScreenlockStateHandlerTest, |
EXPECT_TRUE(lock_handler_->HasCustomIcon()); |
EXPECT_EQ(ScreenlockBridge::LockHandler::OFFLINE_PASSWORD, |
lock_handler_->GetAuthType(user_email_)); |
+ EXPECT_EQ(kLockedIconURL, lock_handler_->GetCustomIconURL()); |
state_handler_->ChangeState( |
EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED); |
@@ -583,4 +628,29 @@ TEST_F(EasyUnlockScreenlockStateHandlerTest, |
EXPECT_TRUE(lock_handler_->CustomIconHardlocksOnClick()); |
} |
+TEST_F(EasyUnlockScreenlockStateHandlerTest, HardlockStatePersistsOverUnlocks) { |
+ state_handler_->ChangeState( |
+ EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED); |
+ state_handler_->SetHardlocked(true); |
+ EXPECT_EQ(2u, lock_handler_->GetAndResetShowIconCount()); |
+ |
+ ScreenlockBridge::Get()->SetLockHandler(NULL); |
+ lock_handler_.reset(new TestLockHandler(user_email_)); |
+ EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount()); |
+ ScreenlockBridge::Get()->SetLockHandler(lock_handler_.get()); |
+ |
+ EXPECT_EQ(1u, lock_handler_->GetAndResetShowIconCount()); |
+ EXPECT_EQ(ScreenlockBridge::LockHandler::OFFLINE_PASSWORD, |
+ lock_handler_->GetAuthType(user_email_)); |
+ ASSERT_TRUE(lock_handler_->HasCustomIcon()); |
+ EXPECT_EQ(kHardlockedIconURL, lock_handler_->GetCustomIconURL()); |
+ |
+ state_handler_->ChangeState( |
+ EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED); |
+ EXPECT_EQ(0u, lock_handler_->GetAndResetShowIconCount()); |
+ EXPECT_TRUE(lock_handler_->HasCustomIcon()); |
+ EXPECT_EQ(ScreenlockBridge::LockHandler::OFFLINE_PASSWORD, |
+ lock_handler_->GetAuthType(user_email_)); |
+} |
+ |
} // namespace |