summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/form_manager_browsertest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/renderer/form_manager_browsertest.cc')
-rw-r--r--chrome/renderer/form_manager_browsertest.cc52
1 files changed, 52 insertions, 0 deletions
diff --git a/chrome/renderer/form_manager_browsertest.cc b/chrome/renderer/form_manager_browsertest.cc
index 7e6bc6a..76ff574 100644
--- a/chrome/renderer/form_manager_browsertest.cc
+++ b/chrome/renderer/form_manager_browsertest.cc
@@ -1381,6 +1381,58 @@ TEST_F(FormManagerTest, LabelsInferredWithImageTags) {
fields[5]);
}
+TEST_F(FormManagerTest, LabelsInferredFromDivTable) {
+ LoadHTML("<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">"
+ "<DIV>First Name:<BR>"
+ " <SPAN>"
+ " <INPUT type=\"text\" name=\"firstname\" value=\"John\">"
+ " </SPAN>"
+ "</DIV>"
+ "<DIV>Last Name:<BR>"
+ " <SPAN>"
+ " <INPUT type=\"text\" name=\"lastname\" value=\"Doe\">"
+ " </SPAN>"
+ "</DIV>"
+ "<input type=\"submit\" name=\"reply-send\" value=\"Send\">"
+ "</FORM>");
+
+ WebFrame* web_frame = GetMainFrame();
+ ASSERT_NE(static_cast<WebFrame*>(NULL), web_frame);
+
+ FormManager form_manager;
+ form_manager.ExtractForms(web_frame);
+
+ std::vector<FormData> forms;
+ form_manager.GetFormsInFrame(web_frame, FormManager::REQUIRE_NONE, &forms);
+ ASSERT_EQ(1U, forms.size());
+
+ const FormData& form = forms[0];
+ EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name);
+ EXPECT_EQ(GURL(web_frame->url()), form.origin);
+ EXPECT_EQ(GURL("http://cnn.com"), form.action);
+
+ const std::vector<FormField>& fields = form.fields;
+ ASSERT_EQ(3U, fields.size());
+ EXPECT_EQ(FormField(ASCIIToUTF16("First Name:"),
+ ASCIIToUTF16("firstname"),
+ ASCIIToUTF16("John"),
+ ASCIIToUTF16("text"),
+ 20),
+ fields[0]);
+ EXPECT_EQ(FormField(ASCIIToUTF16("Last Name:"),
+ ASCIIToUTF16("lastname"),
+ string16(),
+ ASCIIToUTF16("text"),
+ 20),
+ fields[1]);
+ EXPECT_EQ(FormField(string16(),
+ ASCIIToUTF16("reply-send"),
+ ASCIIToUTF16("Send"),
+ ASCIIToUTF16("submit"),
+ 0),
+ fields[2]);
+}
+
TEST_F(FormManagerTest, FillFormMaxLength) {
LoadHTML("<FORM name=\"TestForm\" action=\"http://buh.com\" method=\"post\">"
" <INPUT type=\"text\" id=\"firstname\" maxlength=\"5\"/>"