Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2504)

Unified Diff: chrome/renderer/autofill/password_autofill_agent_browsertest.cc

Issue 2769023003: [Password Manager] Check node visibility with isFocusable instead of hasNonEmptyLayoutSize (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 90b781f23f36ed7cf5417f91ca08b3f2cbadbd01..c6529be7584cbac63491ad677396c68c50f28f3b 100644
--- a/chrome/renderer/autofill/password_autofill_agent_browsertest.cc
+++ b/chrome/renderer/autofill/password_autofill_agent_browsertest.cc
@@ -96,6 +96,16 @@ const char kEmptyFormHTML[] =
"<body> <form> </form> </body>";
const char kNonVisibleFormHTML[] =
+ "<head> <style> form {visibility: hidden;} </style> </head>"
+ "<body>"
+ " <form>"
+ " <div>"
+ " <input type='password' id='password'/>"
+ " </div>"
+ " </form>"
+ "</body>";
+
+const char kNonDisplayedFormHTML[] =
"<head> <style> form {display: none;} </style> </head>"
"<body>"
" <form>"
@@ -817,27 +827,34 @@ TEST_F(PasswordAutofillAgentTest, WaitUsername) {
CheckTextFieldsState(kAliceUsername, false, std::string(), false);
}
-TEST_F(PasswordAutofillAgentTest, IsWebNodeVisibleTest) {
+TEST_F(PasswordAutofillAgentTest, IsWebElementVisibleTest) {
blink::WebVector<WebFormElement> forms1, forms2, forms3;
+ blink::WebVector<blink::WebFormControlElement> web_control_elements;
blink::WebFrame* frame;
LoadHTML(kVisibleFormWithNoUsernameHTML);
frame = GetMainFrame();
frame->document().forms(forms1);
ASSERT_EQ(1u, forms1.size());
- EXPECT_TRUE(form_util::IsWebNodeVisible(forms1[0]));
+ forms1[0].getFormControlElements(web_control_elements);
+ ASSERT_EQ(1u, web_control_elements.size());
+ EXPECT_TRUE(form_util::IsWebElementVisible(web_control_elements[0]));
- LoadHTML(kEmptyFormHTML);
+ LoadHTML(kNonVisibleFormHTML);
frame = GetMainFrame();
frame->document().forms(forms2);
ASSERT_EQ(1u, forms2.size());
- EXPECT_FALSE(form_util::IsWebNodeVisible(forms2[0]));
+ forms2[0].getFormControlElements(web_control_elements);
+ ASSERT_EQ(1u, web_control_elements.size());
+ EXPECT_FALSE(form_util::IsWebElementVisible(web_control_elements[0]));
- LoadHTML(kNonVisibleFormHTML);
+ LoadHTML(kNonDisplayedFormHTML);
frame = GetMainFrame();
frame->document().forms(forms3);
ASSERT_EQ(1u, forms3.size());
- EXPECT_FALSE(form_util::IsWebNodeVisible(forms3[0]));
+ forms3[0].getFormControlElements(web_control_elements);
+ ASSERT_EQ(1u, web_control_elements.size());
+ EXPECT_FALSE(form_util::IsWebElementVisible(web_control_elements[0]));
}
TEST_F(PasswordAutofillAgentTest, SendPasswordFormsTest) {
@@ -856,6 +873,13 @@ TEST_F(PasswordAutofillAgentTest, SendPasswordFormsTest) {
EXPECT_TRUE(fake_driver_.password_forms_rendered()->empty());
fake_driver_.reset_password_forms_rendered();
+ LoadHTML(kNonDisplayedFormHTML);
+ base::RunLoop().RunUntilIdle();
+ EXPECT_TRUE(fake_driver_.called_password_forms_rendered());
+ ASSERT_TRUE(static_cast<bool>(fake_driver_.password_forms_rendered()));
+ EXPECT_TRUE(fake_driver_.password_forms_rendered()->empty());
+
+ fake_driver_.reset_password_forms_rendered();
LoadHTML(kNonVisibleFormHTML);
base::RunLoop().RunUntilIdle();
EXPECT_TRUE(fake_driver_.called_password_forms_rendered());

Powered by Google App Engine
This is Rietveld 408576698