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

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

Issue 928753003: Clean password_manager::ui::State (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Merge with master Created 5 years, 10 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 "base/bind.h" 5 #include "base/bind.h"
6 #include "base/prefs/pref_service.h" 6 #include "base/prefs/pref_service.h"
7 #include "base/strings/utf_string_conversions.h" 7 #include "base/strings/utf_string_conversions.h"
8 #include "base/time/time.h" 8 #include "base/time/time.h"
9 #include "chrome/browser/ui/passwords/manage_passwords_bubble.h" 9 #include "chrome/browser/ui/passwords/manage_passwords_bubble.h"
10 #include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h" 10 #include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h"
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 EXPECT_EQ(password_manager::ui::MANAGE_STATE, mock.state()); 108 EXPECT_EQ(password_manager::ui::MANAGE_STATE, mock.state());
109 } 109 }
110 110
111 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmitted) { 111 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmitted) {
112 password_manager::StubPasswordManagerClient client; 112 password_manager::StubPasswordManagerClient client;
113 password_manager::StubPasswordManagerDriver driver; 113 password_manager::StubPasswordManagerDriver driver;
114 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( 114 scoped_ptr<password_manager::PasswordFormManager> test_form_manager(
115 new password_manager::PasswordFormManager( 115 new password_manager::PasswordFormManager(
116 NULL, &client, driver.AsWeakPtr(), test_local_form(), false)); 116 NULL, &client, driver.AsWeakPtr(), test_local_form(), false));
117 controller()->OnPasswordSubmitted(test_form_manager.Pass()); 117 controller()->OnPasswordSubmitted(test_form_manager.Pass());
118 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_AND_BUBBLE_STATE, 118 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE,
119 controller()->state()); 119 controller()->state());
120 EXPECT_TRUE(controller()->PasswordPendingUserDecision()); 120 EXPECT_TRUE(controller()->PasswordPendingUserDecision());
121 121
122 // TODO(mkwst): This should be the value of test_local_form().origin, but 122 // TODO(mkwst): This should be the value of test_local_form().origin, but
123 // it's being masked by the stub implementation of 123 // it's being masked by the stub implementation of
124 // ManagePasswordsUIControllerMock::PendingCredentials. 124 // ManagePasswordsUIControllerMock::PendingCredentials.
125 EXPECT_EQ(GURL::EmptyGURL(), controller()->origin()); 125 EXPECT_EQ(GURL::EmptyGURL(), controller()->origin());
126 126
127 ManagePasswordsIconMock mock; 127 ManagePasswordsIconMock mock;
128 controller()->UpdateIconAndBubbleState(&mock); 128 controller()->UpdateIconAndBubbleState(&mock);
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 TEST_F(ManagePasswordsUIControllerTest, AutomaticPasswordSave) { 316 TEST_F(ManagePasswordsUIControllerTest, AutomaticPasswordSave) {
317 password_manager::StubPasswordManagerClient client; 317 password_manager::StubPasswordManagerClient client;
318 password_manager::StubPasswordManagerDriver driver; 318 password_manager::StubPasswordManagerDriver driver;
319 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( 319 scoped_ptr<password_manager::PasswordFormManager> test_form_manager(
320 new password_manager::PasswordFormManager( 320 new password_manager::PasswordFormManager(
321 NULL, &client, driver.AsWeakPtr(), test_local_form(), false)); 321 NULL, &client, driver.AsWeakPtr(), test_local_form(), false));
322 322
323 controller()->OnAutomaticPasswordSave(test_form_manager.Pass()); 323 controller()->OnAutomaticPasswordSave(test_form_manager.Pass());
324 EXPECT_EQ(password_manager::ui::CONFIRMATION_STATE, controller()->state()); 324 EXPECT_EQ(password_manager::ui::CONFIRMATION_STATE, controller()->state());
325 325
326 controller()->OnBubbleHidden();
326 ManagePasswordsIconMock mock; 327 ManagePasswordsIconMock mock;
327 controller()->UpdateIconAndBubbleState(&mock); 328 controller()->UpdateIconAndBubbleState(&mock);
328 EXPECT_EQ(password_manager::ui::MANAGE_STATE, mock.state()); 329 EXPECT_EQ(password_manager::ui::MANAGE_STATE, mock.state());
329 } 330 }
330 331
331 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialLocal) { 332 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialLocal) {
332 ScopedVector<autofill::PasswordForm> local_credentials; 333 ScopedVector<autofill::PasswordForm> local_credentials;
333 local_credentials.push_back(new autofill::PasswordForm(test_local_form())); 334 local_credentials.push_back(new autofill::PasswordForm(test_local_form()));
334 ScopedVector<autofill::PasswordForm> federated_credentials; 335 ScopedVector<autofill::PasswordForm> federated_credentials;
335 GURL origin("http://example.com"); 336 GURL origin("http://example.com");
336 EXPECT_TRUE(controller()->OnChooseCredentials( 337 EXPECT_TRUE(controller()->OnChooseCredentials(
337 local_credentials.Pass(), federated_credentials.Pass(), origin, 338 local_credentials.Pass(), federated_credentials.Pass(), origin,
338 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback, 339 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback,
339 base::Unretained(this)))); 340 base::Unretained(this))));
340 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_AND_BUBBLE_STATE, 341 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE,
341 controller()->state()); 342 controller()->state());
342 EXPECT_FALSE(controller()->PasswordPendingUserDecision()); 343 EXPECT_FALSE(controller()->PasswordPendingUserDecision());
343 EXPECT_EQ(origin, controller()->origin()); 344 EXPECT_EQ(origin, controller()->origin());
344 EXPECT_EQ(autofill::ConstPasswordFormMap(), controller()->best_matches()); 345 EXPECT_EQ(autofill::ConstPasswordFormMap(), controller()->best_matches());
345 346
346 ManagePasswordsIconMock mock; 347 ManagePasswordsIconMock mock;
347 controller()->UpdateIconAndBubbleState(&mock); 348 controller()->UpdateIconAndBubbleState(&mock);
348 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE, mock.state()); 349 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE, mock.state());
349 350
350 controller()->ManagePasswordsUIController::ChooseCredential( 351 controller()->ManagePasswordsUIController::ChooseCredential(
351 test_local_form(), 352 test_local_form(),
352 password_manager::CredentialType::CREDENTIAL_TYPE_LOCAL); 353 password_manager::CredentialType::CREDENTIAL_TYPE_LOCAL);
354 controller()->OnBubbleHidden();
353 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->state()); 355 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->state());
354 ASSERT_TRUE(credential_info()); 356 ASSERT_TRUE(credential_info());
355 EXPECT_EQ(test_local_form().username_value, credential_info()->id); 357 EXPECT_EQ(test_local_form().username_value, credential_info()->id);
356 EXPECT_EQ(test_local_form().password_value, credential_info()->password); 358 EXPECT_EQ(test_local_form().password_value, credential_info()->password);
357 EXPECT_TRUE(credential_info()->federation.is_empty()); 359 EXPECT_TRUE(credential_info()->federation.is_empty());
358 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_LOCAL, 360 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_LOCAL,
359 credential_info()->type); 361 credential_info()->type);
360 } 362 }
361 363
362 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialLocalButFederated) { 364 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialLocalButFederated) {
363 ScopedVector<autofill::PasswordForm> local_credentials; 365 ScopedVector<autofill::PasswordForm> local_credentials;
364 local_credentials.push_back( 366 local_credentials.push_back(
365 new autofill::PasswordForm(test_federated_form())); 367 new autofill::PasswordForm(test_federated_form()));
366 ScopedVector<autofill::PasswordForm> federated_credentials; 368 ScopedVector<autofill::PasswordForm> federated_credentials;
367 GURL origin("http://example.com"); 369 GURL origin("http://example.com");
368 EXPECT_TRUE(controller()->OnChooseCredentials( 370 EXPECT_TRUE(controller()->OnChooseCredentials(
369 local_credentials.Pass(), federated_credentials.Pass(), origin, 371 local_credentials.Pass(), federated_credentials.Pass(), origin,
370 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback, 372 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback,
371 base::Unretained(this)))); 373 base::Unretained(this))));
372 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_AND_BUBBLE_STATE, 374 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE,
373 controller()->state()); 375 controller()->state());
374 EXPECT_FALSE(controller()->PasswordPendingUserDecision()); 376 EXPECT_FALSE(controller()->PasswordPendingUserDecision());
375 EXPECT_EQ(origin, controller()->origin()); 377 EXPECT_EQ(origin, controller()->origin());
376 EXPECT_EQ(autofill::ConstPasswordFormMap(), controller()->best_matches()); 378 EXPECT_EQ(autofill::ConstPasswordFormMap(), controller()->best_matches());
377 379
378 ManagePasswordsIconMock mock; 380 ManagePasswordsIconMock mock;
379 controller()->UpdateIconAndBubbleState(&mock); 381 controller()->UpdateIconAndBubbleState(&mock);
380 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE, mock.state()); 382 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE, mock.state());
381 383
382 controller()->ManagePasswordsUIController::ChooseCredential( 384 controller()->ManagePasswordsUIController::ChooseCredential(
383 test_federated_form(), 385 test_federated_form(),
384 password_manager::CredentialType::CREDENTIAL_TYPE_LOCAL); 386 password_manager::CredentialType::CREDENTIAL_TYPE_LOCAL);
387 controller()->OnBubbleHidden();
385 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->state()); 388 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->state());
386 ASSERT_TRUE(credential_info()); 389 ASSERT_TRUE(credential_info());
387 EXPECT_EQ(test_federated_form().username_value, credential_info()->id); 390 EXPECT_EQ(test_federated_form().username_value, credential_info()->id);
388 EXPECT_EQ(test_federated_form().federation_url, 391 EXPECT_EQ(test_federated_form().federation_url,
389 credential_info()->federation); 392 credential_info()->federation);
390 EXPECT_TRUE(credential_info()->password.empty()); 393 EXPECT_TRUE(credential_info()->password.empty());
391 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_FEDERATED, 394 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_FEDERATED,
392 credential_info()->type); 395 credential_info()->type);
393 } 396 }
394 397
395 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialFederated) { 398 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialFederated) {
396 ScopedVector<autofill::PasswordForm> local_credentials; 399 ScopedVector<autofill::PasswordForm> local_credentials;
397 ScopedVector<autofill::PasswordForm> federated_credentials; 400 ScopedVector<autofill::PasswordForm> federated_credentials;
398 federated_credentials.push_back( 401 federated_credentials.push_back(
399 new autofill::PasswordForm(test_local_form())); 402 new autofill::PasswordForm(test_local_form()));
400 GURL origin("http://example.com"); 403 GURL origin("http://example.com");
401 EXPECT_TRUE(controller()->OnChooseCredentials( 404 EXPECT_TRUE(controller()->OnChooseCredentials(
402 local_credentials.Pass(), federated_credentials.Pass(), origin, 405 local_credentials.Pass(), federated_credentials.Pass(), origin,
403 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback, 406 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback,
404 base::Unretained(this)))); 407 base::Unretained(this))));
405 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_AND_BUBBLE_STATE, 408 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE,
406 controller()->state()); 409 controller()->state());
407 EXPECT_FALSE(controller()->PasswordPendingUserDecision()); 410 EXPECT_FALSE(controller()->PasswordPendingUserDecision());
408 EXPECT_EQ(autofill::ConstPasswordFormMap(), controller()->best_matches()); 411 EXPECT_EQ(autofill::ConstPasswordFormMap(), controller()->best_matches());
409 EXPECT_EQ(origin, controller()->origin()); 412 EXPECT_EQ(origin, controller()->origin());
410 413
411 ManagePasswordsIconMock mock; 414 ManagePasswordsIconMock mock;
412 controller()->UpdateIconAndBubbleState(&mock); 415 controller()->UpdateIconAndBubbleState(&mock);
413 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE, mock.state()); 416 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE, mock.state());
414 417
415 controller()->ManagePasswordsUIController::ChooseCredential( 418 controller()->ManagePasswordsUIController::ChooseCredential(
416 test_local_form(), 419 test_local_form(),
417 password_manager::CredentialType::CREDENTIAL_TYPE_FEDERATED); 420 password_manager::CredentialType::CREDENTIAL_TYPE_FEDERATED);
421 controller()->OnBubbleHidden();
418 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->state()); 422 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->state());
419 ASSERT_TRUE(credential_info()); 423 ASSERT_TRUE(credential_info());
420 EXPECT_EQ(test_local_form().username_value, credential_info()->id); 424 EXPECT_EQ(test_local_form().username_value, credential_info()->id);
421 EXPECT_TRUE(credential_info()->password.empty()); 425 EXPECT_TRUE(credential_info()->password.empty());
422 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_FEDERATED, 426 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_FEDERATED,
423 credential_info()->type); 427 credential_info()->type);
424 } 428 }
425 429
426 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialCancel) { 430 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialCancel) {
427 ScopedVector<autofill::PasswordForm> local_credentials; 431 ScopedVector<autofill::PasswordForm> local_credentials;
428 local_credentials.push_back(new autofill::PasswordForm(test_local_form())); 432 local_credentials.push_back(new autofill::PasswordForm(test_local_form()));
429 ScopedVector<autofill::PasswordForm> federated_credentials; 433 ScopedVector<autofill::PasswordForm> federated_credentials;
430 GURL origin("http://example.com"); 434 GURL origin("http://example.com");
431 EXPECT_TRUE(controller()->OnChooseCredentials( 435 EXPECT_TRUE(controller()->OnChooseCredentials(
432 local_credentials.Pass(), federated_credentials.Pass(), origin, 436 local_credentials.Pass(), federated_credentials.Pass(), origin,
433 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback, 437 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback,
434 base::Unretained(this)))); 438 base::Unretained(this))));
435 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_AND_BUBBLE_STATE, 439 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE,
436 controller()->state()); 440 controller()->state());
437 EXPECT_EQ(origin, controller()->origin()); 441 EXPECT_EQ(origin, controller()->origin());
438 controller()->ManagePasswordsUIController::ChooseCredential( 442 controller()->ManagePasswordsUIController::ChooseCredential(
439 test_local_form(), 443 test_local_form(),
440 password_manager::CredentialType::CREDENTIAL_TYPE_EMPTY); 444 password_manager::CredentialType::CREDENTIAL_TYPE_EMPTY);
445 controller()->OnBubbleHidden();
441 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->state()); 446 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->state());
442 ASSERT_TRUE(credential_info()); 447 ASSERT_TRUE(credential_info());
443 EXPECT_TRUE(credential_info()->federation.is_empty()); 448 EXPECT_TRUE(credential_info()->federation.is_empty());
444 EXPECT_TRUE(credential_info()->password.empty()); 449 EXPECT_TRUE(credential_info()->password.empty());
445 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_EMPTY, 450 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_EMPTY,
446 credential_info()->type); 451 credential_info()->type);
447 } 452 }
448 453
449 TEST_F(ManagePasswordsUIControllerTest, InactiveOnPSLMatched) { 454 TEST_F(ManagePasswordsUIControllerTest, InactiveOnPSLMatched) {
450 base::string16 kTestUsername = base::ASCIIToUTF16("test_username"); 455 base::string16 kTestUsername = base::ASCIIToUTF16("test_username");
451 autofill::PasswordFormMap map; 456 autofill::PasswordFormMap map;
452 autofill::PasswordForm psl_matched_test_form = test_local_form(); 457 autofill::PasswordForm psl_matched_test_form = test_local_form();
453 psl_matched_test_form.original_signon_realm = "http://pslmatched.example.com"; 458 psl_matched_test_form.original_signon_realm = "http://pslmatched.example.com";
454 map[kTestUsername] = &psl_matched_test_form; 459 map[kTestUsername] = &psl_matched_test_form;
455 controller()->OnPasswordAutofilled(map); 460 controller()->OnPasswordAutofilled(map);
456 461
457 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->state()); 462 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->state());
458 } 463 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698