Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/strings/utf_string_conversions.h" | 5 #include "base/strings/utf_string_conversions.h" |
| 6 #include "chrome/browser/password_manager/chrome_password_manager_client.h" | 6 #include "chrome/browser/password_manager/chrome_password_manager_client.h" |
| 7 #include "chrome/browser/profiles/profile.h" | 7 #include "chrome/browser/profiles/profile.h" |
| 8 #include "chrome/browser/ui/browser.h" | 8 #include "chrome/browser/ui/browser.h" |
| 9 #include "chrome/browser/ui/passwords/manage_passwords_ui_controller.h" | 9 #include "chrome/browser/ui/passwords/manage_passwords_ui_controller.h" |
| 10 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 10 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| (...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 193 | 193 |
| 194 SetupChooseCredentials(std::move(local_credentials), | 194 SetupChooseCredentials(std::move(local_credentials), |
| 195 ScopedVector<autofill::PasswordForm>(), origin); | 195 ScopedVector<autofill::PasswordForm>(), origin); |
| 196 ASSERT_TRUE(controller()->current_account_chooser()); | 196 ASSERT_TRUE(controller()->current_account_chooser()); |
| 197 AccountChooserDialogView* dialog = controller()->current_account_chooser(); | 197 AccountChooserDialogView* dialog = controller()->current_account_chooser(); |
| 198 EXPECT_CALL(*this, | 198 EXPECT_CALL(*this, |
| 199 OnChooseCredential(Field( | 199 OnChooseCredential(Field( |
| 200 &password_manager::CredentialInfo::type, | 200 &password_manager::CredentialInfo::type, |
| 201 password_manager::CredentialType::CREDENTIAL_TYPE_EMPTY))); | 201 password_manager::CredentialType::CREDENTIAL_TYPE_EMPTY))); |
| 202 EXPECT_CALL(*controller(), OnDialogClosed()); | 202 EXPECT_CALL(*controller(), OnDialogClosed()); |
| 203 EXPECT_TRUE(dialog->Close()); | 203 dialog->GetWidget()->Close(); |
| 204 | 204 |
| 205 EXPECT_FALSE(controller()->current_autosignin_prompt()); | 205 EXPECT_FALSE(controller()->current_autosignin_prompt()); |
| 206 } | 206 } |
| 207 | 207 |
| 208 IN_PROC_BROWSER_TEST_F( | 208 IN_PROC_BROWSER_TEST_F( |
| 209 PasswordDialogViewTest, | 209 PasswordDialogViewTest, |
| 210 PopupAccountChooserWithMultipleCredentialsReturnNonEmpty) { | 210 PopupAccountChooserWithMultipleCredentialsReturnNonEmpty) { |
| 211 GURL origin("https://example.com"); | 211 GURL origin("https://example.com"); |
| 212 ScopedVector<autofill::PasswordForm> local_credentials; | 212 ScopedVector<autofill::PasswordForm> local_credentials; |
| 213 autofill::PasswordForm form; | 213 autofill::PasswordForm form; |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 254 SetupChooseCredentials(std::move(local_credentials), | 254 SetupChooseCredentials(std::move(local_credentials), |
| 255 ScopedVector<autofill::PasswordForm>(), origin); | 255 ScopedVector<autofill::PasswordForm>(), origin); |
| 256 | 256 |
| 257 EXPECT_TRUE(controller()->current_account_chooser()); | 257 EXPECT_TRUE(controller()->current_account_chooser()); |
| 258 AccountChooserDialogView* dialog = controller()->current_account_chooser(); | 258 AccountChooserDialogView* dialog = controller()->current_account_chooser(); |
| 259 EXPECT_CALL(*this, | 259 EXPECT_CALL(*this, |
| 260 OnChooseCredential(Field( | 260 OnChooseCredential(Field( |
| 261 &password_manager::CredentialInfo::type, | 261 &password_manager::CredentialInfo::type, |
| 262 password_manager::CredentialType::CREDENTIAL_TYPE_EMPTY))); | 262 password_manager::CredentialType::CREDENTIAL_TYPE_EMPTY))); |
| 263 EXPECT_CALL(*controller(), OnDialogClosed()); | 263 EXPECT_CALL(*controller(), OnDialogClosed()); |
| 264 EXPECT_TRUE(dialog->Close()); | 264 dialog->GetWidget()->Close(); |
| 265 EXPECT_FALSE(controller()->current_autosignin_prompt()); | 265 EXPECT_FALSE(controller()->current_autosignin_prompt()); |
| 266 } | 266 } |
| 267 | 267 |
| 268 IN_PROC_BROWSER_TEST_F(PasswordDialogViewTest, | 268 IN_PROC_BROWSER_TEST_F(PasswordDialogViewTest, |
| 269 PopupAccountChooserWithSingleCredentialReturnNonEmpty) { | 269 PopupAccountChooserWithSingleCredentialReturnNonEmpty) { |
| 270 GURL origin("https://example.com"); | 270 GURL origin("https://example.com"); |
| 271 ScopedVector<autofill::PasswordForm> local_credentials; | 271 ScopedVector<autofill::PasswordForm> local_credentials; |
| 272 autofill::PasswordForm form; | 272 autofill::PasswordForm form; |
| 273 form.origin = origin; | 273 form.origin = origin; |
| 274 form.display_name = base::ASCIIToUTF16("Peter"); | 274 form.display_name = base::ASCIIToUTF16("Peter"); |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 285 EXPECT_CALL(*this, | 285 EXPECT_CALL(*this, |
| 286 OnChooseCredential(Field( | 286 OnChooseCredential(Field( |
| 287 &password_manager::CredentialInfo::type, | 287 &password_manager::CredentialInfo::type, |
| 288 password_manager::CredentialType::CREDENTIAL_TYPE_PASSWORD))); | 288 password_manager::CredentialType::CREDENTIAL_TYPE_PASSWORD))); |
| 289 EXPECT_TRUE( | 289 EXPECT_TRUE( |
| 290 password_bubble_experiment::ShouldShowAutoSignInPromptFirstRunExperience( | 290 password_bubble_experiment::ShouldShowAutoSignInPromptFirstRunExperience( |
| 291 browser()->profile()->GetPrefs())); | 291 browser()->profile()->GetPrefs())); |
| 292 controller()->ChooseCredential( | 292 controller()->ChooseCredential( |
| 293 form, password_manager::CredentialType::CREDENTIAL_TYPE_PASSWORD); | 293 form, password_manager::CredentialType::CREDENTIAL_TYPE_PASSWORD); |
| 294 | 294 |
| 295 EXPECT_CALL(*controller(), OnDialogClosed()); | |
|
vasilii
2016/02/11 10:37:48
It should be called when the autosignin dialog is
Evan Stade
2016/02/11 20:02:11
well, this is kinda janky. This wasn't being calle
vasilii
2016/02/12 12:57:09
Please don't change the production code.
The metho
| |
| 296 EXPECT_TRUE(controller()->current_autosignin_prompt()); | 295 EXPECT_TRUE(controller()->current_autosignin_prompt()); |
| 297 } | 296 } |
| 298 | 297 |
| 299 IN_PROC_BROWSER_TEST_F(PasswordDialogViewTest, | 298 IN_PROC_BROWSER_TEST_F(PasswordDialogViewTest, |
| 300 PopupAccountChooserWithDisabledAutoSignin) { | 299 PopupAccountChooserWithDisabledAutoSignin) { |
| 301 EXPECT_TRUE( | 300 EXPECT_TRUE( |
| 302 password_bubble_experiment::ShouldShowAutoSignInPromptFirstRunExperience( | 301 password_bubble_experiment::ShouldShowAutoSignInPromptFirstRunExperience( |
| 303 browser()->profile()->GetPrefs())); | 302 browser()->profile()->GetPrefs())); |
| 304 GURL origin("https://example.com"); | 303 GURL origin("https://example.com"); |
| 305 ScopedVector<autofill::PasswordForm> local_credentials; | 304 ScopedVector<autofill::PasswordForm> local_credentials; |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 376 ASSERT_TRUE(controller()->current_autosignin_prompt()); | 375 ASSERT_TRUE(controller()->current_autosignin_prompt()); |
| 377 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState()); | 376 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState()); |
| 378 AutoSigninFirstRunDialogView* dialog = | 377 AutoSigninFirstRunDialogView* dialog = |
| 379 controller()->current_autosignin_prompt(); | 378 controller()->current_autosignin_prompt(); |
| 380 // This is the way how ESC is processed. It's important to reproduce it | 379 // This is the way how ESC is processed. It's important to reproduce it |
| 381 // because of double AutoSigninFirstRunDialogView::OnClosed call due to a bug | 380 // because of double AutoSigninFirstRunDialogView::OnClosed call due to a bug |
| 382 // http://crbug.com/583330. | 381 // http://crbug.com/583330. |
| 383 ui::Accelerator esc(ui::VKEY_ESCAPE, 0); | 382 ui::Accelerator esc(ui::VKEY_ESCAPE, 0); |
| 384 EXPECT_CALL(*controller(), OnDialogClosed()); | 383 EXPECT_CALL(*controller(), OnDialogClosed()); |
| 385 EXPECT_TRUE(dialog->GetWidget()->client_view()->AcceleratorPressed(esc)); | 384 EXPECT_TRUE(dialog->GetWidget()->client_view()->AcceleratorPressed(esc)); |
| 385 content::RunAllPendingInMessageLoop(); | |
|
vasilii
2016/02/11 10:37:48
Is it now async?
You can drop http://crbug.com/583
Evan Stade
2016/02/11 20:02:11
Done.
| |
| 386 testing::Mock::VerifyAndClearExpectations(controller()); | 386 testing::Mock::VerifyAndClearExpectations(controller()); |
| 387 EXPECT_TRUE( | 387 EXPECT_TRUE( |
| 388 password_bubble_experiment::ShouldShowAutoSignInPromptFirstRunExperience( | 388 password_bubble_experiment::ShouldShowAutoSignInPromptFirstRunExperience( |
| 389 browser()->profile()->GetPrefs())); | 389 browser()->profile()->GetPrefs())); |
| 390 } | 390 } |
| 391 | 391 |
| 392 IN_PROC_BROWSER_TEST_F(PasswordDialogViewTest, | 392 IN_PROC_BROWSER_TEST_F(PasswordDialogViewTest, |
| 393 PopupAutoSigninPromptAfterBlockedZeroclick) { | 393 PopupAutoSigninPromptAfterBlockedZeroclick) { |
| 394 EXPECT_TRUE( | 394 EXPECT_TRUE( |
| 395 password_bubble_experiment::ShouldShowAutoSignInPromptFirstRunExperience( | 395 password_bubble_experiment::ShouldShowAutoSignInPromptFirstRunExperience( |
| (...skipping 30 matching lines...) Expand all Loading... | |
| 426 client()->NotifyUserAutoSigninBlockedOnFirstRun(std::move(blocked_form)); | 426 client()->NotifyUserAutoSigninBlockedOnFirstRun(std::move(blocked_form)); |
| 427 client()->NotifySuccessfulLoginWithExistingPassword(form); | 427 client()->NotifySuccessfulLoginWithExistingPassword(form); |
| 428 ASSERT_FALSE(controller()->current_autosignin_prompt()); | 428 ASSERT_FALSE(controller()->current_autosignin_prompt()); |
| 429 browser()->profile()->GetPrefs()->SetBoolean( | 429 browser()->profile()->GetPrefs()->SetBoolean( |
| 430 password_manager::prefs::kCredentialsEnableAutosignin, true); | 430 password_manager::prefs::kCredentialsEnableAutosignin, true); |
| 431 | 431 |
| 432 // Successful login with the same form after block will prompt: | 432 // Successful login with the same form after block will prompt: |
| 433 blocked_form.reset(new autofill::PasswordForm(form)); | 433 blocked_form.reset(new autofill::PasswordForm(form)); |
| 434 client()->NotifyUserAutoSigninBlockedOnFirstRun(std::move(blocked_form)); | 434 client()->NotifyUserAutoSigninBlockedOnFirstRun(std::move(blocked_form)); |
| 435 client()->NotifySuccessfulLoginWithExistingPassword(form); | 435 client()->NotifySuccessfulLoginWithExistingPassword(form); |
| 436 EXPECT_CALL(*controller(), OnDialogClosed()); | |
|
vasilii
2016/02/11 10:37:48
Same as above
Evan Stade
2016/02/11 20:02:11
Done.
| |
| 437 ASSERT_TRUE(controller()->current_autosignin_prompt()); | 436 ASSERT_TRUE(controller()->current_autosignin_prompt()); |
| 438 } | 437 } |
| 439 | 438 |
| 440 } // namespace | 439 } // namespace |
| OLD | NEW |