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 e5d6c541a0d7572323e55edb732844353fe5e960..9f74eec7191ffea962e44fb7c095c54d16312974 100644 |
--- a/chrome/browser/password_manager/password_manager_browsertest.cc |
+++ b/chrome/browser/password_manager/password_manager_browsertest.cc |
@@ -1615,3 +1615,48 @@ IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTest, NoPromptOnBack) { |
observer.Wait(); |
EXPECT_FALSE(prompt_observer->IsShowingPrompt()); |
} |
+ |
+// Regression test for http://crbug.com/452306 |
+IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTest, |
+ ChangingTextToPasswordFieldOnSignupForm) { |
+ NavigateToFile("/password/signup_form.html"); |
+ |
+ // In this case, pretend that username_field is actually a password field |
+ // that starts as a text field to simulate placeholder. |
+ NavigationObserver observer(WebContents()); |
+ scoped_ptr<PromptObserver> prompt_observer( |
+ PromptObserver::Create(WebContents())); |
+ std::string change_and_submit = |
+ "document.getElementById('other_info').value = 'username';" |
+ "document.getElementById('username_field').type = 'password';" |
+ "document.getElementById('username_field').value = 'mypass';" |
+ "document.getElementById('password_field').value = 'mypass';" |
+ "document.getElementById('testform').submit();"; |
+ ASSERT_TRUE(content::ExecuteScript(RenderViewHost(), change_and_submit)); |
+ observer.Wait(); |
+ EXPECT_TRUE(prompt_observer->IsShowingPrompt()); |
+} |
+ |
+// Regression test for http://crbug.com/451631 |
+IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTest, |
+ SavingOnManyPasswordFieldsTest) { |
+ // Simulate Macy's registration page, which contains the normal 2 password |
+ // fields for confirming the new password plus 2 more fields for security |
+ // questions and credit card. Make sure that saving works correctly for such |
+ // sites. |
+ NavigateToFile("/password/many_password_signup_form.html"); |
+ |
+ NavigationObserver observer(WebContents()); |
+ scoped_ptr<PromptObserver> prompt_observer( |
+ PromptObserver::Create(WebContents())); |
+ std::string fill_and_submit = |
+ "document.getElementById('username_field').value = 'username';" |
+ "document.getElementById('password_field').value = 'mypass';" |
+ "document.getElementById('confirm_field').value = 'mypass';" |
+ "document.getElementById('security_answer').value = 'hometown';" |
+ "document.getElementById('SSN').value = '1234';" |
+ "document.getElementById('testform').submit();"; |
+ ASSERT_TRUE(content::ExecuteScript(RenderViewHost(), fill_and_submit)); |
+ observer.Wait(); |
+ EXPECT_TRUE(prompt_observer->IsShowingPrompt()); |
+} |