Index: chrome/browser/autofill/form_structure_unittest.cc |
diff --git a/chrome/browser/autofill/form_structure_unittest.cc b/chrome/browser/autofill/form_structure_unittest.cc |
index 0936300465dca521c9917e35fe97b9c1d906717a..4bfeb77822e5af5227684daaf800a9c5cc22cde8 100644 |
--- a/chrome/browser/autofill/form_structure_unittest.cc |
+++ b/chrome/browser/autofill/form_structure_unittest.cc |
@@ -13,6 +13,7 @@ |
#include "webkit/glue/form_field.h" |
using webkit_glue::FormData; |
+using webkit_glue::FormField; |
using WebKit::WebInputElement; |
namespace webkit_glue { |
@@ -51,24 +52,23 @@ namespace { |
TEST(FormStructureTest, FieldCount) { |
FormData form; |
form.method = ASCIIToUTF16("post"); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("username"), |
- ASCIIToUTF16("username"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("password"), |
- ASCIIToUTF16("password"), |
- string16(), |
- ASCIIToUTF16("password"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(string16(), |
- ASCIIToUTF16("Submit"), |
- string16(), |
- ASCIIToUTF16("submit"), |
- 0, |
- false)); |
+ |
+ FormField field; |
+ field.label = ASCIIToUTF16("username"); |
+ field.name = ASCIIToUTF16("username"); |
+ field.form_control_type = ASCIIToUTF16("text"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("password"); |
+ field.name = ASCIIToUTF16("password"); |
+ field.form_control_type = ASCIIToUTF16("password"); |
+ form.fields.push_back(field); |
+ |
+ field.label = string16(); |
+ field.name = ASCIIToUTF16("Submit"); |
+ field.form_control_type = ASCIIToUTF16("submit"); |
+ form.fields.push_back(field); |
+ |
FormStructure form_structure(form); |
// All fields are counted. |
@@ -78,30 +78,28 @@ TEST(FormStructureTest, FieldCount) { |
TEST(FormStructureTest, AutofillCount) { |
FormData form; |
form.method = ASCIIToUTF16("post"); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("username"), |
- ASCIIToUTF16("username"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("password"), |
- ASCIIToUTF16("password"), |
- string16(), |
- ASCIIToUTF16("password"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("state"), |
- ASCIIToUTF16("state"), |
- string16(), |
- ASCIIToUTF16("select-one"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(string16(), |
- ASCIIToUTF16("Submit"), |
- string16(), |
- ASCIIToUTF16("submit"), |
- 0, |
- false)); |
+ |
+ FormField field; |
+ field.label = ASCIIToUTF16("username"); |
+ field.name = ASCIIToUTF16("username"); |
+ field.form_control_type = ASCIIToUTF16("text"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("password"); |
+ field.name = ASCIIToUTF16("password"); |
+ field.form_control_type = ASCIIToUTF16("password"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("state"); |
+ field.name = ASCIIToUTF16("state"); |
+ field.form_control_type = ASCIIToUTF16("select-one"); |
+ form.fields.push_back(field); |
+ |
+ field.label = string16(); |
+ field.name = ASCIIToUTF16("Submit"); |
+ field.form_control_type = ASCIIToUTF16("submit"); |
+ form.fields.push_back(field); |
+ |
FormStructure form_structure(form); |
form_structure.DetermineHeuristicTypes(); |
@@ -124,52 +122,48 @@ TEST(FormStructureTest, IsAutofillable) { |
// We need at least three text fields to be auto-fillable. |
form.method = ASCIIToUTF16("post"); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("username"), |
- ASCIIToUTF16("username"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("password"), |
- ASCIIToUTF16("password"), |
- string16(), |
- ASCIIToUTF16("password"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(string16(), |
- ASCIIToUTF16("Submit"), |
- string16(), |
- ASCIIToUTF16("submit"), |
- 0, |
- false)); |
+ |
+ FormField field; |
+ field.label = ASCIIToUTF16("username"); |
+ field.name = ASCIIToUTF16("username"); |
+ field.form_control_type = ASCIIToUTF16("text"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("password"); |
+ field.name = ASCIIToUTF16("password"); |
+ field.form_control_type = ASCIIToUTF16("password"); |
+ form.fields.push_back(field); |
+ |
+ field.label = string16(); |
+ field.name = ASCIIToUTF16("Submit"); |
+ field.form_control_type = ASCIIToUTF16("submit"); |
+ form.fields.push_back(field); |
+ |
form_structure.reset(new FormStructure(form)); |
form_structure->DetermineHeuristicTypes(); |
EXPECT_FALSE(form_structure->IsAutofillable(true)); |
// We now have three text fields, but only two auto-fillable fields. |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("First Name"), |
- ASCIIToUTF16("firstname"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Last Name"), |
- ASCIIToUTF16("lastname"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
+ field.label = ASCIIToUTF16("First Name"); |
+ field.name = ASCIIToUTF16("firstname"); |
+ field.form_control_type = ASCIIToUTF16("text"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Last Name"); |
+ field.name = ASCIIToUTF16("lastname"); |
+ field.form_control_type = ASCIIToUTF16("text"); |
+ form.fields.push_back(field); |
+ |
form_structure.reset(new FormStructure(form)); |
form_structure->DetermineHeuristicTypes(); |
EXPECT_FALSE(form_structure->IsAutofillable(true)); |
// We now have three auto-fillable fields. |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Email"), |
- ASCIIToUTF16("email"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
+ field.label = ASCIIToUTF16("Email"); |
+ field.name = ASCIIToUTF16("email"); |
+ field.form_control_type = ASCIIToUTF16("email"); |
+ form.fields.push_back(field); |
+ |
form_structure.reset(new FormStructure(form)); |
form_structure->DetermineHeuristicTypes(); |
EXPECT_TRUE(form_structure->IsAutofillable(true)); |
@@ -202,28 +196,27 @@ TEST(FormStructureTest, ShouldBeParsed) { |
// We need at least three text fields to be parseable. |
form.method = ASCIIToUTF16("post"); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("username"), |
- ASCIIToUTF16("username"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
+ |
+ FormField field; |
+ field.label = ASCIIToUTF16("username"); |
+ field.name = ASCIIToUTF16("username"); |
+ field.form_control_type = ASCIIToUTF16("text"); |
+ form.fields.push_back(field); |
+ |
form_structure.reset(new FormStructure(form)); |
EXPECT_FALSE(form_structure->ShouldBeParsed(true)); |
// We now have three text fields, though only two are auto-fillable. |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("First Name"), |
- ASCIIToUTF16("firstname"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Last Name"), |
- ASCIIToUTF16("lastname"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
+ field.label = ASCIIToUTF16("First Name"); |
+ field.name = ASCIIToUTF16("firstname"); |
+ field.form_control_type = ASCIIToUTF16("text"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Last Name"); |
+ field.name = ASCIIToUTF16("lastname"); |
+ field.form_control_type = ASCIIToUTF16("text"); |
+ form.fields.push_back(field); |
+ |
form_structure.reset(new FormStructure(form)); |
EXPECT_TRUE(form_structure->ShouldBeParsed(true)); |
@@ -248,24 +241,22 @@ TEST(FormStructureTest, ShouldBeParsed) { |
// The form need only have three fields, but at least one must be a text |
// field. |
form.fields.clear(); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Email"), |
- ASCIIToUTF16("email"), |
- string16(), |
- ASCIIToUTF16("email"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("State"), |
- ASCIIToUTF16("state"), |
- string16(), |
- ASCIIToUTF16("select-one"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Country"), |
- ASCIIToUTF16("country"), |
- string16(), |
- ASCIIToUTF16("select-one"), |
- 0, |
- false)); |
+ |
+ field.label = ASCIIToUTF16("Email"); |
+ field.name = ASCIIToUTF16("email"); |
+ field.form_control_type = ASCIIToUTF16("email"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("State"); |
+ field.name = ASCIIToUTF16("state"); |
+ field.form_control_type = ASCIIToUTF16("select-one"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Country"); |
+ field.name = ASCIIToUTF16("country"); |
+ field.form_control_type = ASCIIToUTF16("select-one"); |
+ form.fields.push_back(field); |
+ |
form_structure.reset(new FormStructure(form)); |
EXPECT_TRUE(form_structure->ShouldBeParsed(true)); |
@@ -277,62 +268,48 @@ TEST(FormStructureTest, ShouldBeParsed) { |
TEST(FormStructureTest, HeuristicsContactInfo) { |
scoped_ptr<FormStructure> form_structure; |
FormData form; |
- |
form.method = ASCIIToUTF16("post"); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("First Name"), |
- ASCIIToUTF16("firstname"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Last Name"), |
- ASCIIToUTF16("lastname"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("EMail"), |
- ASCIIToUTF16("email"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Phone"), |
- ASCIIToUTF16("phone"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Fax"), |
- ASCIIToUTF16("fax"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Address"), |
- ASCIIToUTF16("address"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("City"), |
- ASCIIToUTF16("city"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Zip code"), |
- ASCIIToUTF16("zipcode"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(string16(), |
- ASCIIToUTF16("Submit"), |
- string16(), |
- ASCIIToUTF16("submit"), |
- 0, |
- false)); |
+ |
+ FormField field; |
+ field.form_control_type = ASCIIToUTF16("text"); |
+ |
+ field.label = ASCIIToUTF16("First Name"); |
+ field.name = ASCIIToUTF16("firstname"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Last Name"); |
+ field.name = ASCIIToUTF16("lastname"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Email"); |
+ field.name = ASCIIToUTF16("email"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Phone"); |
+ field.name = ASCIIToUTF16("phone"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Fax"); |
+ field.name = ASCIIToUTF16("fax"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Address"); |
+ field.name = ASCIIToUTF16("address"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("City"); |
+ field.name = ASCIIToUTF16("city"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Zip code"); |
+ field.name = ASCIIToUTF16("zipcode"); |
+ form.fields.push_back(field); |
+ |
+ field.label = string16(); |
+ field.name = ASCIIToUTF16("Submit"); |
+ field.form_control_type = ASCIIToUTF16("submit"); |
+ form.fields.push_back(field); |
+ |
form_structure.reset(new FormStructure(form)); |
form_structure->DetermineHeuristicTypes(); |
EXPECT_TRUE(form_structure->IsAutofillable(true)); |
@@ -365,78 +342,52 @@ TEST(FormStructureTest, HeuristicsContactInfo) { |
TEST(FormStructureTest, HeuristicsSample8) { |
scoped_ptr<FormStructure> form_structure; |
FormData form; |
- |
form.method = ASCIIToUTF16("post"); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Your First Name:"), |
- ASCIIToUTF16("bill.first"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Your Last Name:"), |
- ASCIIToUTF16("bill.last"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Street Address Line 1:"), |
- ASCIIToUTF16("bill.street1"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Street Address Line 2:"), |
- ASCIIToUTF16("bill.street2"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("City:"), |
- ASCIIToUTF16("bill.city"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("State (U.S.):"), |
- ASCIIToUTF16("bill.state"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Zip/Postal Code:"), |
- ASCIIToUTF16("BillTo.PostalCode"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Country:"), |
- ASCIIToUTF16("bill.country"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Phone Number:"), |
- ASCIIToUTF16("BillTo.Phone"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(string16(), |
- ASCIIToUTF16("Submit"), |
- string16(), |
- ASCIIToUTF16("submit"), |
- 0, |
- false)); |
+ |
+ FormField field; |
+ field.form_control_type = ASCIIToUTF16("text"); |
+ |
+ field.label = ASCIIToUTF16("Your First Name:"); |
+ field.name = ASCIIToUTF16("bill.first"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Your Last Name:"); |
+ field.name = ASCIIToUTF16("bill.last"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Street Address Line 1:"); |
+ field.name = ASCIIToUTF16("bill.street1"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Street Address Line 2:"); |
+ field.name = ASCIIToUTF16("bill.street2"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("City"); |
+ field.name = ASCIIToUTF16("bill.city"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("State (U.S.):"); |
+ field.name = ASCIIToUTF16("bill.state"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Zip/Postal Code:"); |
+ field.name = ASCIIToUTF16("BillTo.PostalCode"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Country:"); |
+ field.name = ASCIIToUTF16("bill.country"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Phone Number:"); |
+ field.name = ASCIIToUTF16("BillTo.Phone"); |
+ form.fields.push_back(field); |
+ |
+ field.label = string16(); |
+ field.name = ASCIIToUTF16("Submit"); |
+ field.form_control_type = ASCIIToUTF16("submit"); |
+ form.fields.push_back(field); |
+ |
form_structure.reset(new FormStructure(form)); |
form_structure->DetermineHeuristicTypes(); |
EXPECT_TRUE(form_structure->IsAutofillable(true)); |
@@ -470,59 +421,41 @@ TEST(FormStructureTest, HeuristicsSample8) { |
TEST(FormStructureTest, HeuristicsSample6) { |
scoped_ptr<FormStructure> form_structure; |
FormData form; |
- |
form.method = ASCIIToUTF16("post"); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("E-mail address"), |
- ASCIIToUTF16("email"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Full name"), |
- ASCIIToUTF16("name"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Company"), |
- ASCIIToUTF16("company"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Address"), |
- ASCIIToUTF16("address"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("City"), |
- ASCIIToUTF16("city"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- // TODO(jhawkins): Add state select control. |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Zip Code"), |
- ASCIIToUTF16("Home.PostalCode"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- // TODO(jhawkins): Phone number. |
- form.fields.push_back( |
- webkit_glue::FormField(string16(), |
- ASCIIToUTF16("Submit"), |
- ASCIIToUTF16("continue"), |
- ASCIIToUTF16("submit"), |
- 0, |
- false)); |
+ |
+ FormField field; |
+ field.form_control_type = ASCIIToUTF16("text"); |
+ |
+ field.label = ASCIIToUTF16("E-mail address"); |
+ field.name = ASCIIToUTF16("email"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Full name"); |
+ field.name = ASCIIToUTF16("name"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Company"); |
+ field.name = ASCIIToUTF16("company"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Address"); |
+ field.name = ASCIIToUTF16("address"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("City"); |
+ field.name = ASCIIToUTF16("city"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Zip Code"); |
+ field.name = ASCIIToUTF16("Home.PostalCode"); |
+ form.fields.push_back(field); |
+ |
+ field.label = string16(); |
+ field.name = ASCIIToUTF16("Submit"); |
+ field.value = ASCIIToUTF16("continue"); |
+ field.form_control_type = ASCIIToUTF16("submit"); |
+ form.fields.push_back(field); |
+ |
form_structure.reset(new FormStructure(form)); |
form_structure->DetermineHeuristicTypes(); |
EXPECT_TRUE(form_structure->IsAutofillable(true)); |
@@ -551,62 +484,48 @@ TEST(FormStructureTest, HeuristicsSample6) { |
TEST(FormStructureTest, HeuristicsLabelsOnly) { |
scoped_ptr<FormStructure> form_structure; |
FormData form; |
- |
form.method = ASCIIToUTF16("post"); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("First Name"), |
- string16(), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Last Name"), |
- string16(), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("EMail"), |
- string16(), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Phone"), |
- string16(), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Fax"), |
- string16(), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Address"), |
- string16(), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Address"), |
- string16(), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Zip code"), |
- string16(), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(string16(), |
- ASCIIToUTF16("Submit"), |
- string16(), |
- ASCIIToUTF16("submit"), |
- 0, |
- false)); |
+ |
+ FormField field; |
+ field.form_control_type = ASCIIToUTF16("text"); |
+ |
+ field.label = ASCIIToUTF16("First Name"); |
+ field.name = string16(); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Last Name"); |
+ field.name = string16(); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Email"); |
+ field.name = string16(); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Phone"); |
+ field.name = string16(); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Fax"); |
+ field.name = string16(); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Address"); |
+ field.name = string16(); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Address"); |
+ field.name = string16(); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Zip code"); |
+ field.name = string16(); |
+ form.fields.push_back(field); |
+ |
+ field.label = string16(); |
+ field.name = ASCIIToUTF16("Submit"); |
+ field.form_control_type = ASCIIToUTF16("submit"); |
+ form.fields.push_back(field); |
+ |
form_structure.reset(new FormStructure(form)); |
form_structure->DetermineHeuristicTypes(); |
EXPECT_TRUE(form_structure->IsAutofillable(true)); |
@@ -637,44 +556,36 @@ TEST(FormStructureTest, HeuristicsLabelsOnly) { |
TEST(FormStructureTest, HeuristicsCreditCardInfo) { |
scoped_ptr<FormStructure> form_structure; |
FormData form; |
- |
form.method = ASCIIToUTF16("post"); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Name on Card"), |
- ASCIIToUTF16("name on card"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Card Number"), |
- ASCIIToUTF16("card_number"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Exp Month"), |
- ASCIIToUTF16("ccmonth"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Exp Year"), |
- ASCIIToUTF16("ccyear"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Verification"), |
- ASCIIToUTF16("verification"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(string16(), |
- ASCIIToUTF16("Submit"), |
- string16(), |
- ASCIIToUTF16("submit"), |
- 0, |
- false)); |
+ |
+ FormField field; |
+ field.form_control_type = ASCIIToUTF16("text"); |
+ |
+ field.label = ASCIIToUTF16("Name on Card"); |
+ field.name = ASCIIToUTF16("name_on_card"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Card Number"); |
+ field.name = ASCIIToUTF16("card_number"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Exp Month"); |
+ field.name = ASCIIToUTF16("ccmonth"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Exp Year"); |
+ field.name = ASCIIToUTF16("ccyear"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Verification"); |
+ field.name = ASCIIToUTF16("verification"); |
+ form.fields.push_back(field); |
+ |
+ field.label = string16(); |
+ field.name = ASCIIToUTF16("Submit"); |
+ field.form_control_type = ASCIIToUTF16("submit"); |
+ form.fields.push_back(field); |
+ |
form_structure.reset(new FormStructure(form)); |
form_structure->DetermineHeuristicTypes(); |
EXPECT_TRUE(form_structure->IsAutofillable(true)); |
@@ -699,52 +610,42 @@ TEST(FormStructureTest, HeuristicsCreditCardInfo) { |
TEST(FormStructureTest, HeuristicsCreditCardInfoWithUnknownCardField) { |
scoped_ptr<FormStructure> form_structure; |
FormData form; |
- |
form.method = ASCIIToUTF16("post"); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Name on Card"), |
- ASCIIToUTF16("name on card"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
+ |
+ FormField field; |
+ field.form_control_type = ASCIIToUTF16("text"); |
+ |
+ field.label = ASCIIToUTF16("Name on Card"); |
+ field.name = ASCIIToUTF16("name_on_card"); |
+ form.fields.push_back(field); |
+ |
// This is not a field we know how to process. But we should skip over it |
// and process the other fields in the card block. |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Card Type"), |
- ASCIIToUTF16("card_type"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Card Number"), |
- ASCIIToUTF16("card_number"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Exp Month"), |
- ASCIIToUTF16("ccmonth"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Exp Year"), |
- ASCIIToUTF16("ccyear"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Verification"), |
- ASCIIToUTF16("verification"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(string16(), |
- ASCIIToUTF16("Submit"), |
- string16(), |
- ASCIIToUTF16("submit"), |
- 0, |
- false)); |
+ field.label = ASCIIToUTF16("Card Type"); |
+ field.name = ASCIIToUTF16("card_type"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Card Number"); |
+ field.name = ASCIIToUTF16("card_number"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Exp Month"); |
+ field.name = ASCIIToUTF16("ccmonth"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Exp Year"); |
+ field.name = ASCIIToUTF16("ccyear"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Verification"); |
+ field.name = ASCIIToUTF16("verification"); |
+ form.fields.push_back(field); |
+ |
+ field.label = string16(); |
+ field.name = ASCIIToUTF16("Submit"); |
+ field.form_control_type = ASCIIToUTF16("submit"); |
+ form.fields.push_back(field); |
+ |
form_structure.reset(new FormStructure(form)); |
form_structure->DetermineHeuristicTypes(); |
EXPECT_TRUE(form_structure->IsAutofillable(true)); |
@@ -771,36 +672,27 @@ TEST(FormStructureTest, HeuristicsCreditCardInfoWithUnknownCardField) { |
TEST(FormStructureTest, ThreeAddressLines) { |
scoped_ptr<FormStructure> form_structure; |
FormData form; |
- |
form.method = ASCIIToUTF16("post"); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Address Line1"), |
- ASCIIToUTF16("Address"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Address Line2"), |
- ASCIIToUTF16("Address"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Address Line3"), |
- ASCIIToUTF16("Address"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("City"), |
- ASCIIToUTF16("city"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
+ |
+ FormField field; |
+ field.form_control_type = ASCIIToUTF16("text"); |
+ |
+ field.label = ASCIIToUTF16("Address Line1"); |
+ field.name = ASCIIToUTF16("Address"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Address Line2"); |
+ field.name = ASCIIToUTF16("Address"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Address Line3"); |
+ field.name = ASCIIToUTF16("Address"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("City"); |
+ field.name = ASCIIToUTF16("city"); |
+ form.fields.push_back(field); |
+ |
form_structure.reset(new FormStructure(form)); |
form_structure->DetermineHeuristicTypes(); |
EXPECT_TRUE(form_structure->IsAutofillable(true)); |
@@ -822,36 +714,27 @@ TEST(FormStructureTest, ThreeAddressLines) { |
TEST(FormStructureTest, BillingAndShippingAddresses) { |
scoped_ptr<FormStructure> form_structure; |
FormData form; |
- |
form.method = ASCIIToUTF16("post"); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Address Line1"), |
- ASCIIToUTF16("shipping.address.addressLine1"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Address Line2"), |
- ASCIIToUTF16("shipping.address.addressLine2"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Address Line1"), |
- ASCIIToUTF16("billing.address.addressLine1"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Address Line2"), |
- ASCIIToUTF16("billing.address.addressLine2"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
+ |
+ FormField field; |
+ field.form_control_type = ASCIIToUTF16("text"); |
+ |
+ field.label = ASCIIToUTF16("Address Line1"); |
+ field.name = ASCIIToUTF16("shipping.address.addressLine1"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Address Line2"); |
+ field.name = ASCIIToUTF16("shipping.address.addressLine2"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Address Line1"); |
+ field.name = ASCIIToUTF16("billing.address.addressLine1"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Address Line2"); |
+ field.name = ASCIIToUTF16("billing.address.addressLine2"); |
+ form.fields.push_back(field); |
+ |
form_structure.reset(new FormStructure(form)); |
form_structure->DetermineHeuristicTypes(); |
EXPECT_TRUE(form_structure->IsAutofillable(true)); |
@@ -877,36 +760,27 @@ TEST(FormStructureTest, BillingAndShippingAddresses) { |
TEST(FormStructureTest, ThreeAddressLinesExpedia) { |
scoped_ptr<FormStructure> form_structure; |
FormData form; |
- |
form.method = ASCIIToUTF16("post"); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Street:"), |
- ASCIIToUTF16("FOPIH_RgWebCC_0_IHAddress_ads1"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Suite or Apt:"), |
- ASCIIToUTF16("FOPIH_RgWebCC_0_IHAddress_adap"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Street address second line"), |
- ASCIIToUTF16("FOPIH_RgWebCC_0_IHAddress_ads2"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("City:"), |
- ASCIIToUTF16("FOPIH_RgWebCC_0_IHAddress_adct"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
+ |
+ FormField field; |
+ field.form_control_type = ASCIIToUTF16("text"); |
+ |
+ field.label = ASCIIToUTF16("Street:"); |
+ field.name = ASCIIToUTF16("FOPIH_RgWebCC_0_IHAddress_ads1"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Suite or Apt:"); |
+ field.name = ASCIIToUTF16("FOPIH_RgWebCC_0_IHAddress_adap"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Street address second line"); |
+ field.name = ASCIIToUTF16("FOPIH_RgWebCC_0_IHAddress_ads2"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("City:"); |
+ field.name = ASCIIToUTF16("FOPIH_RgWebCC_0_IHAddress_adct"); |
+ form.fields.push_back(field); |
+ |
form_structure.reset(new FormStructure(form)); |
form_structure->DetermineHeuristicTypes(); |
EXPECT_TRUE(form_structure->IsAutofillable(true)); |
@@ -929,29 +803,23 @@ TEST(FormStructureTest, ThreeAddressLinesExpedia) { |
TEST(FormStructureTest, TwoAddressLinesEbay) { |
scoped_ptr<FormStructure> form_structure; |
FormData form; |
- |
form.method = ASCIIToUTF16("post"); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Address Line1"), |
- ASCIIToUTF16("address1"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Floor number, suite number, etc"), |
- ASCIIToUTF16("address2"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("City"), |
- ASCIIToUTF16("city"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
+ |
+ FormField field; |
+ field.form_control_type = ASCIIToUTF16("text"); |
+ |
+ field.label = ASCIIToUTF16("Address Line1"); |
+ field.name = ASCIIToUTF16("address1"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Floor number, suite number, etc"); |
+ field.name = ASCIIToUTF16("address2"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("City:"); |
+ field.name = ASCIIToUTF16("city"); |
+ form.fields.push_back(field); |
+ |
form_structure.reset(new FormStructure(form)); |
form_structure->DetermineHeuristicTypes(); |
EXPECT_TRUE(form_structure->IsAutofillable(true)); |
@@ -969,29 +837,23 @@ TEST(FormStructureTest, TwoAddressLinesEbay) { |
TEST(FormStructureTest, HeuristicsStateWithProvince) { |
scoped_ptr<FormStructure> form_structure; |
FormData form; |
- |
form.method = ASCIIToUTF16("post"); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Address Line1"), |
- ASCIIToUTF16("Address"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Address Line2"), |
- ASCIIToUTF16("Address"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("State/Province/Region"), |
- ASCIIToUTF16("State"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
+ |
+ FormField field; |
+ field.form_control_type = ASCIIToUTF16("text"); |
+ |
+ field.label = ASCIIToUTF16("Address Line1"); |
+ field.name = ASCIIToUTF16("Address"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Address Line2"); |
+ field.name = ASCIIToUTF16("Address"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("State/Province/Region"); |
+ field.name = ASCIIToUTF16("State"); |
+ form.fields.push_back(field); |
+ |
form_structure.reset(new FormStructure(form)); |
form_structure->DetermineHeuristicTypes(); |
EXPECT_TRUE(form_structure->IsAutofillable(true)); |
@@ -1010,85 +872,55 @@ TEST(FormStructureTest, HeuristicsStateWithProvince) { |
TEST(FormStructureTest, HeuristicsWithBilling) { |
scoped_ptr<FormStructure> form_structure; |
FormData form; |
- |
form.method = ASCIIToUTF16("post"); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("First Name*:"), |
- ASCIIToUTF16("editBillingAddress$firstNameBox"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Last Name*:"), |
- ASCIIToUTF16("editBillingAddress$lastNameBox"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Company Name:"), |
- ASCIIToUTF16("editBillingAddress$companyBox"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Address*:"), |
- ASCIIToUTF16("editBillingAddress$addressLine1Box"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Apt/Suite :"), |
- ASCIIToUTF16("editBillingAddress$addressLine2Box"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("City*:"), |
- ASCIIToUTF16("editBillingAddress$cityBox"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("State/Province*:"), |
- ASCIIToUTF16("editBillingAddress$stateDropDown"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Country*:"), |
- ASCIIToUTF16("editBillingAddress$countryDropDown"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Postal Code*:"), |
- ASCIIToUTF16("editBillingAddress$zipCodeBox"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Phone*:"), |
- ASCIIToUTF16("editBillingAddress$phoneBox"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Email Address*:"), |
- ASCIIToUTF16("email$emailBox"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
+ |
+ FormField field; |
+ field.form_control_type = ASCIIToUTF16("text"); |
+ |
+ field.label = ASCIIToUTF16("First Name*:"); |
+ field.name = ASCIIToUTF16("editBillingAddress$firstNameBox"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Last Name*:"); |
+ field.name = ASCIIToUTF16("editBillingAddress$lastNameBox"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Company Name:"); |
+ field.name = ASCIIToUTF16("editBillingAddress$companyBox"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Address*:"); |
+ field.name = ASCIIToUTF16("editBillingAddress$addressLine1Box"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Apt/Suite :"); |
+ field.name = ASCIIToUTF16("editBillingAddress$addressLine2Box"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("City*:"); |
+ field.name = ASCIIToUTF16("editBillingAddress$cityBox"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("State/Province*:"); |
+ field.name = ASCIIToUTF16("editBillingAddress$stateDropDown"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Country*:"); |
+ field.name = ASCIIToUTF16("editBillingAddress$countryDropDown"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Postal Code*:"); |
+ field.name = ASCIIToUTF16("editBillingAddress$zipCodeBox"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Phone*:"); |
+ field.name = ASCIIToUTF16("editBillingAddress$phoneBox"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Email Address*:"); |
+ field.name = ASCIIToUTF16("email$emailBox"); |
+ form.fields.push_back(field); |
+ |
form_structure.reset(new FormStructure(form)); |
form_structure->DetermineHeuristicTypes(); |
EXPECT_TRUE(form_structure->IsAutofillable(true)); |
@@ -1113,38 +945,33 @@ TEST(FormStructureTest, HeuristicsWithBilling) { |
TEST(FormStructureTest, ThreePartPhoneNumber) { |
scoped_ptr<FormStructure> form_structure; |
FormData form; |
- |
form.method = ASCIIToUTF16("post"); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Phone:"), |
- ASCIIToUTF16("dayphone1"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("-"), |
- ASCIIToUTF16("dayphone2"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 3, // Size of prefix is 3. |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("-"), |
- ASCIIToUTF16("dayphone3"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 4, // Size of suffix is 4. If unlimited size is |
- // passed, phone will be parsed as |
- // <country code> - <area code> - <phone>. |
- false)); |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("ext.:"), |
- ASCIIToUTF16("dayphone4"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
+ |
+ FormField field; |
+ field.form_control_type = ASCIIToUTF16("text"); |
+ |
+ field.label = ASCIIToUTF16("Phone:"); |
+ field.name = ASCIIToUTF16("dayphone1"); |
+ field.max_length = 0; |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("-"); |
+ field.name = ASCIIToUTF16("dayphone2"); |
+ field.max_length = 3; // Size of prefix is 3. |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("-"); |
+ field.name = ASCIIToUTF16("dayphone3"); |
+ field.max_length = 4; // Size of suffix is 4. If unlimited size is |
+ // passed, phone will be parsed as |
+ // <country code> - <area code> - <phone>. |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("ext.:"); |
+ field.name = ASCIIToUTF16("dayphone4"); |
+ field.max_length = 0; |
+ form.fields.push_back(field); |
+ |
form_structure.reset(new FormStructure(form)); |
form_structure->DetermineHeuristicTypes(); |
EXPECT_TRUE(form_structure->IsAutofillable(true)); |
@@ -1167,36 +994,30 @@ TEST(FormStructureTest, HeuristicsInfernoCC) { |
scoped_ptr<FormStructure> form_structure; |
FormData form; |
form.method = ASCIIToUTF16("post"); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Name on Card"), |
- ASCIIToUTF16("name_on_card"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Address"), |
- ASCIIToUTF16("billing_address"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Card Number"), |
- ASCIIToUTF16("card_number"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Expiration Date"), |
- ASCIIToUTF16("expiration_month"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Expiration Year"), |
- ASCIIToUTF16("expiration_year"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
+ |
+ FormField field; |
+ field.form_control_type = ASCIIToUTF16("text"); |
+ |
+ field.label = ASCIIToUTF16("Name on Card"); |
+ field.name = ASCIIToUTF16("name_on_card"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Address"); |
+ field.name = ASCIIToUTF16("billing_address"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Card Number"); |
+ field.name = ASCIIToUTF16("card_number"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Expiration Date"); |
+ field.name = ASCIIToUTF16("expiration_month"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Expiration Year"); |
+ field.name = ASCIIToUTF16("expiration_year"); |
+ form.fields.push_back(field); |
+ |
form_structure.reset(new FormStructure(form)); |
form_structure->DetermineHeuristicTypes(); |
EXPECT_TRUE(form_structure->IsAutofillable(true)); |
@@ -1222,42 +1043,34 @@ TEST(FormStructureTest, CVCCodeClash) { |
scoped_ptr<FormStructure> form_structure; |
FormData form; |
form.method = ASCIIToUTF16("post"); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Card number"), |
- ASCIIToUTF16("ccnumber"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("First name"), |
- ASCIIToUTF16("first_name"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Last name"), |
- ASCIIToUTF16("last_name"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Expiration date"), |
- ASCIIToUTF16("ccexpiresmonth"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16(""), |
- ASCIIToUTF16("ccexpiresyear"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("cvc number"), |
- ASCIIToUTF16("csc"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
+ |
+ FormField field; |
+ field.form_control_type = ASCIIToUTF16("text"); |
+ |
+ field.label = ASCIIToUTF16("Card number"); |
+ field.name = ASCIIToUTF16("ccnumber"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("First name"); |
+ field.name = ASCIIToUTF16("first_name"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Last name"); |
+ field.name = ASCIIToUTF16("last_name"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Expiration date"); |
+ field.name = ASCIIToUTF16("ccexpiresmonth"); |
+ form.fields.push_back(field); |
+ |
+ field.label = string16(); |
+ field.name = ASCIIToUTF16("ccexpiresyear"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("cvc number"); |
+ field.name = ASCIIToUTF16("csc"); |
+ form.fields.push_back(field); |
+ |
form_structure.reset(new FormStructure(form)); |
form_structure->DetermineHeuristicTypes(); |
EXPECT_TRUE(form_structure->IsAutofillable(true)); |
@@ -1284,36 +1097,30 @@ TEST(FormStructureTest, CVCCodeClash) { |
TEST(FormStructureTest, EncodeQueryRequest) { |
FormData form; |
form.method = ASCIIToUTF16("post"); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Name on Card"), |
- ASCIIToUTF16("name_on_card"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Address"), |
- ASCIIToUTF16("billing_address"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Card Number"), |
- ASCIIToUTF16("card_number"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Expiration Date"), |
- ASCIIToUTF16("expiration_month"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Expiration Year"), |
- ASCIIToUTF16("expiration_year"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
+ |
+ FormField field; |
+ field.form_control_type = ASCIIToUTF16("text"); |
+ |
+ field.label = ASCIIToUTF16("Name on Card"); |
+ field.name = ASCIIToUTF16("name_on_card"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Address"); |
+ field.name = ASCIIToUTF16("billing_address"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Card Number"); |
+ field.name = ASCIIToUTF16("card_number"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Expiration Date"); |
+ field.name = ASCIIToUTF16("expiration_month"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Expiration Year"); |
+ field.name = ASCIIToUTF16("expiration_year"); |
+ form.fields.push_back(field); |
+ |
ScopedVector<FormStructure> forms; |
forms.push_back(new FormStructure(form)); |
std::vector<std::string> encoded_signatures; |
@@ -1342,13 +1149,9 @@ TEST(FormStructureTest, EncodeQueryRequest) { |
EXPECT_EQ(kResponse1, encoded_xml); |
// Add 5 address fields - this should be still a valid form. |
for (size_t i = 0; i < 5; ++i) { |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Address"), |
- ASCIIToUTF16("address"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
+ field.label = ASCIIToUTF16("Address"); |
+ field.name = ASCIIToUTF16("address"); |
+ form.fields.push_back(field); |
} |
forms.push_back(new FormStructure(form)); |
@@ -1375,13 +1178,9 @@ TEST(FormStructureTest, EncodeQueryRequest) { |
// Add 50 address fields - the form is not valid anymore, but previous ones |
// are. The result should be the same as in previous test. |
for (size_t i = 0; i < 50; ++i) { |
- form.fields.push_back( |
- webkit_glue::FormField(ASCIIToUTF16("Address"), |
- ASCIIToUTF16("address"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
+ field.label = ASCIIToUTF16("Address"); |
+ field.name = ASCIIToUTF16("address"); |
+ form.fields.push_back(field); |
} |
forms.push_back(new FormStructure(form)); |
@@ -1408,52 +1207,47 @@ TEST(FormStructureTest, EncodeUploadRequest) { |
form.method = ASCIIToUTF16("post"); |
form_structure.reset(new FormStructure(form)); |
form_structure->DetermineHeuristicTypes(); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("First Name"), |
- ASCIIToUTF16("firstname"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
+ |
+ FormField field; |
+ field.form_control_type = ASCIIToUTF16("text"); |
+ |
+ field.label = ASCIIToUTF16("First Name"); |
+ field.name = ASCIIToUTF16("firstname"); |
+ form.fields.push_back(field); |
possible_field_types.push_back(FieldTypeSet()); |
possible_field_types.back().insert(NAME_FIRST); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Last Name"), |
- ASCIIToUTF16("lastname"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
+ |
+ field.label = ASCIIToUTF16("Last Name"); |
+ field.name = ASCIIToUTF16("lastname"); |
+ form.fields.push_back(field); |
possible_field_types.push_back(FieldTypeSet()); |
possible_field_types.back().insert(NAME_LAST); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("EMail"), |
- ASCIIToUTF16("email"), |
- string16(), |
- ASCIIToUTF16("email"), |
- 0, |
- false)); |
+ |
+ field.label = ASCIIToUTF16("Email"); |
+ field.name = ASCIIToUTF16("email"); |
+ field.form_control_type = ASCIIToUTF16("email"); |
+ form.fields.push_back(field); |
possible_field_types.push_back(FieldTypeSet()); |
possible_field_types.back().insert(EMAIL_ADDRESS); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Phone"), |
- ASCIIToUTF16("phone"), |
- string16(), |
- ASCIIToUTF16("number"), |
- 0, |
- false)); |
+ |
+ field.label = ASCIIToUTF16("Phone"); |
+ field.name = ASCIIToUTF16("phone"); |
+ field.form_control_type = ASCIIToUTF16("number"); |
+ form.fields.push_back(field); |
possible_field_types.push_back(FieldTypeSet()); |
possible_field_types.back().insert(PHONE_HOME_WHOLE_NUMBER); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Country"), |
- ASCIIToUTF16("country"), |
- string16(), |
- ASCIIToUTF16("select-one"), |
- 0, |
- false)); |
+ |
+ field.label = ASCIIToUTF16("Country"); |
+ field.name = ASCIIToUTF16("country"); |
+ field.form_control_type = ASCIIToUTF16("select-one"); |
+ form.fields.push_back(field); |
possible_field_types.push_back(FieldTypeSet()); |
possible_field_types.back().insert(ADDRESS_HOME_COUNTRY); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Fax"), |
- ASCIIToUTF16("fax"), |
- string16(), |
- ASCIIToUTF16("tel"), |
- 0, |
- false)); |
+ |
+ field.label = ASCIIToUTF16("Fax"); |
+ field.name = ASCIIToUTF16("fax"); |
+ field.form_control_type = ASCIIToUTF16("tel"); |
+ form.fields.push_back(field); |
possible_field_types.push_back(FieldTypeSet()); |
possible_field_types.back().insert(PHONE_FAX_WHOLE_NUMBER); |
form_structure.reset(new FormStructure(form)); |
@@ -1506,12 +1300,10 @@ TEST(FormStructureTest, EncodeUploadRequest) { |
// Add 2 address fields - this should be still a valid form. |
for (size_t i = 0; i < 2; ++i) { |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Address"), |
- ASCIIToUTF16("address"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
+ field.label = ASCIIToUTF16("Address"); |
+ field.name = ASCIIToUTF16("address"); |
+ field.form_control_type = ASCIIToUTF16("text"); |
+ form.fields.push_back(field); |
possible_field_types.push_back(FieldTypeSet()); |
possible_field_types.back().insert(ADDRESS_HOME_LINE1); |
possible_field_types.back().insert(ADDRESS_HOME_LINE2); |
@@ -1549,12 +1341,10 @@ TEST(FormStructureTest, EncodeUploadRequest) { |
// Add 50 address fields - now the form is invalid, as it has too many fields. |
for (size_t i = 0; i < 50; ++i) { |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Address"), |
- ASCIIToUTF16("address"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
+ field.label = ASCIIToUTF16("Address"); |
+ field.name = ASCIIToUTF16("address"); |
+ field.form_control_type = ASCIIToUTF16("text"); |
+ form.fields.push_back(field); |
possible_field_types.push_back(FieldTypeSet()); |
possible_field_types.back().insert(ADDRESS_HOME_LINE1); |
possible_field_types.back().insert(ADDRESS_HOME_LINE2); |
@@ -1574,24 +1364,21 @@ TEST(FormStructureTest, EncodeUploadRequest) { |
TEST(FormStructureTest, CheckDataPresence) { |
FormData form; |
form.method = ASCIIToUTF16("post"); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("First Name"), |
- ASCIIToUTF16("first"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Last Name"), |
- ASCIIToUTF16("last"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("email"), |
- ASCIIToUTF16("email"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
+ |
+ FormField field; |
+ field.form_control_type = ASCIIToUTF16("text"); |
+ |
+ field.label = ASCIIToUTF16("First Name"); |
+ field.name = ASCIIToUTF16("first"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Last Name"); |
+ field.name = ASCIIToUTF16("last"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("Email"); |
+ field.name = ASCIIToUTF16("email"); |
+ form.fields.push_back(field); |
FormStructure form_structure(form); |
@@ -1851,38 +1638,34 @@ TEST(FormStructureTest, CheckMultipleTypes) { |
std::vector<FieldTypeSet> possible_field_types; |
FormData form; |
form.method = ASCIIToUTF16("post"); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("email"), |
- ASCIIToUTF16("email"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
+ |
+ FormField field; |
+ field.form_control_type = ASCIIToUTF16("text"); |
+ |
+ field.label = ASCIIToUTF16("email"); |
+ field.name = ASCIIToUTF16("email"); |
+ form.fields.push_back(field); |
possible_field_types.push_back(FieldTypeSet()); |
possible_field_types.back().insert(EMAIL_ADDRESS); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("First Name"), |
- ASCIIToUTF16("first"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
+ |
+ field.label = ASCIIToUTF16("First Name"); |
+ field.name = ASCIIToUTF16("first"); |
+ form.fields.push_back(field); |
possible_field_types.push_back(FieldTypeSet()); |
possible_field_types.back().insert(NAME_FIRST); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Last Name"), |
- ASCIIToUTF16("last"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
+ |
+ field.label = ASCIIToUTF16("Last Name"); |
+ field.name = ASCIIToUTF16("last"); |
+ form.fields.push_back(field); |
possible_field_types.push_back(FieldTypeSet()); |
possible_field_types.back().insert(NAME_LAST); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Address"), |
- ASCIIToUTF16("address"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
+ |
+ field.label = ASCIIToUTF16("Address"); |
+ field.name = ASCIIToUTF16("address"); |
+ form.fields.push_back(field); |
possible_field_types.push_back(FieldTypeSet()); |
possible_field_types.back().insert(ADDRESS_HOME_LINE1); |
+ |
form_structure.reset(new FormStructure(form)); |
for (size_t i = 0; i < form_structure->field_count(); ++i) |
@@ -1963,18 +1746,18 @@ TEST(FormStructureTest, CheckFormSignature) { |
scoped_ptr<FormStructure> form_structure; |
FormData form; |
form.method = ASCIIToUTF16("post"); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("email"), |
- ASCIIToUTF16("email"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("First Name"), |
- ASCIIToUTF16("first"), |
- string16(), |
- ASCIIToUTF16("text"), |
- 0, |
- false)); |
+ |
+ FormField field; |
+ field.form_control_type = ASCIIToUTF16("text"); |
+ |
+ field.label = ASCIIToUTF16("email"); |
+ field.name = ASCIIToUTF16("email"); |
+ form.fields.push_back(field); |
+ |
+ field.label = ASCIIToUTF16("First Name"); |
+ field.name = ASCIIToUTF16("first"); |
+ form.fields.push_back(field); |
+ |
form_structure.reset(new FormStructure(form)); |
EXPECT_EQ(FormStructureTest::Hash64Bit( |