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 6a1f0b8c3d1bf7a86ea39317e89351d79a8fa5a4..a521c97f19544c3ef48b6470058a970f1406301f 100644 |
--- a/chrome/browser/password_manager/password_manager_browsertest.cc |
+++ b/chrome/browser/password_manager/password_manager_browsertest.cc |
@@ -2078,7 +2078,7 @@ IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTestBase, |
// TODO(dvadym): Turn on this test when Change password UI will be implemented |
// for Mac. http://crbug.com/359315 |
-#ifndef OS_MACOSX |
+#if !defined(OS_MACOSX) |
IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTestBase, |
ChangePwd1AccountStored) { |
ASSERT_TRUE(ChromePasswordManagerClient::IsTheHotNewBubbleUIEnabled()); |
@@ -2114,7 +2114,7 @@ IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTestBase, |
observer.Wait(); |
EXPECT_TRUE(prompt_observer->IsShowingUpdatePrompt()); |
- const autofill::PasswordForm& stored_form = |
+ const autofill::PasswordForm stored_form = |
password_store->stored_passwords().begin()->second[0]; |
prompt_observer->AcceptUpdatePrompt(stored_form); |
// Spin the message loop to make sure the password store had a chance to |
@@ -2126,4 +2126,90 @@ IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTestBase, |
} |
#endif |
+// TODO(dvadym): Turn on this test when Change password UI will be implemented |
+// for Mac. http://crbug.com/359315 |
+#if !defined(OS_MACOSX) |
+IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTestBase, |
+ PasswordOverridenUpdateBubbleShown) { |
+ ASSERT_TRUE(ChromePasswordManagerClient::IsTheHotNewBubbleUIEnabled()); |
+ base::CommandLine::ForCurrentProcess()->AppendSwitch( |
+ password_manager::switches::kEnablePasswordChangeSupport); |
+ // At first let us save credentials to the PasswordManager. |
+ scoped_refptr<password_manager::TestPasswordStore> password_store = |
+ static_cast<password_manager::TestPasswordStore*>( |
+ PasswordStoreFactory::GetForProfile( |
+ browser()->profile(), ServiceAccessType::IMPLICIT_ACCESS) |
+ .get()); |
+ autofill::PasswordForm signin_form; |
+ signin_form.signon_realm = embedded_test_server()->base_url().spec(); |
+ signin_form.username_value = base::ASCIIToUTF16("temp"); |
+ signin_form.password_value = base::ASCIIToUTF16("pw"); |
+ password_store->AddLogin(signin_form); |
+ |
+ // Check that password update bubble is shown. |
+ NavigateToFile("/password/password_form.html"); |
+ NavigationObserver observer(WebContents()); |
+ scoped_ptr<PromptObserver> prompt_observer( |
+ PromptObserver::Create(WebContents())); |
+ std::string fill_and_submit = |
+ "document.getElementById('username_field').value = 'temp';" |
+ "document.getElementById('password_field').value = 'new_pw';" |
+ "document.getElementById('input_submit_button').click()"; |
+ ASSERT_TRUE(content::ExecuteScript(RenderViewHost(), fill_and_submit)); |
+ observer.Wait(); |
+ // The stored password "pw" was overriden with "new_pw", so update prompt is |
+ // expected. |
+ EXPECT_TRUE(prompt_observer->IsShowingUpdatePrompt()); |
+ |
+ const autofill::PasswordForm stored_form = |
+ password_store->stored_passwords().begin()->second[0]; |
+ prompt_observer->AcceptUpdatePrompt(stored_form); |
+ // Spin the message loop to make sure the password store had a chance to |
+ // update the password. |
+ base::RunLoop run_loop; |
+ run_loop.RunUntilIdle(); |
+ CheckThatCredentialsStored(password_store.get(), base::ASCIIToUTF16("temp"), |
+ base::ASCIIToUTF16("new_pw")); |
+} |
+#endif |
+ |
+// TODO(dvadym): Turn on this test when Change password UI will be implemented |
+// for Mac. http://crbug.com/359315 |
+#if !defined(OS_MACOSX) |
+IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTestBase, |
+ PasswordNotOverridenUpdateBubbleNotShown) { |
+ ASSERT_TRUE(ChromePasswordManagerClient::IsTheHotNewBubbleUIEnabled()); |
+ base::CommandLine::ForCurrentProcess()->AppendSwitch( |
+ password_manager::switches::kEnablePasswordChangeSupport); |
+ // At first let us save credentials to the PasswordManager. |
+ scoped_refptr<password_manager::TestPasswordStore> password_store = |
+ static_cast<password_manager::TestPasswordStore*>( |
+ PasswordStoreFactory::GetForProfile( |
+ browser()->profile(), ServiceAccessType::IMPLICIT_ACCESS) |
+ .get()); |
+ autofill::PasswordForm signin_form; |
+ signin_form.signon_realm = embedded_test_server()->base_url().spec(); |
+ signin_form.username_value = base::ASCIIToUTF16("temp"); |
+ signin_form.password_value = base::ASCIIToUTF16("pw"); |
+ password_store->AddLogin(signin_form); |
+ |
+ // Check that password update bubble is shown. |
+ NavigateToFile("/password/password_form.html"); |
+ NavigationObserver observer(WebContents()); |
+ scoped_ptr<PromptObserver> prompt_observer( |
+ PromptObserver::Create(WebContents())); |
+ std::string fill_and_submit = |
+ "document.getElementById('username_field').value = 'temp';" |
+ "document.getElementById('password_field').value = 'pw';" |
+ "document.getElementById('input_submit_button').click()"; |
+ ASSERT_TRUE(content::ExecuteScript(RenderViewHost(), fill_and_submit)); |
+ observer.Wait(); |
+ // The stored password "pw" was not overriden, so update prompt is not |
+ // expected. |
+ EXPECT_FALSE(prompt_observer->IsShowingUpdatePrompt()); |
+ CheckThatCredentialsStored(password_store.get(), base::ASCIIToUTF16("temp"), |
+ base::ASCIIToUTF16("pw")); |
+} |
+#endif |
+ |
} // namespace password_manager |