Index: chrome/renderer/autofill/password_autofill_agent_browsertest.cc |
diff --git a/chrome/renderer/autofill/password_autofill_agent_browsertest.cc b/chrome/renderer/autofill/password_autofill_agent_browsertest.cc |
index 02eef49a6eb142f44553ef85359279a3e24672b5..d4ffec2db103a011d602e10d4cb37b7964b7d72d 100644 |
--- a/chrome/renderer/autofill/password_autofill_agent_browsertest.cc |
+++ b/chrome/renderer/autofill/password_autofill_agent_browsertest.cc |
@@ -4,6 +4,7 @@ |
#include <tuple> |
+#include "base/command_line.h" |
#include "base/macros.h" |
#include "base/strings/string_util.h" |
#include "base/strings/utf_string_conversions.h" |
@@ -253,6 +254,17 @@ class PasswordAutofillAgentTest : public ChromeRenderViewTest { |
content::RenderFrame::FromWebFrame(frame)->OnMessageReceived(msg); |
} |
+ // Simulates the show initial password account suggestions message being sent |
+ // to the renderer. We use that so we don't have to make |
+ // RenderView::OnShowInitialPasswordAccountSuggestions() protected. |
+ void SimulateOnShowInitialPasswordAccountSuggestions( |
+ const PasswordFormFillData& fill_data) { |
+ AutofillMsg_ShowInitialPasswordAccountSuggestions msg( |
+ 0, kPasswordFillFormDataId, fill_data); |
+ static_cast<content::RenderFrameObserver*>(autofill_agent_) |
+ ->OnMessageReceived(msg); |
+ } |
+ |
void SendVisiblePasswordForms() { |
static_cast<content::RenderFrameObserver*>(password_autofill_agent_) |
->DidFinishLoad(); |
@@ -1282,7 +1294,7 @@ TEST_F(PasswordAutofillAgentTest, |
autofill::switches::kEnableFillOnAccountSelect); |
// Simulate the browser sending back the login info. |
- SimulateOnFillPasswordForm(fill_data_); |
+ SimulateOnShowInitialPasswordAccountSuggestions(fill_data_); |
// Clear the text fields to start fresh. |
ClearUsernameAndPasswordFields(); |
@@ -1312,7 +1324,7 @@ TEST_F(PasswordAutofillAgentTest, |
autofill::switches::kEnableFillOnAccountSelect); |
// Simulate the browser sending back the login info. |
- SimulateOnFillPasswordForm(fill_data_); |
+ SimulateOnShowInitialPasswordAccountSuggestions(fill_data_); |
// Clear the text fields to start fresh. |
ClearUsernameAndPasswordFields(); |
@@ -1564,9 +1576,10 @@ TEST_F(PasswordAutofillAgentTest, FillOnAccountSelectOnly) { |
ClearUsernameAndPasswordFields(); |
// Simulate the browser sending back the login info for an initial page load. |
- SimulateOnFillPasswordForm(fill_data_); |
+ SimulateOnShowInitialPasswordAccountSuggestions(fill_data_); |
- CheckTextFieldsState(std::string(), true, std::string(), false); |
+ CheckTextFieldsState(std::string(), false, std::string(), false); |
+ CheckSuggestions(std::string(), true); |
} |
TEST_F(PasswordAutofillAgentTest, FillOnAccountSelectOnlyReadonlyUsername) { |
@@ -1579,9 +1592,9 @@ TEST_F(PasswordAutofillAgentTest, FillOnAccountSelectOnlyReadonlyUsername) { |
SetElementReadOnly(username_element_, true); |
// Simulate the browser sending back the login info for an initial page load. |
- SimulateOnFillPasswordForm(fill_data_); |
+ SimulateOnShowInitialPasswordAccountSuggestions(fill_data_); |
- CheckTextFieldsState(std::string("alice"), false, std::string(), true); |
+ CheckTextFieldsState(std::string("alice"), false, std::string(), false); |
} |
TEST_F(PasswordAutofillAgentTest, |
@@ -1595,9 +1608,9 @@ TEST_F(PasswordAutofillAgentTest, |
SetElementReadOnly(username_element_, true); |
// Simulate the browser sending back the login info for an initial page load. |
- SimulateOnFillPasswordForm(fill_data_); |
+ SimulateOnShowInitialPasswordAccountSuggestions(fill_data_); |
- CheckTextFieldsState(std::string("Carol"), false, std::string(), true); |
+ CheckTextFieldsState(std::string("Carol"), false, std::string(), false); |
} |
TEST_F(PasswordAutofillAgentTest, FillOnAccountSelectOnlyNoUsername) { |
@@ -1621,10 +1634,11 @@ TEST_F(PasswordAutofillAgentTest, FillOnAccountSelectOnlyNoUsername) { |
password_element_.setAutofilled(false); |
// Simulate the browser sending back the login info for an initial page load. |
- SimulateOnFillPasswordForm(fill_data_); |
+ SimulateOnShowInitialPasswordAccountSuggestions(fill_data_); |
EXPECT_TRUE(password_element_.suggestedValue().isEmpty()); |
- EXPECT_TRUE(password_element_.isAutofilled()); |
+ EXPECT_FALSE(password_element_.isAutofilled()); |
+ CheckSuggestions(std::string(), false); |
} |
TEST_F(PasswordAutofillAgentTest, ShowPopupOnEmptyPasswordField) { |