OLD | NEW |
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 Loading... |
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 } |
OLD | NEW |