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 6a1f0b8c3d1bf7a86ea39317e89351d79a8fa5a4..92e163a4badf48f853d29f7914b5756038c3b65d 100644 |
| --- a/chrome/browser/password_manager/password_manager_browsertest.cc |
| +++ b/chrome/browser/password_manager/password_manager_browsertest.cc |
| @@ -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 |
| +#ifndef OS_MACOSX |
|
vasilii
2015/08/18 10:01:44
#if !defined(OS_MACOSX)
dvadym
2015/08/18 11:55:33
Done.
|
| +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 = |
|
vasilii
2015/08/18 10:01:44
Create a copy of the form.
dvadym
2015/08/18 11:55:33
Done.
|
| + 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 |
| +#ifndef OS_MACOSX |
|
vasilii
2015/08/18 10:01:44
#if !defined(OS_MACOSX)
dvadym
2015/08/18 11:55:33
Done.
|
| +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 |