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

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

Issue 2900693002: [Password Manager] Convert |pending_login_managers_| to an array of scoped_refptr (Closed)
Patch Set: Rebase Created 3 years, 6 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 <map> 5 #include <map>
6 #include <memory> 6 #include <memory>
7 #include <utility> 7 #include <utility>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 DialogPromptMock& dialog_prompt() { return dialog_prompt_; } 173 DialogPromptMock& dialog_prompt() { return dialog_prompt_; }
174 174
175 TestManagePasswordsUIController* controller() { 175 TestManagePasswordsUIController* controller() {
176 return static_cast<TestManagePasswordsUIController*>( 176 return static_cast<TestManagePasswordsUIController*>(
177 ManagePasswordsUIController::FromWebContents(web_contents())); 177 ManagePasswordsUIController::FromWebContents(web_contents()));
178 } 178 }
179 179
180 void ExpectIconStateIs(password_manager::ui::State state); 180 void ExpectIconStateIs(password_manager::ui::State state);
181 void ExpectIconAndControllerStateIs(password_manager::ui::State state); 181 void ExpectIconAndControllerStateIs(password_manager::ui::State state);
182 182
183 std::unique_ptr<password_manager::PasswordFormManager> 183 scoped_refptr<password_manager::PasswordFormManager>
184 CreateFormManagerWithBestMatches( 184 CreateFormManagerWithBestMatches(
185 const autofill::PasswordForm& observed_form, 185 const autofill::PasswordForm& observed_form,
186 const std::vector<const autofill::PasswordForm*>& best_matches); 186 const std::vector<const autofill::PasswordForm*>& best_matches);
187 187
188 std::unique_ptr<password_manager::PasswordFormManager> CreateFormManager(); 188 scoped_refptr<password_manager::PasswordFormManager> CreateFormManager();
189 189
190 // Tests that the state is not changed when the password is autofilled. 190 // Tests that the state is not changed when the password is autofilled.
191 void TestNotChangingStateOnAutofill( 191 void TestNotChangingStateOnAutofill(
192 password_manager::ui::State state); 192 password_manager::ui::State state);
193 193
194 MOCK_METHOD1(CredentialCallback, void(const autofill::PasswordForm*)); 194 MOCK_METHOD1(CredentialCallback, void(const autofill::PasswordForm*));
195 195
196 private: 196 private:
197 password_manager::StubPasswordManagerClient client_; 197 password_manager::StubPasswordManagerClient client_;
198 password_manager::StubPasswordManagerDriver driver_; 198 password_manager::StubPasswordManagerDriver driver_;
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 controller()->UpdateIconAndBubbleState(&view); 234 controller()->UpdateIconAndBubbleState(&view);
235 EXPECT_EQ(state, view.state()); 235 EXPECT_EQ(state, view.state());
236 } 236 }
237 237
238 void ManagePasswordsUIControllerTest::ExpectIconAndControllerStateIs( 238 void ManagePasswordsUIControllerTest::ExpectIconAndControllerStateIs(
239 password_manager::ui::State state) { 239 password_manager::ui::State state) {
240 ExpectIconStateIs(state); 240 ExpectIconStateIs(state);
241 EXPECT_EQ(state, controller()->GetState()); 241 EXPECT_EQ(state, controller()->GetState());
242 } 242 }
243 243
244 std::unique_ptr<password_manager::PasswordFormManager> 244 scoped_refptr<password_manager::PasswordFormManager>
245 ManagePasswordsUIControllerTest::CreateFormManagerWithBestMatches( 245 ManagePasswordsUIControllerTest::CreateFormManagerWithBestMatches(
246 const autofill::PasswordForm& observed_form, 246 const autofill::PasswordForm& observed_form,
247 const std::vector<const autofill::PasswordForm*>& best_matches) { 247 const std::vector<const autofill::PasswordForm*>& best_matches) {
248 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( 248 scoped_refptr<password_manager::PasswordFormManager> test_form_manager(
249 new password_manager::PasswordFormManager( 249 new password_manager::PasswordFormManager(
250 &password_manager_, &client_, driver_.AsWeakPtr(), observed_form, 250 &password_manager_, &client_, driver_.AsWeakPtr(), observed_form,
251 base::WrapUnique(new password_manager::StubFormSaver), &fetcher_)); 251 base::WrapUnique(new password_manager::StubFormSaver), &fetcher_));
252 fetcher_.SetNonFederated(best_matches, 0u); 252 fetcher_.SetNonFederated(best_matches, 0u);
253 return test_form_manager; 253 return test_form_manager;
254 } 254 }
255 255
256 std::unique_ptr<password_manager::PasswordFormManager> 256 scoped_refptr<password_manager::PasswordFormManager>
257 ManagePasswordsUIControllerTest::CreateFormManager() { 257 ManagePasswordsUIControllerTest::CreateFormManager() {
258 return CreateFormManagerWithBestMatches(test_local_form(), 258 return CreateFormManagerWithBestMatches(test_local_form(),
259 {&test_local_form()}); 259 {&test_local_form()});
260 } 260 }
261 261
262 void ManagePasswordsUIControllerTest::TestNotChangingStateOnAutofill( 262 void ManagePasswordsUIControllerTest::TestNotChangingStateOnAutofill(
263 password_manager::ui::State state) { 263 password_manager::ui::State state) {
264 DCHECK(state == password_manager::ui::PENDING_PASSWORD_STATE || 264 DCHECK(state == password_manager::ui::PENDING_PASSWORD_STATE ||
265 state == password_manager::ui::PENDING_PASSWORD_UPDATE_STATE || 265 state == password_manager::ui::PENDING_PASSWORD_UPDATE_STATE ||
266 state == password_manager::ui::CONFIRMATION_STATE); 266 state == password_manager::ui::CONFIRMATION_STATE);
267 267
268 // Set the bubble state to |state|. 268 // Set the bubble state to |state|.
269 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( 269 scoped_refptr<password_manager::PasswordFormManager> test_form_manager(
270 CreateFormManager()); 270 CreateFormManager());
271 test_form_manager->ProvisionallySave( 271 test_form_manager->ProvisionallySave(
272 test_local_form(), 272 test_local_form(),
273 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); 273 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES);
274 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 274 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
275 if (state == password_manager::ui::PENDING_PASSWORD_STATE) 275 if (state == password_manager::ui::PENDING_PASSWORD_STATE)
276 controller()->OnPasswordSubmitted(std::move(test_form_manager)); 276 controller()->OnPasswordSubmitted(std::move(test_form_manager));
277 else if (state == password_manager::ui::PENDING_PASSWORD_UPDATE_STATE) 277 else if (state == password_manager::ui::PENDING_PASSWORD_UPDATE_STATE)
278 controller()->OnUpdatePasswordSubmitted(std::move(test_form_manager)); 278 controller()->OnUpdatePasswordSubmitted(std::move(test_form_manager));
279 else // password_manager::ui::CONFIRMATION_STATE 279 else // password_manager::ui::CONFIRMATION_STATE
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 ASSERT_EQ(1u, controller()->GetCurrentForms().size()); 311 ASSERT_EQ(1u, controller()->GetCurrentForms().size());
312 EXPECT_EQ(kTestUsername, controller()->GetCurrentForms()[0]->username_value); 312 EXPECT_EQ(kTestUsername, controller()->GetCurrentForms()[0]->username_value);
313 313
314 // Controller should store a separate copy of the form as it doesn't own it. 314 // Controller should store a separate copy of the form as it doesn't own it.
315 EXPECT_NE(test_form_ptr, controller()->GetCurrentForms()[0].get()); 315 EXPECT_NE(test_form_ptr, controller()->GetCurrentForms()[0].get());
316 316
317 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); 317 ExpectIconStateIs(password_manager::ui::MANAGE_STATE);
318 } 318 }
319 319
320 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmitted) { 320 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmitted) {
321 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( 321 scoped_refptr<password_manager::PasswordFormManager> test_form_manager(
322 CreateFormManager()); 322 CreateFormManager());
323 test_form_manager->ProvisionallySave( 323 test_form_manager->ProvisionallySave(
324 test_local_form(), 324 test_local_form(),
325 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); 325 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES);
326 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 326 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
327 controller()->OnPasswordSubmitted(std::move(test_form_manager)); 327 controller()->OnPasswordSubmitted(std::move(test_form_manager));
328 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, 328 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE,
329 controller()->GetState()); 329 controller()->GetState());
330 EXPECT_TRUE(controller()->opened_bubble()); 330 EXPECT_TRUE(controller()->opened_bubble());
331 EXPECT_EQ(test_local_form().origin, controller()->GetOrigin()); 331 EXPECT_EQ(test_local_form().origin, controller()->GetOrigin());
332 332
333 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); 333 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE);
334 } 334 }
335 335
336 TEST_F(ManagePasswordsUIControllerTest, BlacklistedFormPasswordSubmitted) { 336 TEST_F(ManagePasswordsUIControllerTest, BlacklistedFormPasswordSubmitted) {
337 autofill::PasswordForm blacklisted; 337 autofill::PasswordForm blacklisted;
338 blacklisted.origin = test_local_form().origin; 338 blacklisted.origin = test_local_form().origin;
339 blacklisted.signon_realm = blacklisted.origin.spec(); 339 blacklisted.signon_realm = blacklisted.origin.spec();
340 blacklisted.blacklisted_by_user = true; 340 blacklisted.blacklisted_by_user = true;
341 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager = 341 scoped_refptr<password_manager::PasswordFormManager> test_form_manager =
342 CreateFormManagerWithBestMatches(test_local_form(), {&blacklisted}); 342 CreateFormManagerWithBestMatches(test_local_form(), {&blacklisted});
343 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 343 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
344 controller()->OnPasswordSubmitted(std::move(test_form_manager)); 344 controller()->OnPasswordSubmitted(std::move(test_form_manager));
345 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, 345 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE,
346 controller()->GetState()); 346 controller()->GetState());
347 EXPECT_FALSE(controller()->opened_bubble()); 347 EXPECT_FALSE(controller()->opened_bubble());
348 348
349 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); 349 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE);
350 } 350 }
351 351
352 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmittedBubbleSuppressed) { 352 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmittedBubbleSuppressed) {
353 CreateSmartBubbleFieldTrial(); 353 CreateSmartBubbleFieldTrial();
354 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( 354 scoped_refptr<password_manager::PasswordFormManager> test_form_manager(
355 CreateFormManager()); 355 CreateFormManager());
356 std::vector<password_manager::InteractionsStats> stats(1); 356 std::vector<password_manager::InteractionsStats> stats(1);
357 stats[0].origin_domain = test_local_form().origin.GetOrigin(); 357 stats[0].origin_domain = test_local_form().origin.GetOrigin();
358 stats[0].username_value = test_local_form().username_value; 358 stats[0].username_value = test_local_form().username_value;
359 stats[0].dismissal_count = kGreatDissmisalCount; 359 stats[0].dismissal_count = kGreatDissmisalCount;
360 fetcher().set_stats(stats); 360 fetcher().set_stats(stats);
361 test_form_manager->ProvisionallySave( 361 test_form_manager->ProvisionallySave(
362 test_local_form(), 362 test_local_form(),
363 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); 363 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES);
364 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 364 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
365 controller()->OnPasswordSubmitted(std::move(test_form_manager)); 365 controller()->OnPasswordSubmitted(std::move(test_form_manager));
366 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, 366 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE,
367 controller()->GetState()); 367 controller()->GetState());
368 EXPECT_FALSE(controller()->opened_bubble()); 368 EXPECT_FALSE(controller()->opened_bubble());
369 ASSERT_TRUE(controller()->GetCurrentInteractionStats()); 369 ASSERT_TRUE(controller()->GetCurrentInteractionStats());
370 EXPECT_EQ(stats[0], *controller()->GetCurrentInteractionStats()); 370 EXPECT_EQ(stats[0], *controller()->GetCurrentInteractionStats());
371 371
372 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); 372 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE);
373 variations::testing::ClearAllVariationParams(); 373 variations::testing::ClearAllVariationParams();
374 } 374 }
375 375
376 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmittedBubbleNotSuppressed) { 376 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmittedBubbleNotSuppressed) {
377 CreateSmartBubbleFieldTrial(); 377 CreateSmartBubbleFieldTrial();
378 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( 378 scoped_refptr<password_manager::PasswordFormManager> test_form_manager(
379 CreateFormManager()); 379 CreateFormManager());
380 std::vector<password_manager::InteractionsStats> stats(1); 380 std::vector<password_manager::InteractionsStats> stats(1);
381 stats[0].origin_domain = test_local_form().origin.GetOrigin(); 381 stats[0].origin_domain = test_local_form().origin.GetOrigin();
382 stats[0].username_value = base::ASCIIToUTF16("not my username"); 382 stats[0].username_value = base::ASCIIToUTF16("not my username");
383 stats[0].dismissal_count = kGreatDissmisalCount; 383 stats[0].dismissal_count = kGreatDissmisalCount;
384 fetcher().set_stats(stats); 384 fetcher().set_stats(stats);
385 test_form_manager->ProvisionallySave( 385 test_form_manager->ProvisionallySave(
386 test_local_form(), 386 test_local_form(),
387 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); 387 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES);
388 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 388 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
389 controller()->OnPasswordSubmitted(std::move(test_form_manager)); 389 controller()->OnPasswordSubmitted(std::move(test_form_manager));
390 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, 390 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE,
391 controller()->GetState()); 391 controller()->GetState());
392 EXPECT_TRUE(controller()->opened_bubble()); 392 EXPECT_TRUE(controller()->opened_bubble());
393 EXPECT_FALSE(controller()->GetCurrentInteractionStats()); 393 EXPECT_FALSE(controller()->GetCurrentInteractionStats());
394 394
395 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); 395 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE);
396 variations::testing::ClearAllVariationParams(); 396 variations::testing::ClearAllVariationParams();
397 } 397 }
398 398
399 TEST_F(ManagePasswordsUIControllerTest, PasswordSaved) { 399 TEST_F(ManagePasswordsUIControllerTest, PasswordSaved) {
400 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( 400 scoped_refptr<password_manager::PasswordFormManager> test_form_manager(
401 CreateFormManager()); 401 CreateFormManager());
402 test_form_manager->ProvisionallySave( 402 test_form_manager->ProvisionallySave(
403 test_local_form(), 403 test_local_form(),
404 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); 404 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES);
405 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 405 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
406 controller()->OnPasswordSubmitted(std::move(test_form_manager)); 406 controller()->OnPasswordSubmitted(std::move(test_form_manager));
407 407
408 controller()->SavePassword(); 408 controller()->SavePassword();
409 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); 409 ExpectIconStateIs(password_manager::ui::MANAGE_STATE);
410 } 410 }
411 411
412 TEST_F(ManagePasswordsUIControllerTest, PasswordBlacklisted) { 412 TEST_F(ManagePasswordsUIControllerTest, PasswordBlacklisted) {
413 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( 413 scoped_refptr<password_manager::PasswordFormManager> test_form_manager(
414 CreateFormManager()); 414 CreateFormManager());
415 test_form_manager->ProvisionallySave( 415 test_form_manager->ProvisionallySave(
416 test_local_form(), 416 test_local_form(),
417 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); 417 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES);
418 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 418 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
419 controller()->OnPasswordSubmitted(std::move(test_form_manager)); 419 controller()->OnPasswordSubmitted(std::move(test_form_manager));
420 420
421 controller()->NeverSavePassword(); 421 controller()->NeverSavePassword();
422 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); 422 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE);
423 } 423 }
424 424
425 TEST_F(ManagePasswordsUIControllerTest, NormalNavigations) { 425 TEST_F(ManagePasswordsUIControllerTest, NormalNavigations) {
426 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( 426 scoped_refptr<password_manager::PasswordFormManager> test_form_manager(
427 CreateFormManager()); 427 CreateFormManager());
428 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 428 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
429 controller()->OnPasswordSubmitted(std::move(test_form_manager)); 429 controller()->OnPasswordSubmitted(std::move(test_form_manager));
430 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); 430 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE);
431 431
432 // Fake-navigate. We expect the bubble's state to persist so a user reasonably 432 // Fake-navigate. We expect the bubble's state to persist so a user reasonably
433 // has been able to interact with the bubble. This happens on 433 // has been able to interact with the bubble. This happens on
434 // `accounts.google.com`, for instance. 434 // `accounts.google.com`, for instance.
435 std::unique_ptr<content::NavigationHandle> navigation_handle = 435 std::unique_ptr<content::NavigationHandle> navigation_handle =
436 content::NavigationHandle::CreateNavigationHandleForTesting( 436 content::NavigationHandle::CreateNavigationHandleForTesting(
437 GURL(), main_rfh(), true); 437 GURL(), main_rfh(), true);
438 navigation_handle.reset(); // Calls DidFinishNavigation. 438 navigation_handle.reset(); // Calls DidFinishNavigation.
439 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, 439 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE,
440 controller()->GetState()); 440 controller()->GetState());
441 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); 441 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE);
442 } 442 }
443 443
444 TEST_F(ManagePasswordsUIControllerTest, NormalNavigationsClosedBubble) { 444 TEST_F(ManagePasswordsUIControllerTest, NormalNavigationsClosedBubble) {
445 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( 445 scoped_refptr<password_manager::PasswordFormManager> test_form_manager(
446 CreateFormManager()); 446 CreateFormManager());
447 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 447 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
448 controller()->OnPasswordSubmitted(std::move(test_form_manager)); 448 controller()->OnPasswordSubmitted(std::move(test_form_manager));
449 controller()->SavePassword(); 449 controller()->SavePassword();
450 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 450 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
451 controller()->OnBubbleHidden(); 451 controller()->OnBubbleHidden();
452 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); 452 ExpectIconStateIs(password_manager::ui::MANAGE_STATE);
453 453
454 // Fake-navigate. There is no bubble, reset the state. 454 // Fake-navigate. There is no bubble, reset the state.
455 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 455 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
456 std::unique_ptr<content::NavigationHandle> navigation_handle = 456 std::unique_ptr<content::NavigationHandle> navigation_handle =
457 content::NavigationHandle::CreateNavigationHandleForTesting( 457 content::NavigationHandle::CreateNavigationHandleForTesting(
458 GURL(), main_rfh(), true); 458 GURL(), main_rfh(), true);
459 navigation_handle.reset(); // Calls DidFinishNavigation. 459 navigation_handle.reset(); // Calls DidFinishNavigation.
460 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState()); 460 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState());
461 ExpectIconStateIs(password_manager::ui::INACTIVE_STATE); 461 ExpectIconStateIs(password_manager::ui::INACTIVE_STATE);
462 } 462 }
463 463
464 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmittedToNonWebbyURL) { 464 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmittedToNonWebbyURL) {
465 // Navigate to a non-webby URL, then see what happens! 465 // Navigate to a non-webby URL, then see what happens!
466 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 466 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
467 content::WebContentsTester::For(web_contents()) 467 content::WebContentsTester::For(web_contents())
468 ->NavigateAndCommit(GURL("chrome://sign-in")); 468 ->NavigateAndCommit(GURL("chrome://sign-in"));
469 469
470 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( 470 scoped_refptr<password_manager::PasswordFormManager> test_form_manager(
471 CreateFormManager()); 471 CreateFormManager());
472 test_form_manager->ProvisionallySave( 472 test_form_manager->ProvisionallySave(
473 test_local_form(), 473 test_local_form(),
474 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); 474 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES);
475 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 475 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
476 controller()->OnPasswordSubmitted(std::move(test_form_manager)); 476 controller()->OnPasswordSubmitted(std::move(test_form_manager));
477 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState()); 477 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState());
478 EXPECT_EQ(GURL::EmptyGURL(), controller()->GetOrigin()); 478 EXPECT_EQ(GURL::EmptyGURL(), controller()->GetOrigin());
479 479
480 ExpectIconStateIs(password_manager::ui::INACTIVE_STATE); 480 ExpectIconStateIs(password_manager::ui::INACTIVE_STATE);
(...skipping 12 matching lines...) Expand all
493 password_manager::PasswordStoreChangeList list(1, change); 493 password_manager::PasswordStoreChangeList list(1, change);
494 controller()->OnLoginsChanged(list); 494 controller()->OnLoginsChanged(list);
495 495
496 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState()); 496 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState());
497 EXPECT_EQ(test_local_form().origin, controller()->GetOrigin()); 497 EXPECT_EQ(test_local_form().origin, controller()->GetOrigin());
498 498
499 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); 499 ExpectIconStateIs(password_manager::ui::MANAGE_STATE);
500 } 500 }
501 501
502 TEST_F(ManagePasswordsUIControllerTest, AutomaticPasswordSave) { 502 TEST_F(ManagePasswordsUIControllerTest, AutomaticPasswordSave) {
503 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( 503 scoped_refptr<password_manager::PasswordFormManager> test_form_manager(
504 CreateFormManager()); 504 CreateFormManager());
505 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 505 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
506 controller()->OnAutomaticPasswordSave(std::move(test_form_manager)); 506 controller()->OnAutomaticPasswordSave(std::move(test_form_manager));
507 EXPECT_EQ(password_manager::ui::CONFIRMATION_STATE, controller()->GetState()); 507 EXPECT_EQ(password_manager::ui::CONFIRMATION_STATE, controller()->GetState());
508 508
509 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 509 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
510 controller()->OnBubbleHidden(); 510 controller()->OnBubbleHidden();
511 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); 511 ExpectIconStateIs(password_manager::ui::MANAGE_STATE);
512 } 512 }
513 513
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
737 autofill::PasswordForm psl_matched_test_form(test_local_form()); 737 autofill::PasswordForm psl_matched_test_form(test_local_form());
738 psl_matched_test_form.is_public_suffix_match = true; 738 psl_matched_test_form.is_public_suffix_match = true;
739 map.insert(std::make_pair(kTestUsername, &psl_matched_test_form)); 739 map.insert(std::make_pair(kTestUsername, &psl_matched_test_form));
740 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 740 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
741 controller()->OnPasswordAutofilled(map, map.begin()->second->origin, nullptr); 741 controller()->OnPasswordAutofilled(map, map.begin()->second->origin, nullptr);
742 742
743 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState()); 743 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState());
744 } 744 }
745 745
746 TEST_F(ManagePasswordsUIControllerTest, UpdatePasswordSubmitted) { 746 TEST_F(ManagePasswordsUIControllerTest, UpdatePasswordSubmitted) {
747 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( 747 scoped_refptr<password_manager::PasswordFormManager> test_form_manager(
748 CreateFormManager()); 748 CreateFormManager());
749 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 749 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
750 controller()->OnUpdatePasswordSubmitted(std::move(test_form_manager)); 750 controller()->OnUpdatePasswordSubmitted(std::move(test_form_manager));
751 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE, 751 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE,
752 controller()->GetState()); 752 controller()->GetState());
753 753
754 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE); 754 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE);
755 } 755 }
756 756
757 TEST_F(ManagePasswordsUIControllerTest, PasswordUpdated) { 757 TEST_F(ManagePasswordsUIControllerTest, PasswordUpdated) {
758 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( 758 scoped_refptr<password_manager::PasswordFormManager> test_form_manager(
759 CreateFormManager()); 759 CreateFormManager());
760 test_form_manager->ProvisionallySave( 760 test_form_manager->ProvisionallySave(
761 test_local_form(), 761 test_local_form(),
762 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); 762 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES);
763 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 763 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
764 controller()->OnUpdatePasswordSubmitted(std::move(test_form_manager)); 764 controller()->OnUpdatePasswordSubmitted(std::move(test_form_manager));
765 765
766 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE); 766 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE);
767 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 767 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
768 controller()->UpdatePassword(autofill::PasswordForm()); 768 controller()->UpdatePassword(autofill::PasswordForm());
(...skipping 28 matching lines...) Expand all
797 // Open the bubble again. 797 // Open the bubble again.
798 local_credentials.emplace_back(new autofill::PasswordForm(test_local_form())); 798 local_credentials.emplace_back(new autofill::PasswordForm(test_local_form()));
799 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 799 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
800 controller()->OnAutoSignin(std::move(local_credentials), 800 controller()->OnAutoSignin(std::move(local_credentials),
801 test_local_form().origin); 801 test_local_form().origin);
802 EXPECT_EQ(password_manager::ui::AUTO_SIGNIN_STATE, controller()->GetState()); 802 EXPECT_EQ(password_manager::ui::AUTO_SIGNIN_STATE, controller()->GetState());
803 // Check the delegate is destroyed. Thus, the first bubble has no way to mess 803 // Check the delegate is destroyed. Thus, the first bubble has no way to mess
804 // up with the controller's state. 804 // up with the controller's state.
805 EXPECT_FALSE(proxy_delegate); 805 EXPECT_FALSE(proxy_delegate);
806 } 806 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698