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

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

Issue 848723002: Credential Manager API: Showing both local and federated logins. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 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 304 matching lines...) Expand 10 before | Expand all | Expand 10 after
315 NULL, &client, driver.AsWeakPtr(), test_form(), false)); 315 NULL, &client, driver.AsWeakPtr(), test_form(), false));
316 316
317 controller()->OnAutomaticPasswordSave(test_form_manager.Pass()); 317 controller()->OnAutomaticPasswordSave(test_form_manager.Pass());
318 EXPECT_EQ(password_manager::ui::CONFIRMATION_STATE, controller()->state()); 318 EXPECT_EQ(password_manager::ui::CONFIRMATION_STATE, controller()->state());
319 319
320 ManagePasswordsIconMock mock; 320 ManagePasswordsIconMock mock;
321 controller()->UpdateIconAndBubbleState(&mock); 321 controller()->UpdateIconAndBubbleState(&mock);
322 EXPECT_EQ(password_manager::ui::MANAGE_STATE, mock.state()); 322 EXPECT_EQ(password_manager::ui::MANAGE_STATE, mock.state());
323 } 323 }
324 324
325 TEST_F(ManagePasswordsUIControllerTest, ChooseCredential) { 325 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialLocal) {
326 ScopedVector<autofill::PasswordForm> local_credentials; 326 ScopedVector<autofill::PasswordForm> local_credentials;
327 local_credentials.push_back(new autofill::PasswordForm(test_form())); 327 local_credentials.push_back(new autofill::PasswordForm(test_form()));
328 ScopedVector<autofill::PasswordForm> federated_credentials; 328 ScopedVector<autofill::PasswordForm> federated_credentials;
329 EXPECT_TRUE(controller()->OnChooseCredentials( 329 EXPECT_TRUE(controller()->OnChooseCredentials(
330 local_credentials.Pass(), 330 local_credentials.Pass(),
331 federated_credentials.Pass(), 331 federated_credentials.Pass(),
332 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback, 332 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback,
333 base::Unretained(this)))); 333 base::Unretained(this))));
334 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_AND_BUBBLE_STATE, 334 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_AND_BUBBLE_STATE,
335 controller()->state()); 335 controller()->state());
336 EXPECT_FALSE(controller()->PasswordPendingUserDecision()); 336 EXPECT_FALSE(controller()->PasswordPendingUserDecision());
337 EXPECT_EQ(test_form().origin, controller()->origin()); 337 EXPECT_EQ(test_form().origin, controller()->origin());
338 EXPECT_EQ(autofill::ConstPasswordFormMap(), controller()->best_matches()); 338 EXPECT_EQ(autofill::ConstPasswordFormMap(), controller()->best_matches());
339 339
340 ManagePasswordsIconMock mock; 340 ManagePasswordsIconMock mock;
341 controller()->UpdateIconAndBubbleState(&mock); 341 controller()->UpdateIconAndBubbleState(&mock);
342 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE, mock.state()); 342 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE, mock.state());
343 343
344 controller()->ManagePasswordsUIController::ChooseCredential(true, 344 controller()->ManagePasswordsUIController::ChooseCredential(
345 test_form()); 345 test_form(), password_manager::CredentialType::CREDENTIAL_TYPE_LOCAL);
346 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->state()); 346 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->state());
347 ASSERT_TRUE(credential_info()); 347 ASSERT_TRUE(credential_info());
348 EXPECT_EQ(test_form().username_value, credential_info()->id); 348 EXPECT_EQ(test_form().username_value, credential_info()->id);
349 EXPECT_EQ(test_form().password_value, credential_info()->password); 349 EXPECT_EQ(test_form().password_value, credential_info()->password);
350 EXPECT_TRUE(credential_info()->federation.is_empty());
350 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_LOCAL, 351 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_LOCAL,
351 credential_info()->type); 352 credential_info()->type);
352 } 353 }
353 354
355 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialFederated) {
356 ScopedVector<autofill::PasswordForm> local_credentials;
357 ScopedVector<autofill::PasswordForm> federated_credentials;
358 federated_credentials.push_back(new autofill::PasswordForm(test_form()));
359 EXPECT_TRUE(controller()->OnChooseCredentials(
360 local_credentials.Pass(), federated_credentials.Pass(),
361 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback,
362 base::Unretained(this))));
363 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_AND_BUBBLE_STATE,
364 controller()->state());
365 EXPECT_FALSE(controller()->PasswordPendingUserDecision());
366 EXPECT_EQ(autofill::ConstPasswordFormMap(), controller()->best_matches());
367
368 ManagePasswordsIconMock mock;
369 controller()->UpdateIconAndBubbleState(&mock);
370 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE, mock.state());
371
372 controller()->ManagePasswordsUIController::ChooseCredential(
373 test_form(), password_manager::CredentialType::CREDENTIAL_TYPE_FEDERATED);
374 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->state());
375 ASSERT_TRUE(credential_info());
376 EXPECT_EQ(test_form().username_value, credential_info()->id);
377 EXPECT_TRUE(credential_info()->password.empty());
378 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_FEDERATED,
379 credential_info()->type);
380 }
381
354 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialCancel) { 382 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialCancel) {
355 ScopedVector<autofill::PasswordForm> local_credentials; 383 ScopedVector<autofill::PasswordForm> local_credentials;
356 local_credentials.push_back(new autofill::PasswordForm(test_form())); 384 local_credentials.push_back(new autofill::PasswordForm(test_form()));
357 ScopedVector<autofill::PasswordForm> federated_credentials; 385 ScopedVector<autofill::PasswordForm> federated_credentials;
358 EXPECT_TRUE(controller()->OnChooseCredentials( 386 EXPECT_TRUE(controller()->OnChooseCredentials(
359 local_credentials.Pass(), 387 local_credentials.Pass(),
360 federated_credentials.Pass(), 388 federated_credentials.Pass(),
361 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback, 389 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback,
362 base::Unretained(this)))); 390 base::Unretained(this))));
363 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_AND_BUBBLE_STATE, 391 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_AND_BUBBLE_STATE,
364 controller()->state()); 392 controller()->state());
365 393
366 controller()->ManagePasswordsUIController::ChooseCredential(false, 394 controller()->ManagePasswordsUIController::ChooseCredential(
367 test_form()); 395 test_form(), password_manager::CredentialType::CREDENTIAL_TYPE_EMPTY);
368 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->state()); 396 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->state());
369 ASSERT_TRUE(credential_info()); 397 ASSERT_TRUE(credential_info());
398 EXPECT_TRUE(credential_info()->federation.is_empty());
399 EXPECT_TRUE(credential_info()->password.empty());
370 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_EMPTY, 400 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_EMPTY,
371 credential_info()->type); 401 credential_info()->type);
372 } 402 }
373 403
374 TEST_F(ManagePasswordsUIControllerTest, InactiveOnPSLMatched) { 404 TEST_F(ManagePasswordsUIControllerTest, InactiveOnPSLMatched) {
375 base::string16 kTestUsername = base::ASCIIToUTF16("test_username"); 405 base::string16 kTestUsername = base::ASCIIToUTF16("test_username");
376 autofill::PasswordFormMap map; 406 autofill::PasswordFormMap map;
377 autofill::PasswordForm psl_matched_test_form = test_form(); 407 autofill::PasswordForm psl_matched_test_form = test_form();
378 psl_matched_test_form.original_signon_realm = "http://pslmatched.example.com"; 408 psl_matched_test_form.original_signon_realm = "http://pslmatched.example.com";
379 map[kTestUsername] = &psl_matched_test_form; 409 map[kTestUsername] = &psl_matched_test_form;
380 controller()->OnPasswordAutofilled(map); 410 controller()->OnPasswordAutofilled(map);
381 411
382 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->state()); 412 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->state());
383 } 413 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698