diff options
Diffstat (limited to 'chrome/renderer/form_manager_browsertest.cc')
-rw-r--r-- | chrome/renderer/form_manager_browsertest.cc | 52 |
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\"/>" |