Commit c49d1aaf authored by Ioana Pandele's avatar Ioana Pandele Committed by Commit Bot

[PwdCheckAndroid] Send no passwords error

Due to the fake running state emitted by the bulk check service when it
detects that there are no saved passwords, the error is overwritten by
Running -> Idle. This CL ensures that when transitioning to Idle, the
check manager verifies whether there were any passwords to check and if
not, it emits a NoPasswords error message.

Bug: 1132880
Change-Id: I134bb010de7efe3739b213a18c5b7f4a4aee42fc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2440841Reviewed-by: default avatarJan Wilken Dörrie <jdoerrie@chromium.org>
Commit-Queue: Ioana Pandele <ioanap@chromium.org>
Cr-Commit-Position: refs/heads/master@{#813101}
parent 5798c6b2
...@@ -91,7 +91,6 @@ void PasswordCheckManager::StartCheck() { ...@@ -91,7 +91,6 @@ void PasswordCheckManager::StartCheck() {
// The request is being handled, so reset the boolean. // The request is being handled, so reset the boolean.
was_start_requested_ = false; was_start_requested_ = false;
is_check_running_ = true; is_check_running_ = true;
progress_ = std::make_unique<PasswordCheckProgress>(); progress_ = std::make_unique<PasswordCheckProgress>();
for (const auto& password : saved_passwords_presenter_.GetSavedPasswords()) for (const auto& password : saved_passwords_presenter_.GetSavedPasswords())
progress_->IncrementCounts(password); progress_->IncrementCounts(password);
...@@ -197,6 +196,11 @@ void PasswordCheckManager::OnStateChanged(State state) { ...@@ -197,6 +196,11 @@ void PasswordCheckManager::OnStateChanged(State state) {
if (state != State::kRunning) { if (state != State::kRunning) {
progress_.reset(); progress_.reset();
is_check_running_ = false; is_check_running_ = false;
if (saved_passwords_presenter_.GetSavedPasswords().empty()) {
observer_->OnPasswordCheckStatusChanged(
PasswordCheckUIStatus::kErrorNoPasswords);
return;
}
} }
observer_->OnPasswordCheckStatusChanged(GetUIStatus(state)); observer_->OnPasswordCheckStatusChanged(GetUIStatus(state));
......
...@@ -593,3 +593,20 @@ TEST_F(PasswordCheckManagerTest, DoesntUpdateNonExistingProgress) { ...@@ -593,3 +593,20 @@ TEST_F(PasswordCheckManagerTest, DoesntUpdateNonExistingProgress) {
base::ASCIIToUTF16(kPassword1)), base::ASCIIToUTF16(kPassword1)),
password_manager::IsLeaked(false)); password_manager::IsLeaked(false));
} }
TEST_F(PasswordCheckManagerTest, TurnsIdleIntoNoPasswords) {
InitializeManager();
RunUntilIdle();
EXPECT_CALL(mock_observer(),
OnPasswordCheckStatusChanged(PasswordCheckUIStatus::kRunning))
.Times(1);
EXPECT_CALL(mock_observer(),
OnPasswordCheckStatusChanged(PasswordCheckUIStatus::kIdle))
.Times(0);
EXPECT_CALL(mock_observer(), OnPasswordCheckStatusChanged(
PasswordCheckUIStatus::kErrorNoPasswords))
.Times(1);
manager().StartCheck();
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment