Index: chrome/renderer/form_manager_browsertest.cc |
diff --git a/chrome/renderer/form_manager_browsertest.cc b/chrome/renderer/form_manager_browsertest.cc |
index 3f3e6ad500e9472961766289b7d33beca01c1150..cf9272eced89b3334aa76d3e42e96da61308d041 100644 |
--- a/chrome/renderer/form_manager_browsertest.cc |
+++ b/chrome/renderer/form_manager_browsertest.cc |
@@ -1249,6 +1249,64 @@ TEST_F(FormManagerTest, LabelsInferredFromTableLabels) { |
fields[2]); |
} |
+TEST_F(FormManagerTest, LabelsInferredFromTableTDInterveningElements) { |
+ LoadHTML("<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">" |
+ "<TABLE>" |
+ " <TR>" |
+ " <TD>" |
+ " First Name:" |
+ " <BR>" |
+ " <INPUT type=\"text\" id=\"firstname\" value=\"John\"/>" |
+ " </TD>" |
+ " </TR>" |
+ " <TR>" |
+ " <TD>" |
+ " Last Name:" |
+ " <BR>" |
+ " <INPUT type=\"text\" id=\"lastname\" value=\"Smith\"/>" |
+ " </TD>" |
+ " </TR>" |
+ "</TABLE>" |
+ "<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"), |
+ ASCIIToUTF16("Smith"), |
+ ASCIIToUTF16("text"), |
+ 20), |
+ fields[1]); |
+ EXPECT_EQ(FormField(string16(), |
+ ASCIIToUTF16("reply-send"), |
+ ASCIIToUTF16("Send"), |
+ ASCIIToUTF16("submit"), |
+ 0), |
+ fields[2]); |
+} |
+ |
TEST_F(FormManagerTest, LabelsInferredFromDefinitionList) { |
LoadHTML("<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">" |
"<DL>" |