Chromium Code Reviews| Index: chrome/browser/password_manager/password_manager_browsertest.cc |
| diff --git a/chrome/browser/password_manager/password_manager_browsertest.cc b/chrome/browser/password_manager/password_manager_browsertest.cc |
| index b2b5b52d3366091e78c8ddb6ae596cf75c42bce8..92394666d9a5fb1ed733b82192d6acf92f585ab9 100644 |
| --- a/chrome/browser/password_manager/password_manager_browsertest.cc |
| +++ b/chrome/browser/password_manager/password_manager_browsertest.cc |
| @@ -1083,3 +1083,29 @@ IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTest, NoLastLoadGoodLastLoad) { |
| run_loop.RunUntilIdle(); |
| EXPECT_FALSE(password_store->IsEmpty()); |
| } |
| + |
| +// In some situations, multiple PasswordFormManager instances from |
| +// PasswordManager::pending_login_managers_ would match (via DoesManage) a form |
| +// to be provisionally saved. One of them might be a complete match, the other |
| +// all-but-action match. Normally, the former should be preferred, but if the |
| +// former did not finished matching, and the latter did, the latter should be |
|
engedy
2014/07/11 17:05:35
nit: s/did/has/
vabr (Chromium)
2014/07/11 18:15:47
Done.
|
| +// used (otherwise we'd give up even though we could have saved the password). |
| +IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTest, |
| + TryToUsePasswordFormManagerWhichFinishedMatching) { |
|
engedy
2014/07/11 17:05:35
nit: s/TryToUse/Prefer/
vabr (Chromium)
2014/07/11 18:15:47
Done.
|
| + NavigateToFile("/password/create_form_copy_on_submit.html"); |
| + |
| + NavigationObserver observer(WebContents()); |
| + std::string submit = |
| + "document.getElementById('username').value = 'overwrite_me';" |
| + "document.getElementById('password').value = 'random';" |
| + "document.getElementById('non-form-button').click();"; |
| + ASSERT_TRUE(content::ExecuteScript(RenderViewHost(), submit)); |
| + observer.Wait(); |
| + |
| + if (ChromePasswordManagerClient::IsTheHotNewBubbleUIEnabled()) { |
| + EXPECT_TRUE(ui_controller()->PasswordPendingUserDecision()); |
| + } else { |
| + EXPECT_TRUE(observer.infobar_shown()); |
| + } |
| +} |
| + |