OLD | NEW |
---|---|
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 <string> | 5 #include <string> |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/metrics/histogram_samples.h" | 8 #include "base/metrics/histogram_samples.h" |
9 #include "base/metrics/statistics_recorder.h" | 9 #include "base/metrics/statistics_recorder.h" |
10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
122 base::WeakPtr<autofill::AutofillPopupDelegate> delegate) override { | 122 base::WeakPtr<autofill::AutofillPopupDelegate> delegate) override { |
123 message_loop_runner_->Quit(); | 123 message_loop_runner_->Quit(); |
124 } | 124 } |
125 | 125 |
126 private: | 126 private: |
127 scoped_refptr<content::MessageLoopRunner> message_loop_runner_; | 127 scoped_refptr<content::MessageLoopRunner> message_loop_runner_; |
128 | 128 |
129 DISALLOW_COPY_AND_ASSIGN(ObservingAutofillClient); | 129 DISALLOW_COPY_AND_ASSIGN(ObservingAutofillClient); |
130 }; | 130 }; |
131 | 131 |
132 // For simplicity we assume that password store contains only 1 credentials. | |
132 void CheckThatCredentialsStored( | 133 void CheckThatCredentialsStored( |
133 password_manager::TestPasswordStore* password_store, | 134 password_manager::TestPasswordStore* password_store, |
134 const base::string16& username, | 135 const base::string16& username, |
135 const base::string16& password) { | 136 const base::string16& password) { |
136 auto& passwords_map = password_store->stored_passwords(); | 137 auto& passwords_map = password_store->stored_passwords(); |
137 ASSERT_EQ(1u, passwords_map.size()); | 138 ASSERT_EQ(1u, passwords_map.size()); |
138 auto& passwords_vector = passwords_map.begin()->second; | 139 auto& passwords_vector = passwords_map.begin()->second; |
139 ASSERT_EQ(1u, passwords_vector.size()); | 140 ASSERT_EQ(1u, passwords_vector.size()); |
140 const autofill::PasswordForm& form = passwords_vector[0]; | 141 const autofill::PasswordForm& form = passwords_vector[0]; |
141 EXPECT_EQ(username, form.username_value); | 142 EXPECT_EQ(username, form.username_value); |
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
398 std::string fill_and_submit = | 399 std::string fill_and_submit = |
399 "document.getElementById('username_failed').value = 'temp';" | 400 "document.getElementById('username_failed').value = 'temp';" |
400 "document.getElementById('password_failed').value = 'random';" | 401 "document.getElementById('password_failed').value = 'random';" |
401 "document.getElementById('submit_failed').click();"; | 402 "document.getElementById('submit_failed').click();"; |
402 | 403 |
403 ASSERT_TRUE(content::ExecuteScript(RenderViewHost(), fill_and_submit)); | 404 ASSERT_TRUE(content::ExecuteScript(RenderViewHost(), fill_and_submit)); |
404 observer.Wait(); | 405 observer.Wait(); |
405 EXPECT_FALSE(prompt_observer->IsShowingPrompt()); | 406 EXPECT_FALSE(prompt_observer->IsShowingPrompt()); |
406 } | 407 } |
407 | 408 |
408 // Disabled on Mac due to flakiness: crbug.com/493263 | |
409 #if defined(OS_MACOSX) | |
410 #define MAYBE_NoPromptForFailedLoginFromSubFrameWithMultiFramesInPage \ | |
411 DISABLED_NoPromptForFailedLoginFromSubFrameWithMultiFramesInPage | |
412 #else | |
413 #define MAYBE_NoPromptForFailedLoginFromSubFrameWithMultiFramesInPage \ | |
414 NoPromptForFailedLoginFromSubFrameWithMultiFramesInPage | |
415 #endif | |
416 IN_PROC_BROWSER_TEST_F( | 409 IN_PROC_BROWSER_TEST_F( |
417 PasswordManagerBrowserTestBase, | 410 PasswordManagerBrowserTestBase, |
418 MAYBE_NoPromptForFailedLoginFromSubFrameWithMultiFramesInPage) { | 411 NoPromptForFailedLoginFromSubFrameWithMultiFramesInPage) { |
419 NavigateToFile("/password/multi_frames.html"); | 412 NavigateToFile("/password/multi_frames.html"); |
420 | 413 |
421 // Make sure that we don't prompt to save the password for a failed login | 414 // Make sure that we don't prompt to save the password for a failed login |
422 // from a sub-frame with multiple frames in the same page. | 415 // from a sub-frame with multiple frames in the same page. |
423 NavigationObserver observer(WebContents()); | 416 NavigationObserver observer(WebContents()); |
424 scoped_ptr<PromptObserver> prompt_observer( | 417 scoped_ptr<PromptObserver> prompt_observer( |
425 PromptObserver::Create(WebContents())); | 418 PromptObserver::Create(WebContents())); |
426 std::string fill_and_submit = | 419 std::string fill_and_submit = |
427 "var first_frame = document.getElementById('first_frame');" | 420 "var first_frame = document.getElementById('first_frame');" |
428 "var frame_doc = first_frame.contentDocument;" | 421 "var frame_doc = first_frame.contentDocument;" |
(...skipping 538 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
967 PasswordStoreFactory::GetForProfile( | 960 PasswordStoreFactory::GetForProfile( |
968 browser()->profile(), ServiceAccessType::IMPLICIT_ACCESS) | 961 browser()->profile(), ServiceAccessType::IMPLICIT_ACCESS) |
969 .get()); | 962 .get()); |
970 | 963 |
971 // Spin the message loop to make sure the password store had a chance to save | 964 // Spin the message loop to make sure the password store had a chance to save |
972 // the password. | 965 // the password. |
973 base::RunLoop run_loop; | 966 base::RunLoop run_loop; |
974 run_loop.RunUntilIdle(); | 967 run_loop.RunUntilIdle(); |
975 EXPECT_FALSE(password_store->IsEmpty()); | 968 EXPECT_FALSE(password_store->IsEmpty()); |
976 | 969 |
977 #if !defined(OS_MACOSX) | |
978 CheckThatCredentialsStored(password_store.get(), base::ASCIIToUTF16("temp"), | 970 CheckThatCredentialsStored(password_store.get(), base::ASCIIToUTF16("temp"), |
979 base::ASCIIToUTF16("random")); | 971 base::ASCIIToUTF16("random")); |
980 #endif | |
981 } | 972 } |
982 | 973 |
983 // Test for checking that no prompt is shown for URLs with file: scheme. | 974 // Test for checking that no prompt is shown for URLs with file: scheme. |
984 IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTestBase, | 975 IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTestBase, |
985 NoPromptForFileSchemeURLs) { | 976 NoPromptForFileSchemeURLs) { |
986 GURL url = GetFileURL("password_form.html"); | 977 GURL url = GetFileURL("password_form.html"); |
987 ui_test_utils::NavigateToURL(browser(), url); | 978 ui_test_utils::NavigateToURL(browser(), url); |
988 | 979 |
989 NavigationObserver observer(WebContents()); | 980 NavigationObserver observer(WebContents()); |
990 scoped_ptr<PromptObserver> prompt_observer( | 981 scoped_ptr<PromptObserver> prompt_observer( |
(...skipping 647 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1638 | 1629 |
1639 content::SimulateMouseClickAt( | 1630 content::SimulateMouseClickAt( |
1640 WebContents(), 0, blink::WebMouseEvent::ButtonLeft, gfx::Point(left + 1, | 1631 WebContents(), 0, blink::WebMouseEvent::ButtonLeft, gfx::Point(left + 1, |
1641 top + 1)); | 1632 top + 1)); |
1642 // Make sure the popup would be shown. | 1633 // Make sure the popup would be shown. |
1643 observing_autofill_client.Wait(); | 1634 observing_autofill_client.Wait(); |
1644 } | 1635 } |
1645 | 1636 |
1646 IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTestBase, | 1637 IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTestBase, |
1647 ChangePwdFormBubbleShown) { | 1638 ChangePwdFormBubbleShown) { |
1639 // TODO(dvadym): Remove appending kEnablePasswordChangeSupport switch as soon as | |
1640 // it is removed on Mac. http://crbug.com/359315 | |
1641 #if defined(OS_MACOSX) | |
1642 // Add the enable-password-change-support feature. | |
1643 base::FeatureList::ClearInstanceForTesting(); | |
1644 scoped_ptr<base::FeatureList> feature_list(new base::FeatureList); | |
1645 feature_list->InitializeFromCommandLine( | |
1646 password_manager::features::kEnablePasswordChangeSupport.name, ""); | |
1647 base::FeatureList::SetInstance(std::move(feature_list)); | |
1648 #endif | |
1648 NavigateToFile("/password/password_form.html"); | 1649 NavigateToFile("/password/password_form.html"); |
1649 | 1650 |
1650 NavigationObserver observer(WebContents()); | 1651 NavigationObserver observer(WebContents()); |
1651 scoped_ptr<PromptObserver> prompt_observer( | 1652 scoped_ptr<PromptObserver> prompt_observer( |
1652 PromptObserver::Create(WebContents())); | 1653 PromptObserver::Create(WebContents())); |
1653 std::string fill_and_submit = | 1654 std::string fill_and_submit = |
1654 "document.getElementById('chg_username_field').value = 'temp';" | 1655 "document.getElementById('chg_username_field').value = 'temp';" |
1655 "document.getElementById('chg_password_field').value = 'random';" | 1656 "document.getElementById('chg_password_field').value = 'random';" |
1656 "document.getElementById('chg_new_password_1').value = 'random1';" | 1657 "document.getElementById('chg_new_password_1').value = 'random1';" |
1657 "document.getElementById('chg_new_password_2').value = 'random1';" | 1658 "document.getElementById('chg_new_password_2').value = 'random1';" |
1658 "document.getElementById('chg_submit_button').click()"; | 1659 "document.getElementById('chg_submit_button').click()"; |
1659 ASSERT_TRUE(content::ExecuteScript(RenderViewHost(), fill_and_submit)); | 1660 ASSERT_TRUE(content::ExecuteScript(RenderViewHost(), fill_and_submit)); |
1660 observer.Wait(); | 1661 observer.Wait(); |
1661 // TODO(dvadym): Turn on this test when Change password UI will be implemented | |
1662 // for Mac. http://crbug.com/359315 | |
1663 #if defined(OS_MACOSX) | |
1664 EXPECT_FALSE(prompt_observer->IsShowingPrompt()); | |
1665 #else | |
1666 EXPECT_TRUE(prompt_observer->IsShowingPrompt()); | 1662 EXPECT_TRUE(prompt_observer->IsShowingPrompt()); |
1667 #endif | |
1668 } | 1663 } |
1669 | 1664 |
1670 IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTestBase, | 1665 IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTestBase, |
1671 ChangePwdFormPushStateBubbleShown) { | 1666 ChangePwdFormPushStateBubbleShown) { |
1667 // TODO(dvadym): Remove appending kEnablePasswordChangeSupport switch as soon as | |
1668 // it is removed on Mac. http://crbug.com/359315 | |
1669 #if defined(OS_MACOSX) | |
1670 // Add the enable-password-change-support feature. | |
1671 base::FeatureList::ClearInstanceForTesting(); | |
1672 scoped_ptr<base::FeatureList> feature_list(new base::FeatureList); | |
1673 feature_list->InitializeFromCommandLine( | |
1674 password_manager::features::kEnablePasswordChangeSupport.name, ""); | |
1675 base::FeatureList::SetInstance(std::move(feature_list)); | |
1676 #endif | |
1672 NavigateToFile("/password/password_push_state.html"); | 1677 NavigateToFile("/password/password_push_state.html"); |
1673 | 1678 |
1674 NavigationObserver observer(WebContents()); | 1679 NavigationObserver observer(WebContents()); |
1675 observer.set_quit_on_entry_committed(true); | 1680 observer.set_quit_on_entry_committed(true); |
1676 scoped_ptr<PromptObserver> prompt_observer( | 1681 scoped_ptr<PromptObserver> prompt_observer( |
1677 PromptObserver::Create(WebContents())); | 1682 PromptObserver::Create(WebContents())); |
1678 std::string fill_and_submit = | 1683 std::string fill_and_submit = |
1679 "document.getElementById('chg_username_field').value = 'temp';" | 1684 "document.getElementById('chg_username_field').value = 'temp';" |
1680 "document.getElementById('chg_password_field').value = 'random';" | 1685 "document.getElementById('chg_password_field').value = 'random';" |
1681 "document.getElementById('chg_new_password_1').value = 'random1';" | 1686 "document.getElementById('chg_new_password_1').value = 'random1';" |
1682 "document.getElementById('chg_new_password_2').value = 'random1';" | 1687 "document.getElementById('chg_new_password_2').value = 'random1';" |
1683 "document.getElementById('chg_submit_button').click()"; | 1688 "document.getElementById('chg_submit_button').click()"; |
1684 ASSERT_TRUE(content::ExecuteScript(RenderViewHost(), fill_and_submit)); | 1689 ASSERT_TRUE(content::ExecuteScript(RenderViewHost(), fill_and_submit)); |
1685 observer.Wait(); | 1690 observer.Wait(); |
1686 // TODO(dvadym): Turn on this test when Change password UI will be implemented | |
1687 // for Mac. http://crbug.com/359315 | |
1688 #if defined(OS_MACOSX) | |
1689 EXPECT_FALSE(prompt_observer->IsShowingPrompt()); | |
1690 #else | |
1691 EXPECT_TRUE(prompt_observer->IsShowingPrompt()); | 1691 EXPECT_TRUE(prompt_observer->IsShowingPrompt()); |
1692 #endif | |
1693 } | 1692 } |
1694 | 1693 |
1695 IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTestBase, NoPromptOnBack) { | 1694 IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTestBase, NoPromptOnBack) { |
1696 // Go to a successful landing page through submitting first, so that it is | 1695 // Go to a successful landing page through submitting first, so that it is |
1697 // reachable through going back, and the remembered page transition is form | 1696 // reachable through going back, and the remembered page transition is form |
1698 // submit. There is no need to submit non-empty strings. | 1697 // submit. There is no need to submit non-empty strings. |
1699 NavigateToFile("/password/password_form.html"); | 1698 NavigateToFile("/password/password_form.html"); |
1700 | 1699 |
1701 NavigationObserver dummy_submit_observer(WebContents()); | 1700 NavigationObserver dummy_submit_observer(WebContents()); |
1702 std::string just_submit = | 1701 std::string just_submit = |
(...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2030 content::RenderProcessHostWatcher iframe_killed( | 2029 content::RenderProcessHostWatcher iframe_killed( |
2031 iframe->GetProcess(), | 2030 iframe->GetProcess(), |
2032 content::RenderProcessHostWatcher::WATCH_FOR_PROCESS_EXIT); | 2031 content::RenderProcessHostWatcher::WATCH_FOR_PROCESS_EXIT); |
2033 | 2032 |
2034 IPC::IpcSecurityTestUtil::PwnMessageReceived( | 2033 IPC::IpcSecurityTestUtil::PwnMessageReceived( |
2035 iframe->GetProcess()->GetChannel(), illegal_forms_parsed); | 2034 iframe->GetProcess()->GetChannel(), illegal_forms_parsed); |
2036 | 2035 |
2037 iframe_killed.Wait(); | 2036 iframe_killed.Wait(); |
2038 } | 2037 } |
2039 | 2038 |
2040 // TODO(dvadym): Turn on this test when Change password UI will be implemented | |
2041 // for Mac. http://crbug.com/359315 | |
2042 #if !defined(OS_MACOSX) | |
2043 IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTestBase, | 2039 IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTestBase, |
2044 ChangePwdNoAccountStored) { | 2040 ChangePwdNoAccountStored) { |
2041 #if defined(OS_MACOSX) | |
2042 // Add the enable-password-change-support feature. | |
2043 base::FeatureList::ClearInstanceForTesting(); | |
2044 scoped_ptr<base::FeatureList> feature_list(new base::FeatureList); | |
2045 feature_list->InitializeFromCommandLine( | |
2046 password_manager::features::kEnablePasswordChangeSupport.name, ""); | |
2047 base::FeatureList::SetInstance(std::move(feature_list)); | |
2048 #endif | |
2045 ASSERT_TRUE(ChromePasswordManagerClient::IsTheHotNewBubbleUIEnabled()); | 2049 ASSERT_TRUE(ChromePasswordManagerClient::IsTheHotNewBubbleUIEnabled()); |
2046 NavigateToFile("/password/password_form.html"); | 2050 NavigateToFile("/password/password_form.html"); |
2047 | 2051 |
2048 // Fill a form and submit through a <input type="submit"> button. | 2052 // Fill a form and submit through a <input type="submit"> button. |
2049 NavigationObserver observer(WebContents()); | 2053 NavigationObserver observer(WebContents()); |
2050 scoped_ptr<PromptObserver> prompt_observer( | 2054 scoped_ptr<PromptObserver> prompt_observer( |
2051 PromptObserver::Create(WebContents())); | 2055 PromptObserver::Create(WebContents())); |
2052 | 2056 |
2053 std::string fill_and_submit = | 2057 std::string fill_and_submit = |
2054 "document.getElementById('chg_password_wo_username_field').value = " | 2058 "document.getElementById('chg_password_wo_username_field').value = " |
(...skipping 15 matching lines...) Expand all Loading... | |
2070 browser()->profile(), ServiceAccessType::IMPLICIT_ACCESS) | 2074 browser()->profile(), ServiceAccessType::IMPLICIT_ACCESS) |
2071 .get()); | 2075 .get()); |
2072 // Spin the message loop to make sure the password store had a chance to save | 2076 // Spin the message loop to make sure the password store had a chance to save |
2073 // the password. | 2077 // the password. |
2074 base::RunLoop run_loop; | 2078 base::RunLoop run_loop; |
2075 run_loop.RunUntilIdle(); | 2079 run_loop.RunUntilIdle(); |
2076 EXPECT_FALSE(password_store->IsEmpty()); | 2080 EXPECT_FALSE(password_store->IsEmpty()); |
2077 CheckThatCredentialsStored(password_store.get(), base::ASCIIToUTF16(""), | 2081 CheckThatCredentialsStored(password_store.get(), base::ASCIIToUTF16(""), |
2078 base::ASCIIToUTF16("new_pw")); | 2082 base::ASCIIToUTF16("new_pw")); |
2079 } | 2083 } |
2080 #endif | |
2081 | 2084 |
2082 // TODO(dvadym): Turn on this test when Change password UI will be implemented | |
2083 // for Mac. http://crbug.com/359315 | |
2084 #if !defined(OS_MACOSX) | |
2085 IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTestBase, | 2085 IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTestBase, |
2086 ChangePwd1AccountStored) { | 2086 ChangePwd1AccountStored) { |
2087 #if defined(OS_MACOSX) | |
2088 // Add the enable-password-change-support feature. | |
2089 base::FeatureList::ClearInstanceForTesting(); | |
2090 scoped_ptr<base::FeatureList> feature_list(new base::FeatureList); | |
2091 feature_list->InitializeFromCommandLine( | |
2092 password_manager::features::kEnablePasswordChangeSupport.name, ""); | |
2093 base::FeatureList::SetInstance(std::move(feature_list)); | |
2094 #endif | |
2087 ASSERT_TRUE(ChromePasswordManagerClient::IsTheHotNewBubbleUIEnabled()); | 2095 ASSERT_TRUE(ChromePasswordManagerClient::IsTheHotNewBubbleUIEnabled()); |
2088 // At first let us save credentials to the PasswordManager. | 2096 // At first let us save credentials to the PasswordManager. |
2089 scoped_refptr<password_manager::TestPasswordStore> password_store = | 2097 scoped_refptr<password_manager::TestPasswordStore> password_store = |
2090 static_cast<password_manager::TestPasswordStore*>( | 2098 static_cast<password_manager::TestPasswordStore*>( |
2091 PasswordStoreFactory::GetForProfile( | 2099 PasswordStoreFactory::GetForProfile( |
2092 browser()->profile(), ServiceAccessType::IMPLICIT_ACCESS) | 2100 browser()->profile(), ServiceAccessType::IMPLICIT_ACCESS) |
2093 .get()); | 2101 .get()); |
2094 autofill::PasswordForm signin_form; | 2102 autofill::PasswordForm signin_form; |
2095 signin_form.signon_realm = embedded_test_server()->base_url().spec(); | 2103 signin_form.signon_realm = embedded_test_server()->base_url().spec(); |
2096 signin_form.password_value = base::ASCIIToUTF16("pw"); | 2104 signin_form.password_value = base::ASCIIToUTF16("pw"); |
(...skipping 24 matching lines...) Expand all Loading... | |
2121 ->GetPendingPassword(); | 2129 ->GetPendingPassword(); |
2122 prompt_observer->AcceptUpdatePrompt(pending_credentials); | 2130 prompt_observer->AcceptUpdatePrompt(pending_credentials); |
2123 | 2131 |
2124 // Spin the message loop to make sure the password store had a chance to | 2132 // Spin the message loop to make sure the password store had a chance to |
2125 // update the password. | 2133 // update the password. |
2126 base::RunLoop run_loop; | 2134 base::RunLoop run_loop; |
2127 run_loop.RunUntilIdle(); | 2135 run_loop.RunUntilIdle(); |
2128 CheckThatCredentialsStored(password_store.get(), base::ASCIIToUTF16("temp"), | 2136 CheckThatCredentialsStored(password_store.get(), base::ASCIIToUTF16("temp"), |
2129 base::ASCIIToUTF16("new_pw")); | 2137 base::ASCIIToUTF16("new_pw")); |
2130 } | 2138 } |
2131 #endif | |
2132 | 2139 |
2133 // TODO(dvadym): Turn on this test when Change password UI will be implemented | |
2134 // for Mac. http://crbug.com/359315 | |
2135 #if !defined(OS_MACOSX) | |
2136 IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTestBase, | 2140 IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTestBase, |
2137 PasswordOverridenUpdateBubbleShown) { | 2141 PasswordOverridenUpdateBubbleShown) { |
2142 #if defined(OS_MACOSX) | |
2143 // Add the enable-password-change-support feature. | |
2144 base::FeatureList::ClearInstanceForTesting(); | |
2145 scoped_ptr<base::FeatureList> feature_list(new base::FeatureList); | |
2146 feature_list->InitializeFromCommandLine( | |
2147 password_manager::features::kEnablePasswordChangeSupport.name, ""); | |
2148 base::FeatureList::SetInstance(std::move(feature_list)); | |
2149 #endif | |
2138 ASSERT_TRUE(ChromePasswordManagerClient::IsTheHotNewBubbleUIEnabled()); | 2150 ASSERT_TRUE(ChromePasswordManagerClient::IsTheHotNewBubbleUIEnabled()); |
2139 // At first let us save credentials to the PasswordManager. | 2151 // At first let us save credentials to the PasswordManager. |
2140 scoped_refptr<password_manager::TestPasswordStore> password_store = | 2152 scoped_refptr<password_manager::TestPasswordStore> password_store = |
2141 static_cast<password_manager::TestPasswordStore*>( | 2153 static_cast<password_manager::TestPasswordStore*>( |
2142 PasswordStoreFactory::GetForProfile( | 2154 PasswordStoreFactory::GetForProfile( |
2143 browser()->profile(), ServiceAccessType::IMPLICIT_ACCESS) | 2155 browser()->profile(), ServiceAccessType::IMPLICIT_ACCESS) |
2144 .get()); | 2156 .get()); |
2145 autofill::PasswordForm signin_form; | 2157 autofill::PasswordForm signin_form; |
2146 signin_form.signon_realm = embedded_test_server()->base_url().spec(); | 2158 signin_form.signon_realm = embedded_test_server()->base_url().spec(); |
2147 signin_form.username_value = base::ASCIIToUTF16("temp"); | 2159 signin_form.username_value = base::ASCIIToUTF16("temp"); |
(...skipping 18 matching lines...) Expand all Loading... | |
2166 const autofill::PasswordForm stored_form = | 2178 const autofill::PasswordForm stored_form = |
2167 password_store->stored_passwords().begin()->second[0]; | 2179 password_store->stored_passwords().begin()->second[0]; |
2168 prompt_observer->AcceptUpdatePrompt(stored_form); | 2180 prompt_observer->AcceptUpdatePrompt(stored_form); |
2169 // Spin the message loop to make sure the password store had a chance to | 2181 // Spin the message loop to make sure the password store had a chance to |
2170 // update the password. | 2182 // update the password. |
2171 base::RunLoop run_loop; | 2183 base::RunLoop run_loop; |
2172 run_loop.RunUntilIdle(); | 2184 run_loop.RunUntilIdle(); |
2173 CheckThatCredentialsStored(password_store.get(), base::ASCIIToUTF16("temp"), | 2185 CheckThatCredentialsStored(password_store.get(), base::ASCIIToUTF16("temp"), |
2174 base::ASCIIToUTF16("new_pw")); | 2186 base::ASCIIToUTF16("new_pw")); |
2175 } | 2187 } |
2176 #endif | |
2177 | 2188 |
2178 // TODO(dvadym): Turn on this test when Change password UI will be implemented | |
2179 // for Mac. http://crbug.com/359315 | |
2180 #if !defined(OS_MACOSX) | |
2181 IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTestBase, | 2189 IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTestBase, |
2182 PasswordNotOverridenUpdateBubbleNotShown) { | 2190 PasswordNotOverridenUpdateBubbleNotShown) { |
2191 #if defined(OS_MACOSX) | |
2192 // Add the enable-password-change-support feature. | |
2193 base::FeatureList::ClearInstanceForTesting(); | |
2194 scoped_ptr<base::FeatureList> feature_list(new base::FeatureList); | |
2195 feature_list->InitializeFromCommandLine( | |
2196 password_manager::features::kEnablePasswordChangeSupport.name, ""); | |
2197 base::FeatureList::SetInstance(std::move(feature_list)); | |
2198 #endif | |
2183 ASSERT_TRUE(ChromePasswordManagerClient::IsTheHotNewBubbleUIEnabled()); | 2199 ASSERT_TRUE(ChromePasswordManagerClient::IsTheHotNewBubbleUIEnabled()); |
2184 // At first let us save credentials to the PasswordManager. | 2200 // At first let us save credentials to the PasswordManager. |
2185 scoped_refptr<password_manager::TestPasswordStore> password_store = | 2201 scoped_refptr<password_manager::TestPasswordStore> password_store = |
2186 static_cast<password_manager::TestPasswordStore*>( | 2202 static_cast<password_manager::TestPasswordStore*>( |
2187 PasswordStoreFactory::GetForProfile( | 2203 PasswordStoreFactory::GetForProfile( |
2188 browser()->profile(), ServiceAccessType::IMPLICIT_ACCESS) | 2204 browser()->profile(), ServiceAccessType::IMPLICIT_ACCESS) |
2189 .get()); | 2205 .get()); |
2190 autofill::PasswordForm signin_form; | 2206 autofill::PasswordForm signin_form; |
2191 signin_form.signon_realm = embedded_test_server()->base_url().spec(); | 2207 signin_form.signon_realm = embedded_test_server()->base_url().spec(); |
2192 signin_form.username_value = base::ASCIIToUTF16("temp"); | 2208 signin_form.username_value = base::ASCIIToUTF16("temp"); |
(...skipping 10 matching lines...) Expand all Loading... | |
2203 "document.getElementById('password_field').value = 'pw';" | 2219 "document.getElementById('password_field').value = 'pw';" |
2204 "document.getElementById('input_submit_button').click()"; | 2220 "document.getElementById('input_submit_button').click()"; |
2205 ASSERT_TRUE(content::ExecuteScript(RenderViewHost(), fill_and_submit)); | 2221 ASSERT_TRUE(content::ExecuteScript(RenderViewHost(), fill_and_submit)); |
2206 observer.Wait(); | 2222 observer.Wait(); |
2207 // The stored password "pw" was not overriden, so update prompt is not | 2223 // The stored password "pw" was not overriden, so update prompt is not |
2208 // expected. | 2224 // expected. |
2209 EXPECT_FALSE(prompt_observer->IsShowingUpdatePrompt()); | 2225 EXPECT_FALSE(prompt_observer->IsShowingUpdatePrompt()); |
2210 CheckThatCredentialsStored(password_store.get(), base::ASCIIToUTF16("temp"), | 2226 CheckThatCredentialsStored(password_store.get(), base::ASCIIToUTF16("temp"), |
2211 base::ASCIIToUTF16("pw")); | 2227 base::ASCIIToUTF16("pw")); |
2212 } | 2228 } |
2213 #endif | |
2214 | 2229 |
2215 // TODO(dvadym): Turn on this test when Change password UI will be implemented | |
2216 // for Mac. http://crbug.com/359315 | |
2217 #if !defined(OS_MACOSX) | |
2218 IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTestBase, | 2230 IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTestBase, |
2219 ChangePwdWhenTheFormContainNotUsernameTextfield) { | 2231 ChangePwdWhenTheFormContainNotUsernameTextfield) { |
2232 #if defined(OS_MACOSX) | |
2233 // Add the enable-password-change-support feature. | |
2234 base::FeatureList::ClearInstanceForTesting(); | |
2235 scoped_ptr<base::FeatureList> feature_list(new base::FeatureList); | |
2236 feature_list->InitializeFromCommandLine( | |
2237 password_manager::features::kEnablePasswordChangeSupport.name, ""); | |
2238 base::FeatureList::SetInstance(std::move(feature_list)); | |
2239 #endif | |
vasilii
2015/12/15 15:58:01
Shouldn't it go to the test's setup?
dvadym
2015/12/16 14:16:30
It will be removed with the flag in a couple of we
| |
2220 ASSERT_TRUE(ChromePasswordManagerClient::IsTheHotNewBubbleUIEnabled()); | 2240 ASSERT_TRUE(ChromePasswordManagerClient::IsTheHotNewBubbleUIEnabled()); |
2221 // At first let us save credentials to the PasswordManager. | 2241 // At first let us save credentials to the PasswordManager. |
2222 scoped_refptr<password_manager::TestPasswordStore> password_store = | 2242 scoped_refptr<password_manager::TestPasswordStore> password_store = |
2223 static_cast<password_manager::TestPasswordStore*>( | 2243 static_cast<password_manager::TestPasswordStore*>( |
2224 PasswordStoreFactory::GetForProfile( | 2244 PasswordStoreFactory::GetForProfile( |
2225 browser()->profile(), ServiceAccessType::IMPLICIT_ACCESS) | 2245 browser()->profile(), ServiceAccessType::IMPLICIT_ACCESS) |
2226 .get()); | 2246 .get()); |
2227 autofill::PasswordForm signin_form; | 2247 autofill::PasswordForm signin_form; |
2228 signin_form.signon_realm = embedded_test_server()->base_url().spec(); | 2248 signin_form.signon_realm = embedded_test_server()->base_url().spec(); |
2229 signin_form.password_value = base::ASCIIToUTF16("pw"); | 2249 signin_form.password_value = base::ASCIIToUTF16("pw"); |
(...skipping 22 matching lines...) Expand all Loading... | |
2252 const autofill::PasswordForm stored_form = | 2272 const autofill::PasswordForm stored_form = |
2253 password_store->stored_passwords().begin()->second[0]; | 2273 password_store->stored_passwords().begin()->second[0]; |
2254 prompt_observer->AcceptUpdatePrompt(stored_form); | 2274 prompt_observer->AcceptUpdatePrompt(stored_form); |
2255 // Spin the message loop to make sure the password store had a chance to | 2275 // Spin the message loop to make sure the password store had a chance to |
2256 // update the password. | 2276 // update the password. |
2257 base::RunLoop run_loop; | 2277 base::RunLoop run_loop; |
2258 run_loop.RunUntilIdle(); | 2278 run_loop.RunUntilIdle(); |
2259 CheckThatCredentialsStored(password_store.get(), base::ASCIIToUTF16("temp"), | 2279 CheckThatCredentialsStored(password_store.get(), base::ASCIIToUTF16("temp"), |
2260 base::ASCIIToUTF16("new_pw")); | 2280 base::ASCIIToUTF16("new_pw")); |
2261 } | 2281 } |
2262 #endif | |
2263 | 2282 |
2264 // Test whether the password form with the username and password fields having | 2283 // Test whether the password form with the username and password fields having |
2265 // ambiguity in id attribute gets autofilled correctly. | 2284 // ambiguity in id attribute gets autofilled correctly. |
2266 IN_PROC_BROWSER_TEST_F( | 2285 IN_PROC_BROWSER_TEST_F( |
2267 PasswordManagerBrowserTestBase, | 2286 PasswordManagerBrowserTestBase, |
2268 AutofillSuggestionsForPasswordFormWithAmbiguousIdAttribute) { | 2287 AutofillSuggestionsForPasswordFormWithAmbiguousIdAttribute) { |
2269 // At first let us save credentials to the PasswordManager. | 2288 // At first let us save credentials to the PasswordManager. |
2270 scoped_refptr<password_manager::PasswordStore> password_store = | 2289 scoped_refptr<password_manager::PasswordStore> password_store = |
2271 PasswordStoreFactory::GetForProfile(browser()->profile(), | 2290 PasswordStoreFactory::GetForProfile(browser()->profile(), |
2272 ServiceAccessType::IMPLICIT_ACCESS); | 2291 ServiceAccessType::IMPLICIT_ACCESS); |
(...skipping 627 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2900 std::string submit = | 2919 std::string submit = |
2901 "document.getElementById('username').value = 'temp';" | 2920 "document.getElementById('username').value = 'temp';" |
2902 "document.getElementById('password').value = 'mypassword';" | 2921 "document.getElementById('password').value = 'mypassword';" |
2903 "document.getElementById('submit').click();"; | 2922 "document.getElementById('submit').click();"; |
2904 VerifyPasswordIsSavedAndFilled( | 2923 VerifyPasswordIsSavedAndFilled( |
2905 "/password/password_autocomplete_off_test.html", submit, "password", | 2924 "/password/password_autocomplete_off_test.html", submit, "password", |
2906 "mypassword"); | 2925 "mypassword"); |
2907 } | 2926 } |
2908 | 2927 |
2909 } // namespace password_manager | 2928 } // namespace password_manager |
OLD | NEW |