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

Side by Side Diff: chrome/browser/ui/passwords/manage_passwords_ui_controller_unittest.cc

Issue 1826473002: Fix of quick disappearing of password bubble when autofill happens. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: UI test removed Created 4 years, 9 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 <utility> 5 #include <utility>
6 #include <vector> 6 #include <vector>
7 7
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 void ExpectIconStateIs(password_manager::ui::State state); 173 void ExpectIconStateIs(password_manager::ui::State state);
174 void ExpectIconAndControllerStateIs(password_manager::ui::State state); 174 void ExpectIconAndControllerStateIs(password_manager::ui::State state);
175 175
176 scoped_ptr<password_manager::PasswordFormManager> 176 scoped_ptr<password_manager::PasswordFormManager>
177 CreateFormManagerWithBestMatches( 177 CreateFormManagerWithBestMatches(
178 const autofill::PasswordForm& observed_form, 178 const autofill::PasswordForm& observed_form,
179 ScopedVector<autofill::PasswordForm> best_matches); 179 ScopedVector<autofill::PasswordForm> best_matches);
180 180
181 scoped_ptr<password_manager::PasswordFormManager> CreateFormManager(); 181 scoped_ptr<password_manager::PasswordFormManager> CreateFormManager();
182 182
183 // Tests that the state is not changed when the password is autofilled.
184 void TestNotChangingStateOnAutofill(
185 password_manager::ui::State state);
186
183 private: 187 private:
184 password_manager::StubPasswordManagerClient client_; 188 password_manager::StubPasswordManagerClient client_;
185 password_manager::StubPasswordManagerDriver driver_; 189 password_manager::StubPasswordManagerDriver driver_;
186 password_manager::PasswordManager password_manager_; 190 password_manager::PasswordManager password_manager_;
187 191
188 autofill::PasswordForm test_local_form_; 192 autofill::PasswordForm test_local_form_;
189 autofill::PasswordForm test_federated_form_; 193 autofill::PasswordForm test_federated_form_;
190 scoped_ptr<password_manager::CredentialInfo> credential_info_; 194 scoped_ptr<password_manager::CredentialInfo> credential_info_;
191 base::FieldTrialList field_trial_list_; 195 base::FieldTrialList field_trial_list_;
192 DialogPromptMock dialog_prompt_; 196 DialogPromptMock dialog_prompt_;
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 } 245 }
242 246
243 scoped_ptr<password_manager::PasswordFormManager> 247 scoped_ptr<password_manager::PasswordFormManager>
244 ManagePasswordsUIControllerTest::CreateFormManager() { 248 ManagePasswordsUIControllerTest::CreateFormManager() {
245 ScopedVector<autofill::PasswordForm> stored_forms; 249 ScopedVector<autofill::PasswordForm> stored_forms;
246 stored_forms.push_back(new autofill::PasswordForm(test_local_form())); 250 stored_forms.push_back(new autofill::PasswordForm(test_local_form()));
247 return CreateFormManagerWithBestMatches(test_local_form(), 251 return CreateFormManagerWithBestMatches(test_local_form(),
248 std::move(stored_forms)); 252 std::move(stored_forms));
249 } 253 }
250 254
255 void ManagePasswordsUIControllerTest::TestNotChangingStateOnAutofill(
256 password_manager::ui::State state) {
257 DCHECK(state == password_manager::ui::PENDING_PASSWORD_STATE ||
258 state == password_manager::ui::PENDING_PASSWORD_UPDATE_STATE ||
259 state == password_manager::ui::CONFIRMATION_STATE);
260
261 // Set the bubble state to |state|.
262 scoped_ptr<password_manager::PasswordFormManager> test_form_manager(
263 CreateFormManager());
264 test_form_manager->ProvisionallySave(
265 test_local_form(),
266 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES);
267 if (state == password_manager::ui::PENDING_PASSWORD_STATE)
268 controller()->OnPasswordSubmitted(std::move(test_form_manager));
269 else if (state == password_manager::ui::PENDING_PASSWORD_UPDATE_STATE)
270 controller()->OnUpdatePasswordSubmitted(std::move(test_form_manager));
271 else // password_manager::ui::CONFIRMATION_STATE
272 controller()->OnAutomaticPasswordSave(std::move(test_form_manager));
273 ASSERT_EQ(state, controller()->GetState());
274
275 // Autofill happens.
276 scoped_ptr<autofill::PasswordForm> test_form(
277 new autofill::PasswordForm(test_local_form()));
278 autofill::PasswordFormMap map;
279 map.insert(
280 std::make_pair(test_local_form().username_value, std::move(test_form)));
281 controller()->OnPasswordAutofilled(map, map.begin()->second->origin, nullptr);
282
283 // State shouldn't changed.
284 EXPECT_EQ(state, controller()->GetState());
285 ExpectIconStateIs(state);
286 }
287
251 TEST_F(ManagePasswordsUIControllerTest, DefaultState) { 288 TEST_F(ManagePasswordsUIControllerTest, DefaultState) {
252 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState()); 289 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState());
253 EXPECT_EQ(GURL::EmptyGURL(), controller()->GetOrigin()); 290 EXPECT_EQ(GURL::EmptyGURL(), controller()->GetOrigin());
254 291
255 ExpectIconStateIs(password_manager::ui::INACTIVE_STATE); 292 ExpectIconStateIs(password_manager::ui::INACTIVE_STATE);
256 } 293 }
257 294
258 TEST_F(ManagePasswordsUIControllerTest, PasswordAutofilled) { 295 TEST_F(ManagePasswordsUIControllerTest, PasswordAutofilled) {
259 scoped_ptr<autofill::PasswordForm> test_form( 296 scoped_ptr<autofill::PasswordForm> test_form(
260 new autofill::PasswordForm(test_local_form())); 297 new autofill::PasswordForm(test_local_form()));
(...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after
709 CreateFormManager()); 746 CreateFormManager());
710 test_form_manager->ProvisionallySave( 747 test_form_manager->ProvisionallySave(
711 test_local_form(), 748 test_local_form(),
712 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); 749 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES);
713 controller()->OnUpdatePasswordSubmitted(std::move(test_form_manager)); 750 controller()->OnUpdatePasswordSubmitted(std::move(test_form_manager));
714 751
715 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE); 752 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE);
716 controller()->UpdatePassword(autofill::PasswordForm()); 753 controller()->UpdatePassword(autofill::PasswordForm());
717 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); 754 ExpectIconStateIs(password_manager::ui::MANAGE_STATE);
718 } 755 }
756
757 TEST_F(ManagePasswordsUIControllerTest, SavePendingStatePasswordAutofilled) {
758 TestNotChangingStateOnAutofill(password_manager::ui::PENDING_PASSWORD_STATE);
759 }
760
761 TEST_F(ManagePasswordsUIControllerTest, UpdatePendingStatePasswordAutofilled) {
762 TestNotChangingStateOnAutofill(
763 password_manager::ui::PENDING_PASSWORD_UPDATE_STATE);
764 }
765
766 TEST_F(ManagePasswordsUIControllerTest, ConfirmationStatePasswordAutofilled) {
767 TestNotChangingStateOnAutofill(password_manager::ui::CONFIRMATION_STATE);
768 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698