summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorisherman@chromium.org <isherman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-09 01:33:46 +0000
committerisherman@chromium.org <isherman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-09 01:33:46 +0000
commiteb4b8b4779e5209e47f1002177786c2a51bf44b8 (patch)
treeb27812fd5d41ff8ce205753b34204e806972b2b4
parent0e7f8d0b2aaf1eea1671c1ea4a1352b827566f94 (diff)
downloadchromium_src-eb4b8b4779e5209e47f1002177786c2a51bf44b8.zip
chromium_src-eb4b8b4779e5209e47f1002177786c2a51bf44b8.tar.gz
chromium_src-eb4b8b4779e5209e47f1002177786c2a51bf44b8.tar.bz2
Refactor webkit_glue::FormField to remove hacky methods: Remove webkit_glue::FormField's unwieldy full constructor and StricktlyEqualsHack() method. The only clients are in test code, and we can better support these clients in other ways.
BUG=none TEST=none Review URL: http://codereview.chromium.org/7576001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@95928 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/autocomplete_history_manager_unittest.cc46
-rw-r--r--chrome/browser/autofill/address_field_unittest.cc244
-rw-r--r--chrome/browser/autofill/autofill_common_test.cc7
-rw-r--r--chrome/browser/autofill/autofill_download_unittest.cc191
-rw-r--r--chrome/browser/autofill/autofill_manager_unittest.cc98
-rw-r--r--chrome/browser/autofill/autofill_merge_unittest.cc11
-rw-r--r--chrome/browser/autofill/autofill_metrics_unittest.cc11
-rw-r--r--chrome/browser/autofill/credit_card_field_unittest.cc319
-rw-r--r--chrome/browser/autofill/form_structure_unittest.cc1541
-rw-r--r--chrome/browser/autofill/name_field_unittest.cc342
-rw-r--r--chrome/browser/autofill/phone_field_unittest.cc322
-rw-r--r--chrome/browser/webdata/autofill_table_unittest.cc344
-rw-r--r--chrome/browser/webdata/web_data_service_unittest.cc11
-rw-r--r--chrome/chrome_tests.gypi2
-rw-r--r--chrome/renderer/autofill/autofill_browsertest.cc80
-rw-r--r--chrome/renderer/autofill/form_manager_browsertest.cc1459
-rw-r--r--chrome/renderer/autofill/password_autofill_manager_browsertest.cc (renamed from chrome/renderer/autofill/password_autofill_manager_unittest.cc)16
-rw-r--r--chrome/test/live_sync/autofill_helper.cc10
-rw-r--r--webkit/glue/form_field.cc26
-rw-r--r--webkit/glue/form_field.h26
-rw-r--r--webkit/glue/password_form_dom_manager.cc34
21 files changed, 2180 insertions, 2960 deletions
diff --git a/chrome/browser/autocomplete_history_manager_unittest.cc b/chrome/browser/autocomplete_history_manager_unittest.cc
index cf5dae0..5535b44 100644
--- a/chrome/browser/autocomplete_history_manager_unittest.cc
+++ b/chrome/browser/autocomplete_history_manager_unittest.cc
@@ -58,12 +58,11 @@ TEST_F(AutocompleteHistoryManagerTest, CreditCardNumberValue) {
form.user_submitted = true;
// Valid Visa credit card number pulled from the paypal help site.
- webkit_glue::FormField valid_cc(ASCIIToUTF16("Credit Card"),
- ASCIIToUTF16("ccnum"),
- ASCIIToUTF16("4012888888881881"),
- ASCIIToUTF16("text"),
- 20,
- false);
+ webkit_glue::FormField valid_cc;
+ valid_cc.label = ASCIIToUTF16("Credit Card");
+ valid_cc.name = ASCIIToUTF16("ccnum");
+ valid_cc.value = ASCIIToUTF16("4012888888881881");
+ valid_cc.form_control_type = ASCIIToUTF16("text");
form.fields.push_back(valid_cc);
EXPECT_CALL(*web_data_service_, AddFormFields(_)).Times(0);
@@ -82,12 +81,11 @@ TEST_F(AutocompleteHistoryManagerTest, NonCreditCardNumberValue) {
form.user_submitted = true;
// Invalid credit card number.
- webkit_glue::FormField invalid_cc(ASCIIToUTF16("Credit Card"),
- ASCIIToUTF16("ccnum"),
- ASCIIToUTF16("4580123456789012"),
- ASCIIToUTF16("text"),
- 20,
- false);
+ webkit_glue::FormField invalid_cc;
+ invalid_cc.label = ASCIIToUTF16("Credit Card");
+ invalid_cc.name = ASCIIToUTF16("ccnum");
+ invalid_cc.value = ASCIIToUTF16("4580123456789012");
+ invalid_cc.form_control_type = ASCIIToUTF16("text");
form.fields.push_back(invalid_cc);
EXPECT_CALL(*(web_data_service_.get()), AddFormFields(_)).Times(1);
@@ -103,12 +101,11 @@ TEST_F(AutocompleteHistoryManagerTest, SSNValue) {
form.action = GURL("http://myform.com/submit.html");
form.user_submitted = true;
- webkit_glue::FormField ssn(ASCIIToUTF16("Social Security Number"),
- ASCIIToUTF16("ssn"),
- ASCIIToUTF16("078-05-1120"),
- ASCIIToUTF16("text"),
- 20,
- false);
+ webkit_glue::FormField ssn;
+ ssn.label = ASCIIToUTF16("Social Security Number");
+ ssn.name = ASCIIToUTF16("ssn");
+ ssn.value = ASCIIToUTF16("078-05-1120");
+ ssn.form_control_type = ASCIIToUTF16("text");
form.fields.push_back(ssn);
EXPECT_CALL(*web_data_service_, AddFormFields(_)).Times(0);
@@ -124,13 +121,12 @@ TEST_F(AutocompleteHistoryManagerTest, SearchField) {
form.action = GURL("http://myform.com/submit.html");
form.user_submitted = true;
- // Invalid credit card number.
- webkit_glue::FormField search_field(ASCIIToUTF16("Search"),
- ASCIIToUTF16("search"),
- ASCIIToUTF16("my favorite query"),
- ASCIIToUTF16("search"),
- 20,
- false);
+ // Search field.
+ webkit_glue::FormField search_field;
+ search_field.label = ASCIIToUTF16("Search");
+ search_field.name = ASCIIToUTF16("search");
+ search_field.value = ASCIIToUTF16("my favorite query");
+ search_field.form_control_type = ASCIIToUTF16("search");
form.fields.push_back(search_field);
EXPECT_CALL(*(web_data_service_.get()), AddFormFields(_)).Times(1);
diff --git a/chrome/browser/autofill/address_field_unittest.cc b/chrome/browser/autofill/address_field_unittest.cc
index ab82df9..89e0ccb 100644
--- a/chrome/browser/autofill/address_field_unittest.cc
+++ b/chrome/browser/autofill/address_field_unittest.cc
@@ -43,14 +43,13 @@ TEST_F(AddressFieldTest, NonParse) {
}
TEST_F(AddressFieldTest, ParseOneLineAddress) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Address"),
- ASCIIToUTF16("address"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("addr1")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("Address");
+ field.name = ASCIIToUTF16("address");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("addr1")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
@@ -62,14 +61,13 @@ TEST_F(AddressFieldTest, ParseOneLineAddress) {
}
TEST_F(AddressFieldTest, ParseOneLineAddressBilling) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Address"),
- ASCIIToUTF16("billingAddress"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("addr1")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("Address");
+ field.name = ASCIIToUTF16("billingAddress");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("addr1")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
@@ -81,14 +79,13 @@ TEST_F(AddressFieldTest, ParseOneLineAddressBilling) {
}
TEST_F(AddressFieldTest, ParseOneLineAddressShipping) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Address"),
- ASCIIToUTF16("shippingAddress"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("addr1")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("Address");
+ field.name = ASCIIToUTF16("shippingAddress");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("addr1")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
@@ -100,22 +97,17 @@ TEST_F(AddressFieldTest, ParseOneLineAddressShipping) {
}
TEST_F(AddressFieldTest, ParseTwoLineAddress) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Address"),
- ASCIIToUTF16("address"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("addr1")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(string16(),
- string16(),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("addr2")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("Address");
+ field.name = ASCIIToUTF16("address");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("addr1")));
+
+ field.label = string16();
+ field.name = string16();
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("addr2")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
@@ -130,30 +122,21 @@ TEST_F(AddressFieldTest, ParseTwoLineAddress) {
}
TEST_F(AddressFieldTest, ParseThreeLineAddress) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Address Line1"),
- ASCIIToUTF16("Address"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("addr1")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Address Line2"),
- ASCIIToUTF16("Address"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("addr2")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Address Line3"),
- ASCIIToUTF16("Address"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("addr3")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("Address Line1");
+ field.name = ASCIIToUTF16("Address1");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("addr1")));
+
+ field.label = ASCIIToUTF16("Address Line2");
+ field.name = ASCIIToUTF16("Address2");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("addr2")));
+
+ field.label = ASCIIToUTF16("Address Line3");
+ field.name = ASCIIToUTF16("Address3");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("addr3")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
@@ -170,14 +153,13 @@ TEST_F(AddressFieldTest, ParseThreeLineAddress) {
}
TEST_F(AddressFieldTest, ParseCity) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("City"),
- ASCIIToUTF16("city"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("city1")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("City");
+ field.name = ASCIIToUTF16("city");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("city1")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
@@ -189,14 +171,13 @@ TEST_F(AddressFieldTest, ParseCity) {
}
TEST_F(AddressFieldTest, ParseState) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("State"),
- ASCIIToUTF16("state"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("state1")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("State");
+ field.name = ASCIIToUTF16("state");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("state1")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
@@ -208,14 +189,13 @@ TEST_F(AddressFieldTest, ParseState) {
}
TEST_F(AddressFieldTest, ParseZip) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Zip"),
- ASCIIToUTF16("zip"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("zip1")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("Zip");
+ field.name = ASCIIToUTF16("zip");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("zip1")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
@@ -227,26 +207,17 @@ TEST_F(AddressFieldTest, ParseZip) {
}
TEST_F(AddressFieldTest, ParseStateAndZipOneLabel) {
- list_.push_back(
- new AutofillField(
- webkit_glue::FormField(
- ASCIIToUTF16("State/Province, Zip/Postal Code"),
- ASCIIToUTF16("state"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("state")));
- list_.push_back(
- new AutofillField(
- webkit_glue::FormField(
- ASCIIToUTF16("State/Province, Zip/Postal Code"),
- ASCIIToUTF16("zip"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("zip")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("State/Province, Zip/Postal Code");
+ field.name = ASCIIToUTF16("state");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("state")));
+
+ field.label = ASCIIToUTF16("State/Province, Zip/Postal Code");
+ field.name = ASCIIToUTF16("zip");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("zip")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
@@ -261,14 +232,13 @@ TEST_F(AddressFieldTest, ParseStateAndZipOneLabel) {
}
TEST_F(AddressFieldTest, ParseCountry) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Country"),
- ASCIIToUTF16("country"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("country1")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("Country");
+ field.name = ASCIIToUTF16("country");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("country1")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
@@ -280,22 +250,17 @@ TEST_F(AddressFieldTest, ParseCountry) {
}
TEST_F(AddressFieldTest, ParseTwoLineAddressMissingLabel) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Address"),
- ASCIIToUTF16("address"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("addr1")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(string16(),
- ASCIIToUTF16("bogus"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("addr2")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("Address");
+ field.name = ASCIIToUTF16("address");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("addr1")));
+
+ field.label = ASCIIToUTF16("");
+ field.name = ASCIIToUTF16("bogus");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("addr2")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
@@ -310,14 +275,13 @@ TEST_F(AddressFieldTest, ParseTwoLineAddressMissingLabel) {
}
TEST_F(AddressFieldTest, ParseCompany) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Company"),
- ASCIIToUTF16("company"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("company1")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("Company");
+ field.name = ASCIIToUTF16("company");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("company1")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<AddressField*>(NULL), field_.get());
diff --git a/chrome/browser/autofill/autofill_common_test.cc b/chrome/browser/autofill/autofill_common_test.cc
index 8ea8aef..25ae16f 100644
--- a/chrome/browser/autofill/autofill_common_test.cc
+++ b/chrome/browser/autofill/autofill_common_test.cc
@@ -20,9 +20,10 @@ void CreateTestFormField(const char* label,
const char* value,
const char* type,
webkit_glue::FormField* field) {
- *field = webkit_glue::FormField(ASCIIToUTF16(label), ASCIIToUTF16(name),
- ASCIIToUTF16(value), ASCIIToUTF16(type), 0,
- false);
+ field->label = ASCIIToUTF16(label);
+ field->name = ASCIIToUTF16(name);
+ field->value = ASCIIToUTF16(value);
+ field->form_control_type = ASCIIToUTF16(type);
}
inline void check_and_set(
diff --git a/chrome/browser/autofill/autofill_download_unittest.cc b/chrome/browser/autofill/autofill_download_unittest.cc
index 57c6328..2bbdfae 100644
--- a/chrome/browser/autofill/autofill_download_unittest.cc
+++ b/chrome/browser/autofill/autofill_download_unittest.cc
@@ -24,6 +24,7 @@
#include "webkit/glue/form_data.h"
using webkit_glue::FormData;
+using webkit_glue::FormField;
using WebKit::WebInputElement;
namespace {
@@ -124,78 +125,69 @@ TEST_F(AutofillDownloadTest, QueryAndUploadTest) {
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("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("email2"),
- ASCIIToUTF16("email2"),
- 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("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);
+
+ field.label = ASCIIToUTF16("email");
+ field.name = ASCIIToUTF16("email");
+ field.form_control_type = ASCIIToUTF16("text");
+ form.fields.push_back(field);
+
+ field.label = ASCIIToUTF16("email2");
+ field.name = ASCIIToUTF16("email2");
+ 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 = new FormStructure(form);
ScopedVector<FormStructure> form_structures;
form_structures.push_back(form_structure);
form.fields.clear();
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("address"),
- ASCIIToUTF16("address"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false));
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("address2"),
- ASCIIToUTF16("address2"),
- 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(string16(),
- ASCIIToUTF16("Submit"),
- string16(),
- ASCIIToUTF16("submit"),
- 0,
- false));
+
+ field.label = ASCIIToUTF16("address");
+ field.name = ASCIIToUTF16("address");
+ field.form_control_type = ASCIIToUTF16("text");
+ form.fields.push_back(field);
+
+ field.label = ASCIIToUTF16("address2");
+ field.name = ASCIIToUTF16("address2");
+ field.form_control_type = ASCIIToUTF16("text");
+ form.fields.push_back(field);
+
+ field.label = ASCIIToUTF16("city");
+ field.name = ASCIIToUTF16("city");
+ field.form_control_type = ASCIIToUTF16("text");
+ 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 = new FormStructure(form);
form_structures.push_back(form_structure);
@@ -300,12 +292,10 @@ TEST_F(AutofillDownloadTest, QueryAndUploadTest) {
EXPECT_EQ(NULL, fetcher);
// Modify form structures to miss the cache.
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("Address line 2"),
- ASCIIToUTF16("address2"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false));
+ field.label = ASCIIToUTF16("Address line 2");
+ field.name = ASCIIToUTF16("address2");
+ field.form_control_type = ASCIIToUTF16("text");
+ form.fields.push_back(field);
form_structure = new FormStructure(form);
form_structures.push_back(form_structure);
@@ -373,46 +363,39 @@ TEST_F(AutofillDownloadTest, CacheQueryTest) {
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("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));
+
+ FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("username");
+ field.name = ASCIIToUTF16("username");
+ form.fields.push_back(field);
+
+ 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);
+
FormStructure *form_structure = new FormStructure(form);
ScopedVector<FormStructure> form_structures0;
form_structures0.push_back(form_structure);
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("email"),
- ASCIIToUTF16("email"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false));
- // Slightly different form - so different request.
+ // Add a slightly different form, which should result in a different request.
+ field.label = ASCIIToUTF16("email");
+ field.name = ASCIIToUTF16("email");
+ form.fields.push_back(field);
form_structure = new FormStructure(form);
ScopedVector<FormStructure> form_structures1;
form_structures1.push_back(form_structure);
- form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("email2"),
- ASCIIToUTF16("email2"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false));
- // Slightly different form - so different request.
+ // Add another slightly different form, which should also result in a
+ // different request.
+ field.label = ASCIIToUTF16("email2");
+ field.name = ASCIIToUTF16("email2");
+ form.fields.push_back(field);
form_structure = new FormStructure(form);
ScopedVector<FormStructure> form_structures2;
form_structures2.push_back(form_structure);
diff --git a/chrome/browser/autofill/autofill_manager_unittest.cc b/chrome/browser/autofill/autofill_manager_unittest.cc
index 2a2c329..2796187 100644
--- a/chrome/browser/autofill/autofill_manager_unittest.cc
+++ b/chrome/browser/autofill/autofill_manager_unittest.cc
@@ -257,6 +257,18 @@ void ExpectSuggestions(int page_id,
}
}
+void ExpectFilledField(const char* expected_label,
+ const char* expected_name,
+ const char* expected_value,
+ const char* expected_form_control_type,
+ const webkit_glue::FormField& field) {
+ SCOPED_TRACE(expected_label);
+ EXPECT_EQ(UTF8ToUTF16(expected_label), field.label);
+ EXPECT_EQ(UTF8ToUTF16(expected_name), field.name);
+ EXPECT_EQ(UTF8ToUTF16(expected_value), field.value);
+ EXPECT_EQ(UTF8ToUTF16(expected_form_control_type), field.form_control_type);
+}
+
// Verifies that the |filled_form| has been filled with the given data.
// Verifies address fields if |has_address_fields| is true, and verifies
// credit card fields if |has_credit_card_fields| is true. Verifies both if both
@@ -308,68 +320,52 @@ void ExpectFilledForm(int page_id,
FormField field;
if (has_address_fields) {
- autofill_test::CreateTestFormField(
- "First Name", "firstname", first, "text", &field);
- EXPECT_TRUE(field.StrictlyEqualsHack(filled_form.fields[0]));
- autofill_test::CreateTestFormField(
- "Middle Name", "middlename", middle, "text", &field);
- EXPECT_TRUE(field.StrictlyEqualsHack(filled_form.fields[1]));
- autofill_test::CreateTestFormField(
- "Last Name", "lastname", last, "text", &field);
- EXPECT_TRUE(field.StrictlyEqualsHack(filled_form.fields[2]));
- autofill_test::CreateTestFormField(
- "Address Line 1", "addr1", address1, "text", &field);
- EXPECT_TRUE(field.StrictlyEqualsHack(filled_form.fields[3]));
- autofill_test::CreateTestFormField(
- "Address Line 2", "addr2", address2, "text", &field);
- EXPECT_TRUE(field.StrictlyEqualsHack(filled_form.fields[4]));
- autofill_test::CreateTestFormField(
- "City", "city", city, "text", &field);
- EXPECT_TRUE(field.StrictlyEqualsHack(filled_form.fields[5]));
- autofill_test::CreateTestFormField(
- "State", "state", state, "text", &field);
- EXPECT_TRUE(field.StrictlyEqualsHack(filled_form.fields[6]));
- autofill_test::CreateTestFormField(
- "Postal Code", "zipcode", postal_code, "text", &field);
- EXPECT_TRUE(field.StrictlyEqualsHack(filled_form.fields[7]));
- autofill_test::CreateTestFormField(
- "Country", "country", country, "text", &field);
- EXPECT_TRUE(field.StrictlyEqualsHack(filled_form.fields[8]));
- autofill_test::CreateTestFormField(
- "Phone Number", "phonenumber", phone, "tel", &field);
- EXPECT_TRUE(field.StrictlyEqualsHack(filled_form.fields[9]));
- autofill_test::CreateTestFormField(
- "Fax", "fax", fax, "text", &field);
- EXPECT_TRUE(field.StrictlyEqualsHack(filled_form.fields[10]));
- autofill_test::CreateTestFormField(
- "Email", "email", email, "email", &field);
- EXPECT_TRUE(field.StrictlyEqualsHack(filled_form.fields[11]));
+ ExpectFilledField("First Name", "firstname", first, "text",
+ filled_form.fields[0]);
+ ExpectFilledField("Middle Name", "middlename", middle, "text",
+ filled_form.fields[1]);
+ ExpectFilledField("Last Name", "lastname", last, "text",
+ filled_form.fields[2]);
+ ExpectFilledField("Address Line 1", "addr1", address1, "text",
+ filled_form.fields[3]);
+ ExpectFilledField("Address Line 2", "addr2", address2, "text",
+ filled_form.fields[4]);
+ ExpectFilledField("City", "city", city, "text",
+ filled_form.fields[5]);
+ ExpectFilledField("State", "state", state, "text",
+ filled_form.fields[6]);
+ ExpectFilledField("Postal Code", "zipcode", postal_code, "text",
+ filled_form.fields[7]);
+ ExpectFilledField("Country", "country", country, "text",
+ filled_form.fields[8]);
+ ExpectFilledField("Phone Number", "phonenumber", phone, "tel",
+ filled_form.fields[9]);
+ ExpectFilledField("Fax", "fax", fax, "text",
+ filled_form.fields[10]);
+ ExpectFilledField("Email", "email", email, "email",
+ filled_form.fields[11]);
}
if (has_credit_card_fields) {
size_t offset = has_address_fields? kAddressFormSize : 0;
- autofill_test::CreateTestFormField(
- "Name on Card", "nameoncard", name_on_card, "text", &field);
- EXPECT_TRUE(field.StrictlyEqualsHack(filled_form.fields[offset + 0]));
- autofill_test::CreateTestFormField(
- "Card Number", "cardnumber", card_number, "text", &field);
- EXPECT_TRUE(field.StrictlyEqualsHack(filled_form.fields[offset + 1]));
+ ExpectFilledField("Name on Card", "nameoncard", name_on_card, "text",
+ filled_form.fields[offset + 0]);
+ ExpectFilledField("Card Number", "cardnumber", card_number, "text",
+ filled_form.fields[offset + 1]);
if (use_month_type) {
std::string exp_year = expiration_year;
std::string exp_month = expiration_month;
std::string date;
if (!exp_year.empty() && !exp_month.empty())
date = exp_year + "-" + exp_month;
- autofill_test::CreateTestFormField(
- "Expiration Date", "ccmonth", date.c_str(), "month", &field);
- EXPECT_TRUE(field.StrictlyEqualsHack(filled_form.fields[offset + 2]));
+
+ ExpectFilledField("Expiration Date", "ccmonth", date.c_str(), "month",
+ filled_form.fields[offset + 2]);
} else {
- autofill_test::CreateTestFormField(
- "Expiration Date", "ccmonth", expiration_month, "text", &field);
- EXPECT_TRUE(field.StrictlyEqualsHack(filled_form.fields[offset + 2]));
- autofill_test::CreateTestFormField(
- "", "ccyear", expiration_year, "text", &field);
- EXPECT_TRUE(field.StrictlyEqualsHack(filled_form.fields[offset + 3]));
+ ExpectFilledField("Expiration Date", "ccmonth", expiration_month, "text",
+ filled_form.fields[offset + 2]);
+ ExpectFilledField("", "ccyear", expiration_year, "text",
+ filled_form.fields[offset + 3]);
}
}
}
diff --git a/chrome/browser/autofill/autofill_merge_unittest.cc b/chrome/browser/autofill/autofill_merge_unittest.cc
index 9b8071c..325cd92 100644
--- a/chrome/browser/autofill/autofill_merge_unittest.cc
+++ b/chrome/browser/autofill/autofill_merge_unittest.cc
@@ -179,12 +179,11 @@ void AutofillMergeTest::MergeProfiles(const std::string& profiles,
string16 field_type = UTF8ToUTF16(line.substr(0, separator_pos));
string16 value = UTF8ToUTF16(line.substr(separator_pos + kFieldOffset));
- webkit_glue::FormField field(field_type,
- field_type,
- value,
- ASCIIToUTF16("text"),
- WebKit::WebInputElement::defaultMaxLength(),
- false);
+ webkit_glue::FormField field;
+ field.label = field_type;
+ field.name = field_type;
+ field.value = value;
+ field.form_control_type = ASCIIToUTF16("text");
form.fields.push_back(field);
}
diff --git a/chrome/browser/autofill/autofill_metrics_unittest.cc b/chrome/browser/autofill/autofill_metrics_unittest.cc
index f0c4a33..95eb844 100644
--- a/chrome/browser/autofill/autofill_metrics_unittest.cc
+++ b/chrome/browser/autofill/autofill_metrics_unittest.cc
@@ -271,24 +271,28 @@ TEST_F(AutofillMetricsTest, QualityMetrics) {
autofill_test::CreateTestFormField(
"Autofill Failed", "autofillfailed", "buddy@gmail.com", "text", &field);
+ field.is_autofilled = false;
form.fields.push_back(field);
heuristic_types.push_back(PHONE_HOME_NUMBER);
server_types.push_back(EMAIL_ADDRESS);
autofill_test::CreateTestFormField(
"Empty", "empty", "", "text", &field);
+ field.is_autofilled = false;
form.fields.push_back(field);
heuristic_types.push_back(NAME_FULL);
server_types.push_back(NAME_FIRST);
autofill_test::CreateTestFormField(
"Unknown", "unknown", "garbage", "text", &field);
+ field.is_autofilled = false;
form.fields.push_back(field);
heuristic_types.push_back(PHONE_HOME_NUMBER);
server_types.push_back(EMAIL_ADDRESS);
autofill_test::CreateTestFormField(
"Select", "select", "USA", "select-one", &field);
+ field.is_autofilled = false;
form.fields.push_back(field);
heuristic_types.push_back(UNKNOWN_TYPE);
server_types.push_back(NO_SERVER_DATA);
@@ -529,16 +533,19 @@ TEST_F(AutofillMetricsTest, SaneMetricsWithCacheMismatch) {
server_types.push_back(NAME_FULL);
autofill_test::CreateTestFormField(
"Both mismatch", "mismatch", "buddy@gmail.com", "text", &field);
+ field.is_autofilled = false;
form.fields.push_back(field);
heuristic_types.push_back(PHONE_HOME_NUMBER);
server_types.push_back(PHONE_HOME_NUMBER);
autofill_test::CreateTestFormField(
"Only heuristics match", "mixed", "Memphis", "text", &field);
+ field.is_autofilled = false;
form.fields.push_back(field);
heuristic_types.push_back(ADDRESS_HOME_CITY);
server_types.push_back(PHONE_HOME_NUMBER);
autofill_test::CreateTestFormField(
"Unknown", "unknown", "garbage", "text", &field);
+ field.is_autofilled = false;
form.fields.push_back(field);
heuristic_types.push_back(UNKNOWN_TYPE);
server_types.push_back(UNKNOWN_TYPE);
@@ -721,24 +728,28 @@ TEST_F(AutofillMetricsTest, QualityMetricsWithExperimentId) {
autofill_test::CreateTestFormField(
"Autofill Failed", "autofillfailed", "buddy@gmail.com", "text", &field);
+ field.is_autofilled = false;
form.fields.push_back(field);
heuristic_types.push_back(PHONE_HOME_NUMBER);
server_types.push_back(EMAIL_ADDRESS);
autofill_test::CreateTestFormField(
"Empty", "empty", "", "text", &field);
+ field.is_autofilled = false;
form.fields.push_back(field);
heuristic_types.push_back(NAME_FULL);
server_types.push_back(NAME_FIRST);
autofill_test::CreateTestFormField(
"Unknown", "unknown", "garbage", "text", &field);
+ field.is_autofilled = false;
form.fields.push_back(field);
heuristic_types.push_back(PHONE_HOME_NUMBER);
server_types.push_back(EMAIL_ADDRESS);
autofill_test::CreateTestFormField(
"Select", "select", "USA", "select-one", &field);
+ field.is_autofilled = false;
form.fields.push_back(field);
heuristic_types.push_back(UNKNOWN_TYPE);
server_types.push_back(NO_SERVER_DATA);
diff --git a/chrome/browser/autofill/credit_card_field_unittest.cc b/chrome/browser/autofill/credit_card_field_unittest.cc
index f480783..28e8c9c 100644
--- a/chrome/browser/autofill/credit_card_field_unittest.cc
+++ b/chrome/browser/autofill/credit_card_field_unittest.cc
@@ -43,66 +43,51 @@ TEST_F(CreditCardFieldTest, NonParse) {
}
TEST_F(CreditCardFieldTest, ParseCreditCardNoNumber) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Exp Month"),
- ASCIIToUTF16("ccmonth"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("month1")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Exp Year"),
- ASCIIToUTF16("ccyear"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("year1")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("Exp Month");
+ field.name = ASCIIToUTF16("ccmonth");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("month1")));
+
+ field.label = ASCIIToUTF16("Exp Year");
+ field.name = ASCIIToUTF16("ccyear");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("year2")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_EQ(static_cast<CreditCardField*>(NULL), field_.get());
}
TEST_F(CreditCardFieldTest, ParseCreditCardNoDate) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Card Number"),
- ASCIIToUTF16("card_number"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("number1")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("Card Number");
+ field.name = ASCIIToUTF16("card_number");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("number1")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_EQ(static_cast<CreditCardField*>(NULL), field_.get());
}
TEST_F(CreditCardFieldTest, ParseMiniumCreditCard) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Card Number"),
- ASCIIToUTF16("card_number"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("number1")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Exp Month"),
- ASCIIToUTF16("ccmonth"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("month1")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Exp Year"),
- ASCIIToUTF16("ccyear"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("year1")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("Card Number");
+ field.name = ASCIIToUTF16("card_number");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("number1")));
+
+ field.label = ASCIIToUTF16("Exp Month");
+ field.name = ASCIIToUTF16("ccmonth");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("month2")));
+
+ field.label = ASCIIToUTF16("Exp Year");
+ field.name = ASCIIToUTF16("ccyear");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("year3")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<CreditCardField*>(NULL), field_.get());
@@ -111,55 +96,38 @@ TEST_F(CreditCardFieldTest, ParseMiniumCreditCard) {
field_type_map_.find(ASCIIToUTF16("number1")) != field_type_map_.end());
EXPECT_EQ(CREDIT_CARD_NUMBER, field_type_map_[ASCIIToUTF16("number1")]);
ASSERT_TRUE(
- field_type_map_.find(ASCIIToUTF16("month1")) != field_type_map_.end());
- EXPECT_EQ(CREDIT_CARD_EXP_MONTH, field_type_map_[ASCIIToUTF16("month1")]);
+ field_type_map_.find(ASCIIToUTF16("month2")) != field_type_map_.end());
+ EXPECT_EQ(CREDIT_CARD_EXP_MONTH, field_type_map_[ASCIIToUTF16("month2")]);
ASSERT_TRUE(
- field_type_map_.find(ASCIIToUTF16("year1")) != field_type_map_.end());
+ field_type_map_.find(ASCIIToUTF16("year3")) != field_type_map_.end());
EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR,
- field_type_map_[ASCIIToUTF16("year1")]);
+ field_type_map_[ASCIIToUTF16("year3")]);
}
TEST_F(CreditCardFieldTest, ParseFullCreditCard) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Name on Card"),
- ASCIIToUTF16("name on card"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("name1")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Card Number"),
- ASCIIToUTF16("card_number"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("number1")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Exp Month"),
- ASCIIToUTF16("ccmonth"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("month1")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Exp Year"),
- ASCIIToUTF16("ccyear"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("year1")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Verification"),
- ASCIIToUTF16("verification"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("cvc1")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("Name on Card");
+ field.name = ASCIIToUTF16("name_on_card");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("name1")));
+
+ field.label = ASCIIToUTF16("Card Number");
+ field.name = ASCIIToUTF16("card_number");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("number2")));
+
+ field.label = ASCIIToUTF16("Exp Month");
+ field.name = ASCIIToUTF16("ccmonth");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("month3")));
+
+ field.label = ASCIIToUTF16("Exp Year");
+ field.name = ASCIIToUTF16("ccyear");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("year4")));
+
+ field.label = ASCIIToUTF16("Verification");
+ field.name = ASCIIToUTF16("verification");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("cvc5")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<CreditCardField*>(NULL), field_.get());
@@ -168,137 +136,106 @@ TEST_F(CreditCardFieldTest, ParseFullCreditCard) {
field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end());
EXPECT_EQ(CREDIT_CARD_NAME, field_type_map_[ASCIIToUTF16("name1")]);
ASSERT_TRUE(
- field_type_map_.find(ASCIIToUTF16("number1")) != field_type_map_.end());
- EXPECT_EQ(CREDIT_CARD_NUMBER, field_type_map_[ASCIIToUTF16("number1")]);
+ field_type_map_.find(ASCIIToUTF16("number2")) != field_type_map_.end());
+ EXPECT_EQ(CREDIT_CARD_NUMBER, field_type_map_[ASCIIToUTF16("number2")]);
ASSERT_TRUE(
- field_type_map_.find(ASCIIToUTF16("month1")) != field_type_map_.end());
- EXPECT_EQ(CREDIT_CARD_EXP_MONTH, field_type_map_[ASCIIToUTF16("month1")]);
+ field_type_map_.find(ASCIIToUTF16("month3")) != field_type_map_.end());
+ EXPECT_EQ(CREDIT_CARD_EXP_MONTH, field_type_map_[ASCIIToUTF16("month3")]);
ASSERT_TRUE(
- field_type_map_.find(ASCIIToUTF16("year1")) != field_type_map_.end());
+ field_type_map_.find(ASCIIToUTF16("year4")) != field_type_map_.end());
EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR,
- field_type_map_[ASCIIToUTF16("year1")]);
+ field_type_map_[ASCIIToUTF16("year4")]);
// We don't store CVV.
EXPECT_TRUE(
- field_type_map_.find(ASCIIToUTF16("cvc1")) == field_type_map_.end());
+ field_type_map_.find(ASCIIToUTF16("cvc5")) == field_type_map_.end());
}
TEST_F(CreditCardFieldTest, ParseExpMonthYear) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Name on Card"),
- ASCIIToUTF16("Name"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("name")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Card Number"),
- ASCIIToUTF16("Card"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("number")));
- list_.push_back(
- new AutofillField(
- webkit_glue::FormField(ASCIIToUTF16("ExpDate Month / Year"),
- ASCIIToUTF16("ExpDate"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("month")));
- list_.push_back(
- new AutofillField(
- webkit_glue::FormField(ASCIIToUTF16("ExpDate Month / Year"),
- ASCIIToUTF16("ExpDate"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("year")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("Name on Card");
+ field.name = ASCIIToUTF16("name_on_card");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("name1")));
+
+ field.label = ASCIIToUTF16("Card Number");
+ field.name = ASCIIToUTF16("card_number");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("number2")));
+
+ field.label = ASCIIToUTF16("ExpDate Month / Year");
+ field.name = ASCIIToUTF16("ExpDate");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("month3")));
+
+ field.label = ASCIIToUTF16("ExpDate Month / Year");
+ field.name = ASCIIToUTF16("ExpDate");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("year4")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<CreditCardField*>(NULL), field_.get());
ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
ASSERT_TRUE(
- field_type_map_.find(ASCIIToUTF16("name")) != field_type_map_.end());
- EXPECT_EQ(CREDIT_CARD_NAME, field_type_map_[ASCIIToUTF16("name")]);
+ field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end());
+ EXPECT_EQ(CREDIT_CARD_NAME, field_type_map_[ASCIIToUTF16("name1")]);
ASSERT_TRUE(
- field_type_map_.find(ASCIIToUTF16("number")) != field_type_map_.end());
- EXPECT_EQ(CREDIT_CARD_NUMBER, field_type_map_[ASCIIToUTF16("number")]);
+ field_type_map_.find(ASCIIToUTF16("number2")) != field_type_map_.end());
+ EXPECT_EQ(CREDIT_CARD_NUMBER, field_type_map_[ASCIIToUTF16("number2")]);
ASSERT_TRUE(
- field_type_map_.find(ASCIIToUTF16("month")) != field_type_map_.end());
- EXPECT_EQ(CREDIT_CARD_EXP_MONTH, field_type_map_[ASCIIToUTF16("month")]);
+ field_type_map_.find(ASCIIToUTF16("month3")) != field_type_map_.end());
+ EXPECT_EQ(CREDIT_CARD_EXP_MONTH, field_type_map_[ASCIIToUTF16("month3")]);
ASSERT_TRUE(
- field_type_map_.find(ASCIIToUTF16("year")) != field_type_map_.end());
+ field_type_map_.find(ASCIIToUTF16("year4")) != field_type_map_.end());
EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR,
- field_type_map_[ASCIIToUTF16("year")]);
+ field_type_map_[ASCIIToUTF16("year4")]);
}
TEST_F(CreditCardFieldTest, ParseExpMonthYear2) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Name on Card"),
- ASCIIToUTF16("Name"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("name")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Card Number"),
- ASCIIToUTF16("Card"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("number")));
- list_.push_back(
- new AutofillField(
- webkit_glue::FormField(ASCIIToUTF16("Expiration date Month / Year"),
- ASCIIToUTF16("ExpDate"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("month")));
- list_.push_back(
- new AutofillField(
- webkit_glue::FormField(ASCIIToUTF16("Expiration date Month / Year"),
- ASCIIToUTF16("ExpDate"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("year")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("Name on Card");
+ field.name = ASCIIToUTF16("name_on_card");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("name1")));
+
+ field.label = ASCIIToUTF16("Card Number");
+ field.name = ASCIIToUTF16("card_number");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("number2")));
+
+ field.label = ASCIIToUTF16("Expiration date Month / Year");
+ field.name = ASCIIToUTF16("ExpDate");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("month3")));
+
+ field.label = ASCIIToUTF16("Expiration date Month / Year");
+ field.name = ASCIIToUTF16("ExpDate");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("year4")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<CreditCardField*>(NULL), field_.get());
ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
ASSERT_TRUE(
- field_type_map_.find(ASCIIToUTF16("name")) != field_type_map_.end());
- EXPECT_EQ(CREDIT_CARD_NAME, field_type_map_[ASCIIToUTF16("name")]);
+ field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end());
+ EXPECT_EQ(CREDIT_CARD_NAME, field_type_map_[ASCIIToUTF16("name1")]);
ASSERT_TRUE(
- field_type_map_.find(ASCIIToUTF16("number")) != field_type_map_.end());
- EXPECT_EQ(CREDIT_CARD_NUMBER, field_type_map_[ASCIIToUTF16("number")]);
+ field_type_map_.find(ASCIIToUTF16("number2")) != field_type_map_.end());
+ EXPECT_EQ(CREDIT_CARD_NUMBER, field_type_map_[ASCIIToUTF16("number2")]);
ASSERT_TRUE(
- field_type_map_.find(ASCIIToUTF16("month")) != field_type_map_.end());
- EXPECT_EQ(CREDIT_CARD_EXP_MONTH, field_type_map_[ASCIIToUTF16("month")]);
+ field_type_map_.find(ASCIIToUTF16("month3")) != field_type_map_.end());
+ EXPECT_EQ(CREDIT_CARD_EXP_MONTH, field_type_map_[ASCIIToUTF16("month3")]);
ASSERT_TRUE(
- field_type_map_.find(ASCIIToUTF16("year")) != field_type_map_.end());
+ field_type_map_.find(ASCIIToUTF16("year4")) != field_type_map_.end());
EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR,
- field_type_map_[ASCIIToUTF16("year")]);
+ field_type_map_[ASCIIToUTF16("year4")]);
}
TEST_F(CreditCardFieldTest, ParseCreditCardHolderNameWithCCFullName) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Name"),
- ASCIIToUTF16("ccfullname"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("name1")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("Name");
+ field.name = ASCIIToUTF16("ccfullname");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("name1")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<CreditCardField*>(NULL), field_.get());
diff --git a/chrome/browser/autofill/form_structure_unittest.cc b/chrome/browser/autofill/form_structure_unittest.cc
index 0936300..4bfeb77 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(
diff --git a/chrome/browser/autofill/name_field_unittest.cc b/chrome/browser/autofill/name_field_unittest.cc
index 8edb07f..f89d9de 100644
--- a/chrome/browser/autofill/name_field_unittest.cc
+++ b/chrome/browser/autofill/name_field_unittest.cc
@@ -30,30 +30,21 @@ class NameFieldTest : public testing::Test {
};
TEST_F(NameFieldTest, FirstMiddleLast) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("First Name"),
- ASCIIToUTF16("First"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("name1")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Middle Name"),
- ASCIIToUTF16("Middle"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("name2")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Last Name"),
- ASCIIToUTF16("Last"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("name3")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("First Name");
+ field.name = ASCIIToUTF16("First");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("name1")));
+
+ field.label = ASCIIToUTF16("Middle Name");
+ field.name = ASCIIToUTF16("Middle");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("name2")));
+
+ field.label = ASCIIToUTF16("Last Name");
+ field.name = ASCIIToUTF16("Last");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("name3")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<NameField*>(NULL), field_.get());
@@ -70,30 +61,21 @@ TEST_F(NameFieldTest, FirstMiddleLast) {
}
TEST_F(NameFieldTest, FirstMiddleLast2) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(string16(),
- ASCIIToUTF16("firstName"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("name1")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(string16(),
- ASCIIToUTF16("middleName"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("name2")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(string16(),
- ASCIIToUTF16("lastName"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("name3")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = string16();
+ field.name = ASCIIToUTF16("firstName");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("name1")));
+
+ field.label = string16();
+ field.name = ASCIIToUTF16("middleName");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("name2")));
+
+ field.label = string16();
+ field.name = ASCIIToUTF16("lastName");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("name3")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<NameField*>(NULL), field_.get());
@@ -110,22 +92,17 @@ TEST_F(NameFieldTest, FirstMiddleLast2) {
}
TEST_F(NameFieldTest, FirstLast) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(string16(),
- ASCIIToUTF16("first_name"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("name1")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(string16(),
- ASCIIToUTF16("last_name"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("name2")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = string16();
+ field.name = ASCIIToUTF16("first_name");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("name1")));
+
+ field.label = string16();
+ field.name = ASCIIToUTF16("last_name");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("name2")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<NameField*>(NULL), field_.get());
@@ -139,22 +116,17 @@ TEST_F(NameFieldTest, FirstLast) {
}
TEST_F(NameFieldTest, FirstLast2) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Name"),
- ASCIIToUTF16("first_name"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("name1")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Name"),
- ASCIIToUTF16("last_name"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("name2")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("Name");
+ field.name = ASCIIToUTF16("first_name");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("name1")));
+
+ field.label = ASCIIToUTF16("Name");
+ field.name = ASCIIToUTF16("last_name");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("name2")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<NameField*>(NULL), field_.get());
@@ -168,30 +140,21 @@ TEST_F(NameFieldTest, FirstLast2) {
}
TEST_F(NameFieldTest, FirstLastMiddleWithSpaces) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("First Name"),
- ASCIIToUTF16("first name"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("name1")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Middle Name"),
- ASCIIToUTF16("middle name"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("name2")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Last Name"),
- ASCIIToUTF16("last name"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("name3")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("First Name");
+ field.name = ASCIIToUTF16("first_name");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("name1")));
+
+ field.label = ASCIIToUTF16("Middle Name");
+ field.name = ASCIIToUTF16("middle_name");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("name2")));
+
+ field.label = ASCIIToUTF16("Last Name");
+ field.name = ASCIIToUTF16("last_name");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("name3")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<NameField*>(NULL), field_.get());
@@ -208,22 +171,17 @@ TEST_F(NameFieldTest, FirstLastMiddleWithSpaces) {
}
TEST_F(NameFieldTest, FirstLastEmpty) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Name"),
- ASCIIToUTF16("first_name"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("name1")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(string16(),
- ASCIIToUTF16("last_name"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("name2")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("Name");
+ field.name = ASCIIToUTF16("first_name");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("name1")));
+
+ field.label = string16();
+ field.name = ASCIIToUTF16("last_name");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("name2")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<NameField*>(NULL), field_.get());
@@ -237,30 +195,21 @@ TEST_F(NameFieldTest, FirstLastEmpty) {
}
TEST_F(NameFieldTest, FirstMiddleLastEmpty) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Name"),
- ASCIIToUTF16("first_name"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("name1")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(string16(),
- ASCIIToUTF16("middle_name"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("name2")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(string16(),
- ASCIIToUTF16("last_name"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("name3")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("Name");
+ field.name = ASCIIToUTF16("first_name");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("name1")));
+
+ field.label = string16();
+ field.name = ASCIIToUTF16("middle_name");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("name2")));
+
+ field.label = string16();
+ field.name = ASCIIToUTF16("last_name");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("name3")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<NameField*>(NULL), field_.get());
@@ -277,30 +226,21 @@ TEST_F(NameFieldTest, FirstMiddleLastEmpty) {
}
TEST_F(NameFieldTest, MiddleInitial) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("First Name"),
- ASCIIToUTF16("first_name"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("name1")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("MI"),
- ASCIIToUTF16("middle_name"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("name2")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Last Name"),
- ASCIIToUTF16("last_name"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("name3")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("First Name");
+ field.name = ASCIIToUTF16("first_name");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("name1")));
+
+ field.label = ASCIIToUTF16("MI");
+ field.name = ASCIIToUTF16("middle_name");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("name2")));
+
+ field.label = ASCIIToUTF16("Last Name");
+ field.name = ASCIIToUTF16("last_name");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("name3")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<NameField*>(NULL), field_.get());
@@ -317,22 +257,17 @@ TEST_F(NameFieldTest, MiddleInitial) {
}
TEST_F(NameFieldTest, MiddleInitialNoLastName) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("First Name"),
- ASCIIToUTF16("first_name"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("name1")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("MI"),
- ASCIIToUTF16("middle_name"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("name2")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("First Name");
+ field.name = ASCIIToUTF16("first_name");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("name1")));
+
+ field.label = ASCIIToUTF16("MI");
+ field.name = ASCIIToUTF16("middle_name");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("name2")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_EQ(static_cast<NameField*>(NULL), field_.get());
@@ -341,30 +276,21 @@ TEST_F(NameFieldTest, MiddleInitialNoLastName) {
// This case is from the dell.com checkout page. The middle initial "mi" string
// came at the end following other descriptive text. http://crbug.com/45123.
TEST_F(NameFieldTest, MiddleInitialAtEnd) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(string16(),
- ASCIIToUTF16("XXXnameXXXfirst"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("name1")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(string16(),
- ASCIIToUTF16("XXXnameXXXmi"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("name2")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(string16(),
- ASCIIToUTF16("XXXnameXXXlast"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("name3")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = string16();
+ field.name = ASCIIToUTF16("XXXnameXXXfirst");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("name1")));
+
+ field.label = string16();
+ field.name = ASCIIToUTF16("XXXnameXXXmi");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("name2")));
+
+ field.label = string16();
+ field.name = ASCIIToUTF16("XXXnameXXXlast");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("name3")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<NameField*>(NULL), field_.get());
diff --git a/chrome/browser/autofill/phone_field_unittest.cc b/chrome/browser/autofill/phone_field_unittest.cc
index 0b2628c..9835567 100644
--- a/chrome/browser/autofill/phone_field_unittest.cc
+++ b/chrome/browser/autofill/phone_field_unittest.cc
@@ -43,14 +43,13 @@ TEST_F(PhoneFieldTest, NonParse) {
}
TEST_F(PhoneFieldTest, ParseOneLinePhone) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Phone"),
- ASCIIToUTF16("phone"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("phone1")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("Phone");
+ field.name = ASCIIToUTF16("phone");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("phone1")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<PhoneField*>(NULL), field_.get());
@@ -61,22 +60,17 @@ TEST_F(PhoneFieldTest, ParseOneLinePhone) {
}
TEST_F(PhoneFieldTest, ParseTwoLinePhone) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Area Code"),
- ASCIIToUTF16("area code"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("areacode1")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Phone"),
- ASCIIToUTF16("phone"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("phone1")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("Area Code");
+ field.name = ASCIIToUTF16("area code");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("areacode1")));
+
+ field.label = ASCIIToUTF16("Phone");
+ field.name = ASCIIToUTF16("phone");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("phone2")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<PhoneField*>(NULL), field_.get());
@@ -85,8 +79,8 @@ TEST_F(PhoneFieldTest, ParseTwoLinePhone) {
field_type_map_.find(ASCIIToUTF16("areacode1")) != field_type_map_.end());
EXPECT_EQ(PHONE_HOME_CITY_CODE, field_type_map_[ASCIIToUTF16("areacode1")]);
ASSERT_TRUE(
- field_type_map_.find(ASCIIToUTF16("phone1")) != field_type_map_.end());
- EXPECT_EQ(PHONE_HOME_NUMBER, field_type_map_[ASCIIToUTF16("phone1")]);
+ field_type_map_.find(ASCIIToUTF16("phone2")) != field_type_map_.end());
+ EXPECT_EQ(PHONE_HOME_NUMBER, field_type_map_[ASCIIToUTF16("phone2")]);
}
TEST_F(PhoneFieldTest, ThreePartPhoneNumber) {
@@ -95,38 +89,29 @@ TEST_F(PhoneFieldTest, ThreePartPhoneNumber) {
// <country code> - <area code> - <phone>. The only distinguishing feature is
// size: <prefix> is no bigger than 3 characters, and <suffix> is no bigger
// than 4.
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Phone:"),
- ASCIIToUTF16("dayphone1"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("areacode1")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("-"),
- ASCIIToUTF16("dayphone2"),
- string16(),
- ASCIIToUTF16("text"),
- 3,
- false),
- ASCIIToUTF16("prefix1")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("-"),
- ASCIIToUTF16("dayphone3"),
- string16(),
- ASCIIToUTF16("text"),
- 4,
- false),
- ASCIIToUTF16("suffix1")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("ext.:"),
- ASCIIToUTF16("dayphone4"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("ext1")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("Phone:");
+ field.name = ASCIIToUTF16("dayphone1");
+ field.max_length = 0;
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("areacode1")));
+
+ field.label = ASCIIToUTF16("-");
+ field.name = ASCIIToUTF16("dayphone2");
+ field.max_length = 3;
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("prefix2")));
+
+ field.label = ASCIIToUTF16("-");
+ field.name = ASCIIToUTF16("dayphone3");
+ field.max_length = 4;
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("suffix3")));
+
+ field.label = ASCIIToUTF16("ext.:");
+ field.name = ASCIIToUTF16("dayphone4");
+ field.max_length = 0;
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("ext4")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<PhoneField*>(NULL), field_.get());
@@ -135,41 +120,34 @@ TEST_F(PhoneFieldTest, ThreePartPhoneNumber) {
field_type_map_.find(ASCIIToUTF16("areacode1")) != field_type_map_.end());
EXPECT_EQ(PHONE_HOME_CITY_CODE, field_type_map_[ASCIIToUTF16("areacode1")]);
ASSERT_TRUE(
- field_type_map_.find(ASCIIToUTF16("prefix1")) != field_type_map_.end());
- EXPECT_EQ(PHONE_HOME_NUMBER, field_type_map_[ASCIIToUTF16("prefix1")]);
+ field_type_map_.find(ASCIIToUTF16("prefix2")) != field_type_map_.end());
+ EXPECT_EQ(PHONE_HOME_NUMBER, field_type_map_[ASCIIToUTF16("prefix2")]);
ASSERT_TRUE(
- field_type_map_.find(ASCIIToUTF16("suffix1")) != field_type_map_.end());
- EXPECT_EQ(PHONE_HOME_NUMBER, field_type_map_[ASCIIToUTF16("suffix1")]);
+ field_type_map_.find(ASCIIToUTF16("suffix3")) != field_type_map_.end());
+ EXPECT_EQ(PHONE_HOME_NUMBER, field_type_map_[ASCIIToUTF16("suffix3")]);
+ EXPECT_TRUE(
+ field_type_map_.find(ASCIIToUTF16("ext4")) == field_type_map_.end());
}
// This scenario of explicitly labeled "prefix" and "suffix" phone numbers
// encountered in http://crbug.com/40694 with page
// https://www.wrapables.com/jsp/Signup.jsp.
TEST_F(PhoneFieldTest, ThreePartPhoneNumberPrefixSuffix) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Phone:"),
- ASCIIToUTF16("area"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("areacode1")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(string16(),
- ASCIIToUTF16("prefix"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("prefix1")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(string16(),
- ASCIIToUTF16("suffix"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("suffix1")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("Phone:");
+ field.name = ASCIIToUTF16("area");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("areacode1")));
+
+ field.label = string16();
+ field.name = ASCIIToUTF16("prefix");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("prefix2")));
+
+ field.label = string16();
+ field.name = ASCIIToUTF16("suffix");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("suffix3")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<PhoneField*>(NULL), field_.get());
@@ -178,38 +156,32 @@ TEST_F(PhoneFieldTest, ThreePartPhoneNumberPrefixSuffix) {
field_type_map_.find(ASCIIToUTF16("areacode1")) != field_type_map_.end());
EXPECT_EQ(PHONE_HOME_CITY_CODE, field_type_map_[ASCIIToUTF16("areacode1")]);
ASSERT_TRUE(
- field_type_map_.find(ASCIIToUTF16("prefix1")) != field_type_map_.end());
- EXPECT_EQ(PHONE_HOME_NUMBER, field_type_map_[ASCIIToUTF16("prefix1")]);
+ field_type_map_.find(ASCIIToUTF16("prefix2")) != field_type_map_.end());
+ EXPECT_EQ(PHONE_HOME_NUMBER, field_type_map_[ASCIIToUTF16("prefix2")]);
ASSERT_TRUE(
- field_type_map_.find(ASCIIToUTF16("suffix1")) != field_type_map_.end());
- EXPECT_EQ(PHONE_HOME_NUMBER, field_type_map_[ASCIIToUTF16("suffix1")]);
+ field_type_map_.find(ASCIIToUTF16("suffix3")) != field_type_map_.end());
+ EXPECT_EQ(PHONE_HOME_NUMBER, field_type_map_[ASCIIToUTF16("suffix3")]);
}
TEST_F(PhoneFieldTest, ThreePartPhoneNumberPrefixSuffix2) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("("),
- ASCIIToUTF16("phone1"),
- string16(),
- ASCIIToUTF16("text"),
- 3,
- false),
- ASCIIToUTF16("phone1")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16(")"),
- ASCIIToUTF16("phone2"),
- string16(),
- ASCIIToUTF16("text"),
- 3,
- false),
- ASCIIToUTF16("phone2")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(string16(),
- ASCIIToUTF16("phone3"),
- string16(),
- ASCIIToUTF16("text"),
- 4,
- false),
- ASCIIToUTF16("phone3")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("(");
+ field.name = ASCIIToUTF16("phone1");
+ field.max_length = 3;
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("phone1")));
+
+ field.label = ASCIIToUTF16(")");
+ field.name = ASCIIToUTF16("phone2");
+ field.max_length = 3;
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("phone2")));
+
+ field.label = string16();
+ field.name = ASCIIToUTF16("phone3");
+ field.max_length = 4;
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("phone3")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<PhoneField*>(NULL), field_.get());
@@ -226,14 +198,13 @@ TEST_F(PhoneFieldTest, ThreePartPhoneNumberPrefixSuffix2) {
}
TEST_F(PhoneFieldTest, ParseOneLineFax) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Fax"),
- ASCIIToUTF16("fax"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("fax1")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("Fax");
+ field.name = ASCIIToUTF16("fax");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("fax1")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<PhoneField*>(NULL), field_.get());
@@ -244,22 +215,17 @@ TEST_F(PhoneFieldTest, ParseOneLineFax) {
}
TEST_F(PhoneFieldTest, ParseTwoLineFax) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Area Code"),
- ASCIIToUTF16("area code"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("areacode1")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Fax"),
- ASCIIToUTF16("fax"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("fax1")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("Area Code");
+ field.name = ASCIIToUTF16("area code");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("areacode1")));
+
+ field.label = ASCIIToUTF16("Fax");
+ field.name = ASCIIToUTF16("fax");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("fax2")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<PhoneField*>(NULL), field_.get());
@@ -269,35 +235,26 @@ TEST_F(PhoneFieldTest, ParseTwoLineFax) {
// It should be FAX, based on the other phone in the group.
EXPECT_EQ(PHONE_FAX_CITY_CODE, field_type_map_[ASCIIToUTF16("areacode1")]);
ASSERT_TRUE(
- field_type_map_.find(ASCIIToUTF16("fax1")) != field_type_map_.end());
- EXPECT_EQ(PHONE_FAX_NUMBER, field_type_map_[ASCIIToUTF16("fax1")]);
+ field_type_map_.find(ASCIIToUTF16("fax2")) != field_type_map_.end());
+ EXPECT_EQ(PHONE_FAX_NUMBER, field_type_map_[ASCIIToUTF16("fax2")]);
}
TEST_F(PhoneFieldTest, ThreePartFaxNumberPrefixSuffix) {
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Fax:"),
- ASCIIToUTF16("area"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("areacode1")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(string16(),
- ASCIIToUTF16("prefix"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("prefix1")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(string16(),
- ASCIIToUTF16("suffix"),
- string16(),
- ASCIIToUTF16("text"),
- 0,
- false),
- ASCIIToUTF16("suffix1")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("Fax:");
+ field.name = ASCIIToUTF16("area");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("areacode1")));
+
+ field.label = string16();
+ field.name = ASCIIToUTF16("prefix");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("prefix2")));
+
+ field.label = string16();
+ field.name = ASCIIToUTF16("suffix");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("suffix3")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<PhoneField*>(NULL), field_.get());
@@ -306,32 +263,29 @@ TEST_F(PhoneFieldTest, ThreePartFaxNumberPrefixSuffix) {
field_type_map_.find(ASCIIToUTF16("areacode1")) != field_type_map_.end());
EXPECT_EQ(PHONE_FAX_CITY_CODE, field_type_map_[ASCIIToUTF16("areacode1")]);
ASSERT_TRUE(
- field_type_map_.find(ASCIIToUTF16("prefix1")) != field_type_map_.end());
- EXPECT_EQ(PHONE_FAX_NUMBER, field_type_map_[ASCIIToUTF16("prefix1")]);
+ field_type_map_.find(ASCIIToUTF16("prefix2")) != field_type_map_.end());
+ EXPECT_EQ(PHONE_FAX_NUMBER, field_type_map_[ASCIIToUTF16("prefix2")]);
ASSERT_TRUE(
- field_type_map_.find(ASCIIToUTF16("suffix1")) != field_type_map_.end());
- EXPECT_EQ(PHONE_FAX_NUMBER, field_type_map_[ASCIIToUTF16("suffix1")]);
+ field_type_map_.find(ASCIIToUTF16("suffix3")) != field_type_map_.end());
+ EXPECT_EQ(PHONE_FAX_NUMBER, field_type_map_[ASCIIToUTF16("suffix3")]);
}
TEST_F(PhoneFieldTest, CountryAndCityAndPhoneNumber) {
// Phone in format <country code>:3 - <city and number>:10
// The |maxlength| is considered, otherwise it's too broad.
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Phone Number"),
- ASCIIToUTF16("CountryCode"),
- string16(),
- ASCIIToUTF16("text"),
- 3,
- false),
- ASCIIToUTF16("country")));
- list_.push_back(
- new AutofillField(webkit_glue::FormField(ASCIIToUTF16("Phone Number"),
- ASCIIToUTF16("PhoneNumber"),
- string16(),
- ASCIIToUTF16("text"),
- 10,
- false),
- ASCIIToUTF16("phone")));
+ webkit_glue::FormField field;
+ field.form_control_type = ASCIIToUTF16("text");
+
+ field.label = ASCIIToUTF16("Phone Number");
+ field.name = ASCIIToUTF16("CountryCode");
+ field.max_length = 3;
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("country")));
+
+ field.label = ASCIIToUTF16("Phone Number");
+ field.name = ASCIIToUTF16("PhoneNumber");
+ field.max_length = 10;
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("phone")));
+
AutofillScanner scanner(list_.get());
field_.reset(Parse(&scanner));
ASSERT_NE(static_cast<PhoneField*>(NULL), field_.get());
diff --git a/chrome/browser/webdata/autofill_table_unittest.cc b/chrome/browser/webdata/autofill_table_unittest.cc
index 68ebd1c..70593bf 100644
--- a/chrome/browser/webdata/autofill_table_unittest.cc
+++ b/chrome/browser/webdata/autofill_table_unittest.cc
@@ -139,44 +139,23 @@ TEST_F(AutofillTableTest, Autofill) {
// Simulate the submission of a handful of entries in a field called "Name",
// some more often than others.
AutofillChangeList changes;
- EXPECT_TRUE(db.GetAutofillTable()->AddFormFieldValue(
- FormField(string16(),
- ASCIIToUTF16("Name"),
- ASCIIToUTF16("Superman"),
- string16(),
- 0,
- false),
- &changes));
+ FormField field;
+ field.name = ASCIIToUTF16("Name");
+ field.value = ASCIIToUTF16("Superman");
+ EXPECT_TRUE(db.GetAutofillTable()->AddFormFieldValue(field, &changes));
std::vector<string16> v;
for (int i = 0; i < 5; i++) {
- EXPECT_TRUE(db.GetAutofillTable()->AddFormFieldValue(
- FormField(string16(),
- ASCIIToUTF16("Name"),
- ASCIIToUTF16("Clark Kent"),
- string16(),
- 0,
- false),
- &changes));
+ field.value = ASCIIToUTF16("Clark Kent");
+ EXPECT_TRUE(db.GetAutofillTable()->AddFormFieldValue(field, &changes));
}
for (int i = 0; i < 3; i++) {
- EXPECT_TRUE(db.GetAutofillTable()->AddFormFieldValue(
- FormField(string16(),
- ASCIIToUTF16("Name"),
- ASCIIToUTF16("Clark Sutter"),
- string16(),
- 0,
- false),
- &changes));
+ field.value = ASCIIToUTF16("Clark Sutter");
+ EXPECT_TRUE(db.GetAutofillTable()->AddFormFieldValue(field, &changes));
}
for (int i = 0; i < 2; i++) {
- EXPECT_TRUE(db.GetAutofillTable()->AddFormFieldValue(
- FormField(string16(),
- ASCIIToUTF16("Favorite Color"),
- ASCIIToUTF16("Green"),
- string16(),
- 0,
- false),
- &changes));
+ field.name = ASCIIToUTF16("Favorite Color");
+ field.value = ASCIIToUTF16("Green");
+ EXPECT_TRUE(db.GetAutofillTable()->AddFormFieldValue(field, &changes));
}
int count = 0;
@@ -184,37 +163,24 @@ TEST_F(AutofillTableTest, Autofill) {
// We have added the name Clark Kent 5 times, so count should be 5 and pair_id
// should be somthing non-zero.
- EXPECT_TRUE(db.GetAutofillTable()->GetIDAndCountOfFormElement(
- FormField(string16(),
- ASCIIToUTF16("Name"),
- ASCIIToUTF16("Clark Kent"),
- string16(),
- 0,
- false),
- &pair_id, &count));
+ field.name = ASCIIToUTF16("Name");
+ field.value = ASCIIToUTF16("Clark Kent");
+ EXPECT_TRUE(db.GetAutofillTable()->GetIDAndCountOfFormElement(field, &pair_id,
+ &count));
EXPECT_EQ(5, count);
EXPECT_NE(0, pair_id);
// Storing in the data base should be case sensitive, so there should be no
// database entry for clark kent lowercase.
- EXPECT_TRUE(db.GetAutofillTable()->GetIDAndCountOfFormElement(
- FormField(string16(),
- ASCIIToUTF16("Name"),
- ASCIIToUTF16("clark kent"),
- string16(),
- 0,
- false),
- &pair_id, &count));
+ field.value = ASCIIToUTF16("clark kent");
+ EXPECT_TRUE(db.GetAutofillTable()->GetIDAndCountOfFormElement(field, &pair_id,
+ &count));
EXPECT_EQ(0, count);
- EXPECT_TRUE(db.GetAutofillTable()->GetIDAndCountOfFormElement(
- FormField(string16(),
- ASCIIToUTF16("Favorite Color"),
- ASCIIToUTF16("Green"),
- string16(),
- 0,
- false),
- &pair_id, &count));
+ field.name = ASCIIToUTF16("Favorite Color");
+ field.value = ASCIIToUTF16("Green");
+ EXPECT_TRUE(db.GetAutofillTable()->GetIDAndCountOfFormElement(field, &pair_id,
+ &count));
EXPECT_EQ(2, count);
// This is meant to get a list of suggestions for Name. The empty prefix
@@ -274,14 +240,10 @@ TEST_F(AutofillTableTest, Autofill) {
EXPECT_EQ(expected_changes[i], changes[i]);
}
- EXPECT_TRUE(db.GetAutofillTable()->GetIDAndCountOfFormElement(
- FormField(string16(),
- ASCIIToUTF16("Name"),
- ASCIIToUTF16("Clark Kent"),
- string16(),
- 0,
- false),
- &pair_id, &count));
+ field.name = ASCIIToUTF16("Name");
+ field.value = ASCIIToUTF16("Clark Kent");
+ EXPECT_TRUE(db.GetAutofillTable()->GetIDAndCountOfFormElement(field, &pair_id,
+ &count));
EXPECT_EQ(0, count);
EXPECT_TRUE(db.GetAutofillTable()->GetFormValuesForElementName(
@@ -290,38 +252,18 @@ TEST_F(AutofillTableTest, Autofill) {
// Now add some values with empty strings.
const string16 kValue = ASCIIToUTF16(" toto ");
- EXPECT_TRUE(db.GetAutofillTable()->AddFormFieldValue(
- FormField(string16(),
- ASCIIToUTF16("blank"),
- string16(),
- string16(),
- 0,
- false),
- &changes));
- EXPECT_TRUE(db.GetAutofillTable()->AddFormFieldValue(
- FormField(string16(),
- ASCIIToUTF16("blank"),
- ASCIIToUTF16(" "),
- string16(),
- 0,
- false),
- &changes));
- EXPECT_TRUE(db.GetAutofillTable()->AddFormFieldValue(
- FormField(string16(),
- ASCIIToUTF16("blank"),
- ASCIIToUTF16(" "),
- string16(),
- 0,
- false),
- &changes));
- EXPECT_TRUE(db.GetAutofillTable()->AddFormFieldValue(
- FormField(string16(),
- ASCIIToUTF16("blank"),
- kValue,
- string16(),
- 0,
- false),
- &changes));
+ field.name = ASCIIToUTF16("blank");
+ field.value = string16();
+ EXPECT_TRUE(db.GetAutofillTable()->AddFormFieldValue(field, &changes));
+ field.name = ASCIIToUTF16("blank");
+ field.value = ASCIIToUTF16(" ");
+ EXPECT_TRUE(db.GetAutofillTable()->AddFormFieldValue(field, &changes));
+ field.name = ASCIIToUTF16("blank");
+ field.value = ASCIIToUTF16(" ");
+ EXPECT_TRUE(db.GetAutofillTable()->AddFormFieldValue(field, &changes));
+ field.name = ASCIIToUTF16("blank");
+ field.value = kValue;
+ EXPECT_TRUE(db.GetAutofillTable()->AddFormFieldValue(field, &changes));
// They should be stored normally as the DB layer does not check for empty
// values.
@@ -350,24 +292,13 @@ TEST_F(AutofillTableTest, Autofill_RemoveBetweenChanges) {
Time t2 = t1 + one_day;
AutofillChangeList changes;
- EXPECT_TRUE(db.GetAutofillTable()->AddFormFieldValueTime(
- FormField(string16(),
- ASCIIToUTF16("Name"),
- ASCIIToUTF16("Superman"),
- string16(),
- 0,
- false),
- &changes,
- t1));
- EXPECT_TRUE(db.GetAutofillTable()->AddFormFieldValueTime(
- FormField(string16(),
- ASCIIToUTF16("Name"),
- ASCIIToUTF16("Superman"),
- string16(),
- 0,
- false),
- &changes,
- t2));
+ FormField field;
+ field.name = ASCIIToUTF16("Name");
+ field.value = ASCIIToUTF16("Superman");
+ EXPECT_TRUE(
+ db.GetAutofillTable()->AddFormFieldValueTime(field, &changes, t1));
+ EXPECT_TRUE(
+ db.GetAutofillTable()->AddFormFieldValueTime(field, &changes, t2));
changes.clear();
EXPECT_TRUE(db.GetAutofillTable()->RemoveFormElementsAddedBetween(
@@ -397,15 +328,11 @@ TEST_F(AutofillTableTest, Autofill_AddChanges) {
Time t2 = t1 + one_day;
AutofillChangeList changes;
- EXPECT_TRUE(db.GetAutofillTable()->AddFormFieldValueTime(
- FormField(string16(),
- ASCIIToUTF16("Name"),
- ASCIIToUTF16("Superman"),
- string16(),
- 0,
- false),
- &changes,
- t1));
+ FormField field;
+ field.name = ASCIIToUTF16("Name");
+ field.value = ASCIIToUTF16("Superman");
+ EXPECT_TRUE(
+ db.GetAutofillTable()->AddFormFieldValueTime(field, &changes, t1));
ASSERT_EQ(1U, changes.size());
EXPECT_EQ(AutofillChange(AutofillChange::ADD,
AutofillKey(ASCIIToUTF16("Name"),
@@ -413,15 +340,8 @@ TEST_F(AutofillTableTest, Autofill_AddChanges) {
changes[0]);
changes.clear();
- EXPECT_TRUE(db.GetAutofillTable()->AddFormFieldValueTime(
- FormField(string16(),
- ASCIIToUTF16("Name"),
- ASCIIToUTF16("Superman"),
- string16(),
- 0,
- false),
- &changes,
- t2));
+ EXPECT_TRUE(
+ db.GetAutofillTable()->AddFormFieldValueTime(field, &changes, t2));
ASSERT_EQ(1U, changes.size());
EXPECT_EQ(AutofillChange(AutofillChange::UPDATE,
AutofillKey(ASCIIToUTF16("Name"),
@@ -438,12 +358,9 @@ TEST_F(AutofillTableTest, Autofill_UpdateOneWithOneTimestamp) {
entries.push_back(entry);
ASSERT_TRUE(db.GetAutofillTable()->UpdateAutofillEntries(entries));
- FormField field(string16(),
- ASCIIToUTF16("foo"),
- ASCIIToUTF16("bar"),
- string16(),
- 0,
- false);
+ FormField field;
+ field.name = ASCIIToUTF16("foo");
+ field.value = ASCIIToUTF16("bar");
int64 pair_id;
int count;
ASSERT_TRUE(db.GetAutofillTable()->GetIDAndCountOfFormElement(
@@ -466,12 +383,9 @@ TEST_F(AutofillTableTest, Autofill_UpdateOneWithTwoTimestamps) {
entries.push_back(entry);
ASSERT_TRUE(db.GetAutofillTable()->UpdateAutofillEntries(entries));
- FormField field(string16(),
- ASCIIToUTF16("foo"),
- ASCIIToUTF16("bar"),
- string16(),
- 0,
- false);
+ FormField field;
+ field.name = ASCIIToUTF16("foo");
+ field.value = ASCIIToUTF16("bar");
int64 pair_id;
int count;
ASSERT_TRUE(db.GetAutofillTable()->GetIDAndCountOfFormElement(
@@ -514,12 +428,9 @@ TEST_F(AutofillTableTest, Autofill_UpdateTwo) {
entries.push_back(entry1);
ASSERT_TRUE(db.GetAutofillTable()->UpdateAutofillEntries(entries));
- FormField field0(string16(),
- ASCIIToUTF16("foo"),
- ASCIIToUTF16("bar0"),
- string16(),
- 0,
- false);
+ FormField field0;
+ field0.name = ASCIIToUTF16("foo");
+ field0.value = ASCIIToUTF16("bar0");
int64 pair_id;
int count;
ASSERT_TRUE(db.GetAutofillTable()->GetIDAndCountOfFormElement(
@@ -527,12 +438,9 @@ TEST_F(AutofillTableTest, Autofill_UpdateTwo) {
EXPECT_LE(0, pair_id);
EXPECT_EQ(1, count);
- FormField field1(string16(),
- ASCIIToUTF16("foo"),
- ASCIIToUTF16("bar1"),
- string16(),
- 0,
- false);
+ FormField field1;
+ field1.name = ASCIIToUTF16("foo");
+ field1.value = ASCIIToUTF16("bar1");
ASSERT_TRUE(db.GetAutofillTable()->GetIDAndCountOfFormElement(
field1, &pair_id, &count));
EXPECT_LE(0, pair_id);
@@ -545,14 +453,10 @@ TEST_F(AutofillTableTest, Autofill_UpdateReplace) {
AutofillChangeList changes;
// Add a form field. This will be replaced.
- EXPECT_TRUE(db.GetAutofillTable()->AddFormFieldValue(
- FormField(string16(),
- ASCIIToUTF16("Name"),
- ASCIIToUTF16("Superman"),
- string16(),
- 0,
- false),
- &changes));
+ FormField field;
+ field.name = ASCIIToUTF16("Name");
+ field.value = ASCIIToUTF16("Superman");
+ EXPECT_TRUE(db.GetAutofillTable()->AddFormFieldValue(field, &changes));
AutofillEntry entry(MakeAutofillEntry("Name", "Superman", 1, 2));
std::vector<AutofillEntry> entries;
@@ -575,15 +479,10 @@ TEST_F(AutofillTableTest, Autofill_UpdateDontReplace) {
AutofillChangeList changes;
// Add a form field. This will NOT be replaced.
- EXPECT_TRUE(db.GetAutofillTable()->AddFormFieldValueTime(
- FormField(string16(),
- existing.key().name(),
- existing.key().value(),
- string16(),
- 0,
- false),
- &changes,
- t));
+ FormField field;
+ field.name = existing.key().name();
+ field.value = existing.key().value();
+ EXPECT_TRUE(db.GetAutofillTable()->AddFormFieldValueTime(field, &changes, t));
AutofillEntry entry(MakeAutofillEntry("Name", "Clark Kent", 1, 2));
std::vector<AutofillEntry> entries;
entries.push_back(entry);
@@ -609,30 +508,22 @@ TEST_F(AutofillTableTest, Autofill_AddFormFieldValues) {
// first value of each gets added. Related to security issue:
// http://crbug.com/51727.
std::vector<FormField> elements;
- elements.push_back(FormField(string16(),
- ASCIIToUTF16("firstname"),
- ASCIIToUTF16("Joe"),
- string16(),
- 0,
- false));
- elements.push_back(FormField(string16(),
- ASCIIToUTF16("firstname"),
- ASCIIToUTF16("Jane"),
- string16(),
- 0,
- false));
- elements.push_back(FormField(string16(),
- ASCIIToUTF16("lastname"),
- ASCIIToUTF16("Smith"),
- string16(),
- 0,
- false));
- elements.push_back(FormField(string16(),
- ASCIIToUTF16("lastname"),
- ASCIIToUTF16("Jones"),
- string16(),
- 0,
- false));
+ FormField field;
+ field.name = ASCIIToUTF16("firstname");
+ field.value = ASCIIToUTF16("Joe");
+ elements.push_back(field);
+
+ field.name = ASCIIToUTF16("firstname");
+ field.value = ASCIIToUTF16("Jane");
+ elements.push_back(field);
+
+ field.name = ASCIIToUTF16("lastname");
+ field.value = ASCIIToUTF16("Smith");
+ elements.push_back(field);
+
+ field.name = ASCIIToUTF16("lastname");
+ field.value = ASCIIToUTF16("Jones");
+ elements.push_back(field);
std::vector<AutofillChange> changes;
db.GetAutofillTable()->AddFormFieldValuesTime(elements, &changes, t);
@@ -1462,15 +1353,12 @@ TEST_F(AutofillTableTest, Autofill_GetAllAutofillEntries_OneResult) {
time_t start = 0;
std::vector<Time> timestamps1;
- EXPECT_TRUE(db.GetAutofillTable()->AddFormFieldValueTime(
- FormField(string16(),
- ASCIIToUTF16("Name"),
- ASCIIToUTF16("Superman"),
- string16(),
- 0,
- false),
- &changes,
- Time::FromTimeT(start)));
+ FormField field;
+ field.name = ASCIIToUTF16("Name");
+ field.value = ASCIIToUTF16("Superman");
+ EXPECT_TRUE(
+ db.GetAutofillTable()->AddFormFieldValueTime(field, &changes,
+ Time::FromTimeT(start)));
timestamps1.push_back(Time::FromTimeT(start));
std::string key1("NameSuperman");
name_value_times_map.insert(std::pair<std::string,
@@ -1507,15 +1395,12 @@ TEST_F(AutofillTableTest, Autofill_GetAllAutofillEntries_TwoDistinct) {
time_t start = 0;
std::vector<Time> timestamps1;
- EXPECT_TRUE(db.GetAutofillTable()->AddFormFieldValueTime(
- FormField(string16(),
- ASCIIToUTF16("Name"),
- ASCIIToUTF16("Superman"),
- string16(),
- 0,
- false),
- &changes,
- Time::FromTimeT(start)));
+ FormField field;
+ field.name = ASCIIToUTF16("Name");
+ field.value = ASCIIToUTF16("Superman");
+ EXPECT_TRUE(
+ db.GetAutofillTable()->AddFormFieldValueTime(field, &changes,
+ Time::FromTimeT(start)));
timestamps1.push_back(Time::FromTimeT(start));
std::string key1("NameSuperman");
name_value_times_map.insert(std::pair<std::string,
@@ -1523,15 +1408,11 @@ TEST_F(AutofillTableTest, Autofill_GetAllAutofillEntries_TwoDistinct) {
start++;
std::vector<Time> timestamps2;
- EXPECT_TRUE(db.GetAutofillTable()->AddFormFieldValueTime(
- FormField(string16(),
- ASCIIToUTF16("Name"),
- ASCIIToUTF16("Clark Kent"),
- string16(),
- 0,
- false),
- &changes,
- Time::FromTimeT(start)));
+ field.name = ASCIIToUTF16("Name");
+ field.value = ASCIIToUTF16("Clark Kent");
+ EXPECT_TRUE(
+ db.GetAutofillTable()->AddFormFieldValueTime(field, &changes,
+ Time::FromTimeT(start)));
timestamps2.push_back(Time::FromTimeT(start));
std::string key2("NameClark Kent");
name_value_times_map.insert(std::pair<std::string,
@@ -1572,15 +1453,12 @@ TEST_F(AutofillTableTest, Autofill_GetAllAutofillEntries_TwoSame) {
time_t start = 0;
std::vector<Time> timestamps;
for (int i = 0; i < 2; i++) {
- EXPECT_TRUE(db.GetAutofillTable()->AddFormFieldValueTime(
- FormField(string16(),
- ASCIIToUTF16("Name"),
- ASCIIToUTF16("Superman"),
- string16(),
- 0,
- false),
- &changes,
- Time::FromTimeT(start)));
+ FormField field;
+ field.name = ASCIIToUTF16("Name");
+ field.value = ASCIIToUTF16("Superman");
+ EXPECT_TRUE(
+ db.GetAutofillTable()->AddFormFieldValueTime(field, &changes,
+ Time::FromTimeT(start)));
timestamps.push_back(Time::FromTimeT(start));
start++;
}
diff --git a/chrome/browser/webdata/web_data_service_unittest.cc b/chrome/browser/webdata/web_data_service_unittest.cc
index b911d71..3a399b8 100644
--- a/chrome/browser/webdata/web_data_service_unittest.cc
+++ b/chrome/browser/webdata/web_data_service_unittest.cc
@@ -129,13 +129,10 @@ class WebDataServiceAutofillTest : public WebDataServiceTest {
void AppendFormField(const string16& name,
const string16& value,
std::vector<webkit_glue::FormField>* form_fields) {
- form_fields->push_back(
- webkit_glue::FormField(string16(),
- name,
- value,
- string16(),
- 0,
- false));
+ webkit_glue::FormField field;
+ field.name = name;
+ field.value = value;
+ form_fields->push_back(field);
}
string16 name1_;
diff --git a/chrome/chrome_tests.gypi b/chrome/chrome_tests.gypi
index ead20b3..0b281a9 100644
--- a/chrome/chrome_tests.gypi
+++ b/chrome/chrome_tests.gypi
@@ -2615,7 +2615,7 @@
'renderer/autofill/autofill_browsertest.cc',
'renderer/autofill/form_autocomplete_browsertest.cc',
'renderer/autofill/form_manager_browsertest.cc',
- 'renderer/autofill/password_autofill_manager_unittest.cc',
+ 'renderer/autofill/password_autofill_manager_browsertest.cc',
'renderer/content_settings_observer_browsertest.cc',
'renderer/page_click_tracker_browsertest.cc',
'renderer/print_web_view_helper_browsertest.cc',
diff --git a/chrome/renderer/autofill/autofill_browsertest.cc b/chrome/renderer/autofill/autofill_browsertest.cc
index 671698c..ba91d65 100644
--- a/chrome/renderer/autofill/autofill_browsertest.cc
+++ b/chrome/renderer/autofill/autofill_browsertest.cc
@@ -46,27 +46,26 @@ TEST_F(RenderViewTest, SendForms) {
const std::vector<FormData>& forms = params.a;
ASSERT_EQ(1UL, forms.size());
ASSERT_EQ(3UL, forms[0].fields.size());
- EXPECT_TRUE(forms[0].fields[0].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("firstname"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false))) << forms[0].fields[0];
- EXPECT_TRUE(forms[0].fields[1].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("middlename"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false))) << forms[0].fields[1];
- EXPECT_TRUE(forms[0].fields[2].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("state"),
- ASCIIToUTF16("?"),
- ASCIIToUTF16("select-one"),
- 0,
- false))) << forms[0].fields[2];
+
+ FormField expected;
+
+ expected.name = ASCIIToUTF16("firstname");
+ expected.value = string16();
+ expected.form_control_type = ASCIIToUTF16("text");
+ expected.max_length = WebInputElement::defaultMaxLength();
+ EXPECT_FORM_FIELD_EQUALS(expected, forms[0].fields[0]);
+
+ expected.name = ASCIIToUTF16("middlename");
+ expected.value = string16();
+ expected.form_control_type = ASCIIToUTF16("text");
+ expected.max_length = WebInputElement::defaultMaxLength();
+ EXPECT_FORM_FIELD_EQUALS(expected, forms[0].fields[1]);
+
+ expected.name = ASCIIToUTF16("state");
+ expected.value = ASCIIToUTF16("?");
+ expected.form_control_type = ASCIIToUTF16("select-one");
+ expected.max_length = 0;
+ EXPECT_FORM_FIELD_EQUALS(expected, forms[0].fields[2]);
// Verify that |didAcceptAutofillSuggestion()| sends the expected number of
// fields.
@@ -93,27 +92,24 @@ TEST_F(RenderViewTest, SendForms) {
AutofillHostMsg_FillAutofillFormData::Read(message2, &params2);
const FormData& form2 = params2.b;
ASSERT_EQ(3UL, form2.fields.size());
- EXPECT_TRUE(form2.fields[0].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("firstname"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false))) << form2.fields[0];
- EXPECT_TRUE(form2.fields[1].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("middlename"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false))) << form2.fields[1];
- EXPECT_TRUE(form2.fields[2].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("state"),
- ASCIIToUTF16("?"),
- ASCIIToUTF16("select-one"),
- 0,
- false))) << form2.fields[2];
+
+ expected.name = ASCIIToUTF16("firstname");
+ expected.value = string16();
+ expected.form_control_type = ASCIIToUTF16("text");
+ expected.max_length = WebInputElement::defaultMaxLength();
+ EXPECT_FORM_FIELD_EQUALS(expected, form2.fields[0]);
+
+ expected.name = ASCIIToUTF16("middlename");
+ expected.value = string16();
+ expected.form_control_type = ASCIIToUTF16("text");
+ expected.max_length = WebInputElement::defaultMaxLength();
+ EXPECT_FORM_FIELD_EQUALS(expected, form2.fields[1]);
+
+ expected.name = ASCIIToUTF16("state");
+ expected.value = ASCIIToUTF16("?");
+ expected.form_control_type = ASCIIToUTF16("select-one");
+ expected.max_length = 0;
+ EXPECT_FORM_FIELD_EQUALS(expected, form2.fields[2]);
}
TEST_F(RenderViewTest, FillFormElement) {
diff --git a/chrome/renderer/autofill/form_manager_browsertest.cc b/chrome/renderer/autofill/form_manager_browsertest.cc
index 6d16054..f39f050 100644
--- a/chrome/renderer/autofill/form_manager_browsertest.cc
+++ b/chrome/renderer/autofill/form_manager_browsertest.cc
@@ -4,8 +4,10 @@
#include <vector>
+#include "base/format_macros.h"
#include "base/string16.h"
#include "base/string_util.h"
+#include "base/stringprintf.h"
#include "base/utf_string_conversions.h"
#include "chrome/renderer/autofill/form_manager.h"
#include "chrome/test/base/render_view_test.h"
@@ -80,14 +82,14 @@ class FormManagerTest : public RenderViewTest {
for (size_t i = 0; i < labels.size(); ++i) {
int max_length = control_types[i] == ASCIIToUTF16("text") ?
WebInputElement::defaultMaxLength() : 0;
- FormField expected = FormField(labels[i],
- names[i],
- values[i],
- control_types[i],
- max_length,
- false);
- EXPECT_TRUE(fields[i].StrictlyEqualsHack(expected))
- << "Expected \"" << expected << "\", got \"" << fields[i] << "\"";
+ FormField expected;
+ expected.label = labels[i];
+ expected.name = names[i];
+ expected.value = values[i];
+ expected.form_control_type = control_types[i];
+ expected.max_length = max_length;
+ SCOPED_TRACE(StringPrintf("i: %" PRIuS, i));
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[i]);
}
}
@@ -126,24 +128,23 @@ TEST_F(FormManagerTest, WebFormControlElementToFormField) {
FormManager::WebFormControlElementToFormField(element,
FormManager::EXTRACT_NONE,
&result1);
- EXPECT_TRUE(result1.StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("element"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
+
+ FormField expected;
+ expected.form_control_type = ASCIIToUTF16("text");
+ expected.max_length = WebInputElement::defaultMaxLength();
+
+ expected.name = ASCIIToUTF16("element");
+ expected.value = string16();
+ EXPECT_FORM_FIELD_EQUALS(expected, result1);
+
FormField result2;
FormManager::WebFormControlElementToFormField(element,
FormManager::EXTRACT_VALUE,
&result2);
- EXPECT_TRUE(result2.StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("element"),
- ASCIIToUTF16("value"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
+
+ expected.name = ASCIIToUTF16("element");
+ expected.value = ASCIIToUTF16("value");
+ EXPECT_FORM_FIELD_EQUALS(expected, result2);
}
// We should be able to extract a text field with autocomplete="off".
@@ -160,13 +161,13 @@ TEST_F(FormManagerTest, WebFormControlElementToFormFieldAutocompleteOff) {
FormManager::WebFormControlElementToFormField(element,
FormManager::EXTRACT_VALUE,
&result);
- EXPECT_TRUE(result.StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("element"),
- ASCIIToUTF16("value"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
+
+ FormField expected;
+ expected.name = ASCIIToUTF16("element");
+ expected.value = ASCIIToUTF16("value");
+ expected.form_control_type = ASCIIToUTF16("text");
+ expected.max_length = WebInputElement::defaultMaxLength();
+ EXPECT_FORM_FIELD_EQUALS(expected, result);
}
// We should be able to extract a text field with maxlength specified.
@@ -183,12 +184,13 @@ TEST_F(FormManagerTest, WebFormControlElementToFormFieldMaxLength) {
FormManager::WebFormControlElementToFormField(element,
FormManager::EXTRACT_VALUE,
&result);
- EXPECT_TRUE(result.StrictlyEqualsHack(FormField(string16(),
- ASCIIToUTF16("element"),
- ASCIIToUTF16("value"),
- ASCIIToUTF16("text"),
- 5,
- false)));
+
+ FormField expected;
+ expected.name = ASCIIToUTF16("element");
+ expected.value = ASCIIToUTF16("value");
+ expected.form_control_type = ASCIIToUTF16("text");
+ expected.max_length = 5;
+ EXPECT_FORM_FIELD_EQUALS(expected, result);
}
// We should be able to extract a text field that has been autofilled.
@@ -205,13 +207,14 @@ TEST_F(FormManagerTest, WebFormControlElementToFormFieldAutofilled) {
FormManager::WebFormControlElementToFormField(element,
FormManager::EXTRACT_VALUE,
&result);
- EXPECT_TRUE(result.StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("element"),
- ASCIIToUTF16("value"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- true)));
+
+ FormField expected;
+ expected.name = ASCIIToUTF16("element");
+ expected.value = ASCIIToUTF16("value");
+ expected.form_control_type = ASCIIToUTF16("text");
+ expected.max_length = WebInputElement::defaultMaxLength();
+ expected.is_autofilled = true;
+ EXPECT_FORM_FIELD_EQUALS(expected, result);
}
// We should be able to extract a <select> field.
@@ -230,34 +233,31 @@ TEST_F(FormManagerTest, WebFormControlElementToFormFieldSelect) {
FormManager::WebFormControlElementToFormField(element,
FormManager::EXTRACT_VALUE,
&result1);
- EXPECT_TRUE(result1.StrictlyEqualsHack(FormField(string16(),
- ASCIIToUTF16("element"),
- ASCIIToUTF16("CA"),
- ASCIIToUTF16("select-one"),
- 0,
- false)));
+
+ FormField expected;
+ expected.name = ASCIIToUTF16("element");
+ expected.max_length = 0;
+ expected.form_control_type = ASCIIToUTF16("select-one");
+
+ expected.value = ASCIIToUTF16("CA");
+ EXPECT_FORM_FIELD_EQUALS(expected, result1);
+
FormField result2;
FormManager::WebFormControlElementToFormField(
element,
static_cast<FormManager::ExtractMask>(FormManager::EXTRACT_VALUE |
FormManager::EXTRACT_OPTION_TEXT),
&result2);
- EXPECT_TRUE(result2.StrictlyEqualsHack(FormField(string16(),
- ASCIIToUTF16("element"),
- ASCIIToUTF16("California"),
- ASCIIToUTF16("select-one"),
- 0,
- false)));
+ expected.value = ASCIIToUTF16("California");
+ EXPECT_FORM_FIELD_EQUALS(expected, result2);
+
FormField result3;
FormManager::WebFormControlElementToFormField(element,
FormManager::EXTRACT_OPTIONS,
&result3);
- EXPECT_TRUE(result3.StrictlyEqualsHack(FormField(string16(),
- ASCIIToUTF16("element"),
- string16(),
- ASCIIToUTF16("select-one"),
- 0,
- false)));
+ expected.value = string16();
+ EXPECT_FORM_FIELD_EQUALS(expected, result3);
+
ASSERT_EQ(2U, result3.option_values.size());
ASSERT_EQ(2U, result3.option_contents.size());
EXPECT_EQ(ASCIIToUTF16("CA"), result3.option_values[0]);
@@ -266,7 +266,7 @@ TEST_F(FormManagerTest, WebFormControlElementToFormFieldSelect) {
EXPECT_EQ(ASCIIToUTF16("Texas"), result3.option_contents[1]);
}
-// We should be not extract the value for non-text and non-select fields.
+// We should not extract the value for non-text and non-select fields.
TEST_F(FormManagerTest, WebFormControlElementToFormFieldInvalidType) {
LoadHTML("<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">"
" <INPUT type=\"hidden\" id=\"hidden\" value=\"apple\"/>"
@@ -285,60 +285,50 @@ TEST_F(FormManagerTest, WebFormControlElementToFormFieldInvalidType) {
FormManager::WebFormControlElementToFormField(element,
FormManager::EXTRACT_VALUE,
&result);
- EXPECT_TRUE(result.StrictlyEqualsHack(FormField(string16(),
- ASCIIToUTF16("hidden"),
- string16(),
- ASCIIToUTF16("hidden"),
- 0,
- false)));
+
+ FormField expected;
+ expected.max_length = 0;
+
+ expected.name = ASCIIToUTF16("hidden");
+ expected.form_control_type = ASCIIToUTF16("hidden");
+ EXPECT_FORM_FIELD_EQUALS(expected, result);
web_element = frame->document().getElementById("password");
element = web_element.to<WebFormControlElement>();
FormManager::WebFormControlElementToFormField(element,
FormManager::EXTRACT_VALUE,
&result);
- EXPECT_TRUE(result.StrictlyEqualsHack(FormField(string16(),
- ASCIIToUTF16("password"),
- string16(),
- ASCIIToUTF16("password"),
- 0,
- false)));
+ expected.name = ASCIIToUTF16("password");
+ expected.form_control_type = ASCIIToUTF16("password");
+ EXPECT_FORM_FIELD_EQUALS(expected, result);
web_element = frame->document().getElementById("checkbox");
element = web_element.to<WebFormControlElement>();
FormManager::WebFormControlElementToFormField(element,
FormManager::EXTRACT_VALUE,
&result);
- EXPECT_TRUE(result.StrictlyEqualsHack(FormField(string16(),
- ASCIIToUTF16("checkbox"),
- string16(),
- ASCIIToUTF16("checkbox"),
- 0,
- false)));
+ expected.name = ASCIIToUTF16("checkbox");
+ expected.form_control_type = ASCIIToUTF16("checkbox");
+ EXPECT_FORM_FIELD_EQUALS(expected, result);
web_element = frame->document().getElementById("radio");
element = web_element.to<WebFormControlElement>();
FormManager::WebFormControlElementToFormField(element,
FormManager::EXTRACT_VALUE,
&result);
- EXPECT_TRUE(result.StrictlyEqualsHack(FormField(string16(),
- ASCIIToUTF16("radio"),
- string16(),
- ASCIIToUTF16("radio"),
- 0,
- false)));
+ expected.name = ASCIIToUTF16("radio");
+ expected.form_control_type = ASCIIToUTF16("radio");
+ EXPECT_FORM_FIELD_EQUALS(expected, result);
+
web_element = frame->document().getElementById("submit");
element = web_element.to<WebFormControlElement>();
FormManager::WebFormControlElementToFormField(element,
FormManager::EXTRACT_VALUE,
&result);
- EXPECT_TRUE(result.StrictlyEqualsHack(FormField(string16(),
- ASCIIToUTF16("submit"),
- string16(),
- ASCIIToUTF16("submit"),
- 0,
- false)));
+ expected.name = ASCIIToUTF16("submit");
+ expected.form_control_type = ASCIIToUTF16("submit");
+ EXPECT_FORM_FIELD_EQUALS(expected, result);
}
TEST_F(FormManagerTest, WebFormElementToFormData) {
@@ -373,27 +363,25 @@ TEST_F(FormManagerTest, WebFormElementToFormData) {
const std::vector<FormField>& fields = form.fields;
ASSERT_EQ(3U, fields.size());
- EXPECT_TRUE(fields[0].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("firstname"),
- ASCIIToUTF16("John"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
- EXPECT_TRUE(fields[1].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("lastname"),
- ASCIIToUTF16("Smith"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
- EXPECT_TRUE(fields[2].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("state"),
- ASCIIToUTF16("CA"),
- ASCIIToUTF16("select-one"),
- 0,
- false)));
+
+ FormField expected;
+ expected.name = ASCIIToUTF16("firstname");
+ expected.value = ASCIIToUTF16("John");
+ expected.form_control_type = ASCIIToUTF16("text");
+ expected.max_length = WebInputElement::defaultMaxLength();
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[0]);
+
+ expected.name = ASCIIToUTF16("lastname");
+ expected.value = ASCIIToUTF16("Smith");
+ expected.form_control_type = ASCIIToUTF16("text");
+ expected.max_length = WebInputElement::defaultMaxLength();
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[1]);
+
+ expected.name = ASCIIToUTF16("state");
+ expected.value = ASCIIToUTF16("CA");
+ expected.form_control_type = ASCIIToUTF16("select-one");
+ expected.max_length = 0;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[2]);
}
TEST_F(FormManagerTest, ExtractForms) {
@@ -436,27 +424,22 @@ TEST_F(FormManagerTest, ExtractMultipleForms) {
const std::vector<FormField>& fields = form.fields;
ASSERT_EQ(3U, fields.size());
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("firstname"),
- ASCIIToUTF16("John"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[0]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("lastname"),
- ASCIIToUTF16("Smith"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[1]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("email"),
- ASCIIToUTF16("john@example.com"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[2]);
+
+ FormField expected;
+ expected.form_control_type = ASCIIToUTF16("text");
+ expected.max_length = WebInputElement::defaultMaxLength();
+
+ expected.name = ASCIIToUTF16("firstname");
+ expected.value = ASCIIToUTF16("John");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[0]);
+
+ expected.name = ASCIIToUTF16("lastname");
+ expected.value = ASCIIToUTF16("Smith");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[1]);
+
+ expected.name = ASCIIToUTF16("email");
+ expected.value = ASCIIToUTF16("john@example.com");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[2]);
// Second form.
const FormData& form2 = forms[1];
@@ -466,27 +449,18 @@ TEST_F(FormManagerTest, ExtractMultipleForms) {
const std::vector<FormField>& fields2 = form2.fields;
ASSERT_EQ(3U, fields2.size());
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("firstname"),
- ASCIIToUTF16("Jack"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields2[0]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("lastname"),
- ASCIIToUTF16("Adams"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields2[1]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("email"),
- ASCIIToUTF16("jack@example.com"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[2]);
+
+ expected.name = ASCIIToUTF16("firstname");
+ expected.value = ASCIIToUTF16("Jack");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields2[0]);
+
+ expected.name = ASCIIToUTF16("lastname");
+ expected.value = ASCIIToUTF16("Adams");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields2[1]);
+
+ expected.name = ASCIIToUTF16("email");
+ expected.value = ASCIIToUTF16("jack@example.com");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields2[2]);
}
// We should not extract a form if it has too few fillable fields.
@@ -555,7 +529,7 @@ TEST_F(FormManagerTest, WebFormElementToFormDataAutocomplete) {
FormData form;
EXPECT_TRUE(FormManager::WebFormElementToFormData(
- web_form, FormManager::REQUIRE_AUTOCOMPLETE, FormManager::EXTRACT_NONE,
+ web_form, FormManager::REQUIRE_AUTOCOMPLETE, FormManager::EXTRACT_VALUE,
&form));
EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name);
@@ -564,27 +538,22 @@ TEST_F(FormManagerTest, WebFormElementToFormDataAutocomplete) {
const std::vector<FormField>& fields = form.fields;
ASSERT_EQ(3U, fields.size());
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("middlename"),
- ASCIIToUTF16("Jack"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[0]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("lastname"),
- ASCIIToUTF16("Smith"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[1]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("email"),
- ASCIIToUTF16("john@example.com"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[2]);
+
+ FormField expected;
+ expected.form_control_type = ASCIIToUTF16("text");
+ expected.max_length = WebInputElement::defaultMaxLength();
+
+ expected.name = ASCIIToUTF16("middlename");
+ expected.value = ASCIIToUTF16("Jack");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[0]);
+
+ expected.name = ASCIIToUTF16("lastname");
+ expected.value = ASCIIToUTF16("Smith");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[1]);
+
+ expected.name = ASCIIToUTF16("email");
+ expected.value = ASCIIToUTF16("john@example.com");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[2]);
}
}
@@ -608,7 +577,7 @@ TEST_F(FormManagerTest, WebFormElementToFormDataEnabled) {
FormData form;
EXPECT_TRUE(FormManager::WebFormElementToFormData(
- web_form, FormManager::REQUIRE_ENABLED, FormManager::EXTRACT_NONE,
+ web_form, FormManager::REQUIRE_ENABLED, FormManager::EXTRACT_VALUE,
&form));
EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name);
@@ -617,27 +586,22 @@ TEST_F(FormManagerTest, WebFormElementToFormDataEnabled) {
const std::vector<FormField>& fields = form.fields;
ASSERT_EQ(3U, fields.size());
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("middlename"),
- ASCIIToUTF16("Jack"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[0]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("lastname"),
- ASCIIToUTF16("Smith"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[1]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("email"),
- ASCIIToUTF16("jack@example.com"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[2]);
+
+ FormField expected;
+ expected.form_control_type = ASCIIToUTF16("text");
+ expected.max_length = WebInputElement::defaultMaxLength();
+
+ expected.name = ASCIIToUTF16("middlename");
+ expected.value = ASCIIToUTF16("Jack");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[0]);
+
+ expected.name = ASCIIToUTF16("lastname");
+ expected.value = ASCIIToUTF16("Smith");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[1]);
+
+ expected.name = ASCIIToUTF16("email");
+ expected.value = ASCIIToUTF16("jack@example.com");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[2]);
}
TEST_F(FormManagerTest, FindForm) {
@@ -670,27 +634,22 @@ TEST_F(FormManagerTest, FindForm) {
const std::vector<FormField>& fields = form.fields;
ASSERT_EQ(3U, fields.size());
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("firstname"),
- ASCIIToUTF16("John"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[0]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("lastname"),
- ASCIIToUTF16("Smith"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[1]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("email"),
- ASCIIToUTF16("john@example.com"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[2]);
+
+ FormField expected;
+ expected.form_control_type = ASCIIToUTF16("text");
+ expected.max_length = WebInputElement::defaultMaxLength();
+
+ expected.name = ASCIIToUTF16("firstname");
+ expected.value = ASCIIToUTF16("John");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[0]);
+
+ expected.name = ASCIIToUTF16("lastname");
+ expected.value = ASCIIToUTF16("Smith");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[1]);
+
+ expected.name = ASCIIToUTF16("email");
+ expected.value = ASCIIToUTF16("john@example.com");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[2]);
}
TEST_F(FormManagerTest, FillForm) {
@@ -730,62 +689,42 @@ TEST_F(FormManagerTest, FillForm) {
const std::vector<FormField>& fields = form.fields;
ASSERT_EQ(8U, fields.size());
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("firstname"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[0]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("lastname"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[1]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("notempty"),
- ASCIIToUTF16("Hi"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[2]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("noautocomplete"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[3]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("notenabled"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[4]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("readonly"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[5]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("invisible"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[6]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("displaynone"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[7]);
+
+ FormField expected;
+ expected.form_control_type = ASCIIToUTF16("text");
+ expected.max_length = WebInputElement::defaultMaxLength();
+
+ expected.name = ASCIIToUTF16("firstname");
+ expected.value = string16();
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[0]);
+
+ expected.name = ASCIIToUTF16("lastname");
+ expected.value = string16();
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[1]);
+
+ expected.name = ASCIIToUTF16("notempty");
+ expected.value = ASCIIToUTF16("Hi");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[2]);
+
+ expected.name = ASCIIToUTF16("noautocomplete");
+ expected.value = string16();
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[3]);
+
+ expected.name = ASCIIToUTF16("notenabled");
+ expected.value = string16();
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[4]);
+
+ expected.name = ASCIIToUTF16("readonly");
+ expected.value = string16();
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[5]);
+
+ expected.name = ASCIIToUTF16("invisible");
+ expected.value = string16();
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[6]);
+
+ expected.name = ASCIIToUTF16("displaynone");
+ expected.value = string16();
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[7]);
// Fill the form.
form.fields[0].value = ASCIIToUTF16("Wyatt");
@@ -881,41 +820,30 @@ TEST_F(FormManagerTest, PreviewForm) {
const std::vector<FormField>& fields = form.fields;
ASSERT_EQ(5U, fields.size());
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("firstname"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[0]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("lastname"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[1]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("notempty"),
- ASCIIToUTF16("Hi"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[2]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("noautocomplete"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[3]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("notenabled"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[4]);
+
+ FormField expected;
+ expected.form_control_type = ASCIIToUTF16("text");
+ expected.max_length = WebInputElement::defaultMaxLength();
+
+ expected.name = ASCIIToUTF16("firstname");
+ expected.value = string16();
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[0]);
+
+ expected.name = ASCIIToUTF16("lastname");
+ expected.value = string16();
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[1]);
+
+ expected.name = ASCIIToUTF16("notempty");
+ expected.value = ASCIIToUTF16("Hi");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[2]);
+
+ expected.name = ASCIIToUTF16("noautocomplete");
+ expected.value = string16();
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[3]);
+
+ expected.name = ASCIIToUTF16("notenabled");
+ expected.value = string16();
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[4]);
// Preview the form.
form.fields[0].value = ASCIIToUTF16("Wyatt");
@@ -1123,6 +1051,7 @@ TEST_F(FormManagerTest, LabelsInferredFromTableCellTH) {
"</TABLE>"
"</FORM>");
}
+
TEST_F(FormManagerTest, LabelsInferredFromTableCellNested) {
std::vector<string16> labels, names, values;
@@ -1846,27 +1775,24 @@ TEST_F(FormManagerTest, FillFormMaxLength) {
const std::vector<FormField>& fields = form.fields;
ASSERT_EQ(3U, fields.size());
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("firstname"),
- string16(),
- ASCIIToUTF16("text"),
- 5,
- false),
- fields[0]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("lastname"),
- string16(),
- ASCIIToUTF16("text"),
- 7,
- false),
- fields[1]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("email"),
- string16(),
- ASCIIToUTF16("text"),
- 9,
- false),
- fields[2]);
+
+ FormField expected;
+ expected.form_control_type = ASCIIToUTF16("text");
+
+ expected.name = ASCIIToUTF16("firstname");
+ expected.max_length = 5;
+ expected.is_autofilled = false;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[0]);
+
+ expected.name = ASCIIToUTF16("lastname");
+ expected.max_length = 7;
+ expected.is_autofilled = false;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[1]);
+
+ expected.name = ASCIIToUTF16("email");
+ expected.max_length = 9;
+ expected.is_autofilled = false;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[2]);
// Fill the form.
form.fields[0].value = ASCIIToUTF16("Brother");
@@ -1884,24 +1810,26 @@ TEST_F(FormManagerTest, FillFormMaxLength) {
const std::vector<FormField>& fields2 = form2.fields;
ASSERT_EQ(3U, fields2.size());
- EXPECT_TRUE(fields2[0].StrictlyEqualsHack(FormField(string16(),
- ASCIIToUTF16("firstname"),
- ASCIIToUTF16("Broth"),
- ASCIIToUTF16("text"),
- 5,
- false)));
- EXPECT_TRUE(fields2[1].StrictlyEqualsHack(FormField(string16(),
- ASCIIToUTF16("lastname"),
- ASCIIToUTF16("Jonatha"),
- ASCIIToUTF16("text"),
- 7,
- false)));
- EXPECT_TRUE(fields2[2].StrictlyEqualsHack(FormField(string16(),
- ASCIIToUTF16("email"),
- ASCIIToUTF16("brotherj@"),
- ASCIIToUTF16("text"),
- 9,
- false)));
+
+ expected.form_control_type = ASCIIToUTF16("text");
+
+ expected.name = ASCIIToUTF16("firstname");
+ expected.value = ASCIIToUTF16("Broth");
+ expected.max_length = 5;
+ expected.is_autofilled = true;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields2[0]);
+
+ expected.name = ASCIIToUTF16("lastname");
+ expected.value = ASCIIToUTF16("Jonatha");
+ expected.max_length = 7;
+ expected.is_autofilled = true;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields2[1]);
+
+ expected.name = ASCIIToUTF16("email");
+ expected.value = ASCIIToUTF16("brotherj@");
+ expected.max_length = 9;
+ expected.is_autofilled = true;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields2[2]);
}
// This test uses negative values of the maxlength attribute for input elements.
@@ -1937,27 +1865,19 @@ TEST_F(FormManagerTest, FillFormNegativeMaxLength) {
const std::vector<FormField>& fields = form.fields;
ASSERT_EQ(3U, fields.size());
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("firstname"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[0]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("lastname"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[1]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("email"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[2]);
+
+ FormField expected;
+ expected.form_control_type = ASCIIToUTF16("text");
+ expected.max_length = WebInputElement::defaultMaxLength();
+
+ expected.name = ASCIIToUTF16("firstname");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[0]);
+
+ expected.name = ASCIIToUTF16("lastname");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[1]);
+
+ expected.name = ASCIIToUTF16("email");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[2]);
// Fill the form.
form.fields[0].value = ASCIIToUTF16("Brother");
@@ -1975,27 +1895,18 @@ TEST_F(FormManagerTest, FillFormNegativeMaxLength) {
const std::vector<FormField>& fields2 = form2.fields;
ASSERT_EQ(3U, fields2.size());
- EXPECT_TRUE(fields2[0].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("firstname"),
- ASCIIToUTF16("Brother"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
- EXPECT_TRUE(fields2[1].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("lastname"),
- ASCIIToUTF16("Jonathan"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
- EXPECT_TRUE(fields2[2].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("email"),
- ASCIIToUTF16("brotherj@example.com"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
+
+ expected.name = ASCIIToUTF16("firstname");
+ expected.value = ASCIIToUTF16("Brother");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[0]);
+
+ expected.name = ASCIIToUTF16("lastname");
+ expected.value = ASCIIToUTF16("Jonathan");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[1]);
+
+ expected.name = ASCIIToUTF16("email");
+ expected.value = ASCIIToUTF16("brotherj@example.com");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[2]);
}
// This test sends a FormData object to FillForm with more fields than are in
@@ -2027,36 +1938,28 @@ TEST_F(FormManagerTest, FillFormMoreFormDataFields) {
// postfix
FormData* form = &forms[0];
- FormField field1(string16(),
- ASCIIToUTF16("prefix"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false);
+ FormField field1;
+ field1.name = ASCIIToUTF16("prefix");
+ field1.form_control_type = ASCIIToUTF16("text");
+ field1.max_length = WebInputElement::defaultMaxLength();
form->fields.insert(form->fields.begin(), field1);
- FormField field2(string16(),
- ASCIIToUTF16("hidden"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false);
+ FormField field2;
+ field2.name = ASCIIToUTF16("hidden");
+ field2.form_control_type = ASCIIToUTF16("text");
+ field2.max_length = WebInputElement::defaultMaxLength();
form->fields.insert(form->fields.begin() + 2, field2);
- FormField field3(string16(),
- ASCIIToUTF16("second"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false);
+ FormField field3;
+ field3.name = ASCIIToUTF16("second");
+ field3.form_control_type = ASCIIToUTF16("text");
+ field3.max_length = WebInputElement::defaultMaxLength();
form->fields.insert(form->fields.begin() + 4, field3);
- FormField field4(string16(),
- ASCIIToUTF16("postfix"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false);
+ FormField field4;
+ field4.name = ASCIIToUTF16("postfix");
+ field4.form_control_type = ASCIIToUTF16("text");
+ field4.max_length = WebInputElement::defaultMaxLength();
form->fields.insert(form->fields.begin() + 6, field4);
// Fill the form.
@@ -2083,27 +1986,23 @@ TEST_F(FormManagerTest, FillFormMoreFormDataFields) {
const std::vector<FormField>& fields = form2.fields;
ASSERT_EQ(3U, fields.size());
- EXPECT_TRUE(fields[0].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("firstname"),
- ASCIIToUTF16("Brother"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
- EXPECT_TRUE(fields[1].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("middlename"),
- ASCIIToUTF16("Joseph"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
- EXPECT_TRUE(fields[2].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("lastname"),
- ASCIIToUTF16("Jonathan"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
+
+ FormField expected;
+ expected.form_control_type = ASCIIToUTF16("text");
+ expected.max_length = WebInputElement::defaultMaxLength();
+ expected.is_autofilled = true;
+
+ expected.name = ASCIIToUTF16("firstname");
+ expected.value = ASCIIToUTF16("Brother");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[0]);
+
+ expected.name = ASCIIToUTF16("middlename");
+ expected.value = ASCIIToUTF16("Joseph");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[1]);
+
+ expected.name = ASCIIToUTF16("lastname");
+ expected.value = ASCIIToUTF16("Jonathan");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[2]);
}
// This test sends a FormData object to FillForm with fewer fields than are in
@@ -2159,55 +2058,45 @@ TEST_F(FormManagerTest, FillFormFewerFormDataFields) {
const std::vector<FormField>& fields = form2.fields;
ASSERT_EQ(7U, fields.size());
- EXPECT_TRUE(fields[0].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("prefix"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
- EXPECT_TRUE(fields[1].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("firstname"),
- ASCIIToUTF16("Brother"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
- EXPECT_TRUE(fields[2].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("hidden"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
- EXPECT_TRUE(fields[3].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("middlename"),
- ASCIIToUTF16("Joseph"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
- EXPECT_TRUE(fields[4].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("second"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
- EXPECT_TRUE(fields[5].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("lastname"),
- ASCIIToUTF16("Jonathan"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
- EXPECT_TRUE(fields[6].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("postfix"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
+
+ FormField expected;
+ expected.form_control_type = ASCIIToUTF16("text");
+ expected.max_length = WebInputElement::defaultMaxLength();
+
+ expected.name = ASCIIToUTF16("prefix");
+ expected.value = string16();
+ expected.is_autofilled = false;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[0]);
+
+ expected.name = ASCIIToUTF16("firstname");
+ expected.value = ASCIIToUTF16("Brother");
+ expected.is_autofilled = true;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[1]);
+
+ expected.name = ASCIIToUTF16("hidden");
+ expected.value = string16();
+ expected.is_autofilled = false;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[2]);
+
+ expected.name = ASCIIToUTF16("middlename");
+ expected.value = ASCIIToUTF16("Joseph");
+ expected.is_autofilled = true;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[3]);
+
+ expected.name = ASCIIToUTF16("second");
+ expected.value = string16();
+ expected.is_autofilled = false;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[4]);
+
+ expected.name = ASCIIToUTF16("lastname");
+ expected.value = ASCIIToUTF16("Jonathan");
+ expected.is_autofilled = true;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[5]);
+
+ expected.name = ASCIIToUTF16("postfix");
+ expected.value = string16();
+ expected.is_autofilled = false;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[6]);
}
// This test sends a FormData object to FillForm with a field changed from
@@ -2260,24 +2149,25 @@ TEST_F(FormManagerTest, FillFormChangedFormDataFields) {
const std::vector<FormField>& fields = form2.fields;
ASSERT_EQ(3U, fields.size());
- EXPECT_TRUE(fields[0].StrictlyEqualsHack(FormField(string16(),
- ASCIIToUTF16("firstname"),
- ASCIIToUTF16("Brother"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
- EXPECT_TRUE(fields[1].StrictlyEqualsHack(FormField(string16(),
- ASCIIToUTF16("middlename"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
- EXPECT_TRUE(fields[2].StrictlyEqualsHack(FormField(string16(),
- ASCIIToUTF16("lastname"),
- ASCIIToUTF16("Jonathan"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
+
+ FormField expected;
+ expected.form_control_type = ASCIIToUTF16("text");
+ expected.max_length = WebInputElement::defaultMaxLength();
+
+ expected.name = ASCIIToUTF16("firstname");
+ expected.value = ASCIIToUTF16("Brother");
+ expected.is_autofilled = true;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[0]);
+
+ expected.name = ASCIIToUTF16("middlename");
+ expected.value = ASCIIToUTF16("");
+ expected.is_autofilled = false;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[1]);
+
+ expected.name = ASCIIToUTF16("lastname");
+ expected.value = ASCIIToUTF16("Jonathan");
+ expected.is_autofilled = true;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[2]);
}
// This test sends a FormData object to FillForm with fewer fields than are in
@@ -2327,34 +2217,30 @@ TEST_F(FormManagerTest, FillFormExtraFieldInCache) {
const std::vector<FormField>& fields = form2.fields;
ASSERT_EQ(4U, fields.size());
- EXPECT_TRUE(fields[0].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("firstname"),
- ASCIIToUTF16("Brother"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
- EXPECT_TRUE(fields[1].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("middlename"),
- ASCIIToUTF16("Joseph"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
- EXPECT_TRUE(fields[2].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("lastname"),
- ASCIIToUTF16("Jonathan"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
- EXPECT_TRUE(fields[3].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("postfix"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
+
+ FormField expected;
+ expected.form_control_type = ASCIIToUTF16("text");
+ expected.max_length = WebInputElement::defaultMaxLength();
+
+ expected.name = ASCIIToUTF16("firstname");
+ expected.value = ASCIIToUTF16("Brother");
+ expected.is_autofilled = true;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[0]);
+
+ expected.name = ASCIIToUTF16("middlename");
+ expected.value = ASCIIToUTF16("Joseph");
+ expected.is_autofilled = true;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[1]);
+
+ expected.name = ASCIIToUTF16("lastname");
+ expected.value = ASCIIToUTF16("Jonathan");
+ expected.is_autofilled = true;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[2]);
+
+ expected.name = ASCIIToUTF16("postfix");
+ expected.value = string16();
+ expected.is_autofilled = false;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[3]);
}
TEST_F(FormManagerTest, FillFormEmptyName) {
@@ -2387,27 +2273,19 @@ TEST_F(FormManagerTest, FillFormEmptyName) {
const std::vector<FormField>& fields = form.fields;
ASSERT_EQ(3U, fields.size());
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("firstname"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[0]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("lastname"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[1]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("email"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[2]);
+
+ FormField expected;
+ expected.form_control_type = ASCIIToUTF16("text");
+ expected.max_length = WebInputElement::defaultMaxLength();
+
+ expected.name = ASCIIToUTF16("firstname");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[0]);
+
+ expected.name = ASCIIToUTF16("lastname");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[1]);
+
+ expected.name = ASCIIToUTF16("email");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[2]);
// Fill the form.
form.fields[0].value = ASCIIToUTF16("Wyatt");
@@ -2425,27 +2303,21 @@ TEST_F(FormManagerTest, FillFormEmptyName) {
const std::vector<FormField>& fields2 = form2.fields;
ASSERT_EQ(3U, fields2.size());
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("firstname"),
- ASCIIToUTF16("Wyatt"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields2[0]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("lastname"),
- ASCIIToUTF16("Earp"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields2[1]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("email"),
- ASCIIToUTF16("wyatt@example.com"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields2[2]);
+
+ expected.form_control_type = ASCIIToUTF16("text");
+ expected.max_length = WebInputElement::defaultMaxLength();
+
+ expected.name = ASCIIToUTF16("firstname");
+ expected.value = ASCIIToUTF16("Wyatt");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[0]);
+
+ expected.name = ASCIIToUTF16("lastname");
+ expected.value = ASCIIToUTF16("Earp");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[1]);
+
+ expected.name = ASCIIToUTF16("email");
+ expected.value = ASCIIToUTF16("wyatt@example.com");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[2]);
}
TEST_F(FormManagerTest, FillFormEmptyFormNames) {
@@ -2484,27 +2356,22 @@ TEST_F(FormManagerTest, FillFormEmptyFormNames) {
const std::vector<FormField>& fields = form.fields;
ASSERT_EQ(3U, fields.size());
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("apple"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[0]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("banana"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[1]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("cantelope"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[2]);
+
+ FormField expected;
+ expected.form_control_type = ASCIIToUTF16("text");
+ expected.max_length = WebInputElement::defaultMaxLength();
+
+ expected.name = ASCIIToUTF16("apple");
+ expected.is_autofilled = false;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[0]);
+
+ expected.name = ASCIIToUTF16("banana");
+ expected.is_autofilled = false;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[1]);
+
+ expected.name = ASCIIToUTF16("cantelope");
+ expected.is_autofilled = false;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[2]);
// Fill the form.
form.fields[0].value = ASCIIToUTF16("Red");
@@ -2522,27 +2389,21 @@ TEST_F(FormManagerTest, FillFormEmptyFormNames) {
const std::vector<FormField>& fields2 = form2.fields;
ASSERT_EQ(3U, fields2.size());
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("apple"),
- ASCIIToUTF16("Red"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields2[0]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("banana"),
- ASCIIToUTF16("Yellow"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields2[1]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("cantelope"),
- ASCIIToUTF16("Also Yellow"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields2[2]);
+
+ expected.name = ASCIIToUTF16("apple");
+ expected.value = ASCIIToUTF16("Red");
+ expected.is_autofilled = true;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields2[0]);
+
+ expected.name = ASCIIToUTF16("banana");
+ expected.value = ASCIIToUTF16("Yellow");
+ expected.is_autofilled = true;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields2[1]);
+
+ expected.name = ASCIIToUTF16("cantelope");
+ expected.value = ASCIIToUTF16("Also Yellow");
+ expected.is_autofilled = true;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields2[2]);
}
TEST_F(FormManagerTest, ThreePartPhone) {
@@ -2577,34 +2438,26 @@ TEST_F(FormManagerTest, ThreePartPhone) {
const std::vector<FormField>& fields = form.fields;
ASSERT_EQ(4U, fields.size());
- EXPECT_EQ(FormField(ASCIIToUTF16("Phone:"),
- ASCIIToUTF16("dayphone1"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[0]);
- EXPECT_EQ(FormField(ASCIIToUTF16("-"),
- ASCIIToUTF16("dayphone2"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[1]);
- EXPECT_EQ(FormField(ASCIIToUTF16("-"),
- ASCIIToUTF16("dayphone3"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[2]);
- EXPECT_EQ(FormField(ASCIIToUTF16("ext.:"),
- ASCIIToUTF16("dayphone4"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[3]);
+
+ FormField expected;
+ expected.form_control_type = ASCIIToUTF16("text");
+ expected.max_length = WebInputElement::defaultMaxLength();
+
+ expected.label = ASCIIToUTF16("Phone:");
+ expected.name = ASCIIToUTF16("dayphone1");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[0]);
+
+ expected.label = ASCIIToUTF16("-");
+ expected.name = ASCIIToUTF16("dayphone2");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[1]);
+
+ expected.label = ASCIIToUTF16("-");
+ expected.name = ASCIIToUTF16("dayphone3");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[2]);
+
+ expected.label = ASCIIToUTF16("ext.:");
+ expected.name = ASCIIToUTF16("dayphone4");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[3]);
}
@@ -2642,50 +2495,41 @@ TEST_F(FormManagerTest, MaxLengthFields) {
const std::vector<FormField>& fields = form.fields;
ASSERT_EQ(6U, fields.size());
- EXPECT_EQ(FormField(ASCIIToUTF16("Phone:"),
- ASCIIToUTF16("dayphone1"),
- string16(),
- ASCIIToUTF16("text"),
- 3,
- false),
- fields[0]);
- EXPECT_EQ(FormField(ASCIIToUTF16("-"),
- ASCIIToUTF16("dayphone2"),
- string16(),
- ASCIIToUTF16("text"),
- 3,
- false),
- fields[1]);
- EXPECT_EQ(FormField(ASCIIToUTF16("-"),
- ASCIIToUTF16("dayphone3"),
- string16(),
- ASCIIToUTF16("text"),
- 4,
- false),
- fields[2]);
- EXPECT_EQ(FormField(ASCIIToUTF16("ext.:"),
- ASCIIToUTF16("dayphone4"),
- string16(),
- ASCIIToUTF16("text"),
- 5,
- false),
- fields[3]);
+
+ FormField expected;
+ expected.form_control_type = ASCIIToUTF16("text");
+
+ expected.label = ASCIIToUTF16("Phone:");
+ expected.name = ASCIIToUTF16("dayphone1");
+ expected.max_length = 3;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[0]);
+
+ expected.label = ASCIIToUTF16("-");
+ expected.name = ASCIIToUTF16("dayphone2");
+ expected.max_length = 3;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[1]);
+
+ expected.label = ASCIIToUTF16("-");
+ expected.name = ASCIIToUTF16("dayphone3");
+ expected.max_length = 4;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[2]);
+
+ expected.label = ASCIIToUTF16("ext.:");
+ expected.name = ASCIIToUTF16("dayphone4");
+ expected.max_length = 5;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[3]);
+
// When unspecified |size|, default is returned.
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("default1"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[4]);
+ expected.label = string16();
+ expected.name = ASCIIToUTF16("default1");
+ expected.max_length = WebInputElement::defaultMaxLength();
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[4]);
+
// When invalid |size|, default is returned.
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("invalid1"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[5]);
+ expected.label = string16();
+ expected.name = ASCIIToUTF16("invalid1");
+ expected.max_length = WebInputElement::defaultMaxLength();
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[5]);
}
// This test re-creates the experience of typing in a field then selecting a
@@ -2724,27 +2568,25 @@ TEST_F(FormManagerTest, FillFormNonEmptyField) {
const std::vector<FormField>& fields = form.fields;
ASSERT_EQ(3U, fields.size());
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("firstname"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[0]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("lastname"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[1]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("email"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields[2]);
+
+ FormField expected;
+ expected.form_control_type = ASCIIToUTF16("text");
+ expected.max_length = WebInputElement::defaultMaxLength();
+
+ expected.name = ASCIIToUTF16("firstname");
+ expected.value = ASCIIToUTF16("Wy");
+ expected.is_autofilled = false;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[0]);
+
+ expected.name = ASCIIToUTF16("lastname");
+ expected.value = string16();
+ expected.is_autofilled = false;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[1]);
+
+ expected.name = ASCIIToUTF16("email");
+ expected.value = string16();
+ expected.is_autofilled = false;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[2]);
// Preview the form and verify that the cursor position has been updated.
form.fields[0].value = ASCIIToUTF16("Wyatt");
@@ -2767,27 +2609,21 @@ TEST_F(FormManagerTest, FillFormNonEmptyField) {
const std::vector<FormField>& fields2 = form2.fields;
ASSERT_EQ(3U, fields2.size());
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("firstname"),
- ASCIIToUTF16("Wyatt"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields2[0]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("lastname"),
- ASCIIToUTF16("Earp"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields2[1]);
- EXPECT_EQ(FormField(string16(),
- ASCIIToUTF16("email"),
- ASCIIToUTF16("wyatt@example.com"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false),
- fields2[2]);
+
+ expected.name = ASCIIToUTF16("firstname");
+ expected.value = ASCIIToUTF16("Wyatt");
+ expected.is_autofilled = true;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields2[0]);
+
+ expected.name = ASCIIToUTF16("lastname");
+ expected.value = ASCIIToUTF16("Earp");
+ expected.is_autofilled = true;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields2[1]);
+
+ expected.name = ASCIIToUTF16("email");
+ expected.value = ASCIIToUTF16("wyatt@example.com");
+ expected.is_autofilled = true;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields2[2]);
// Verify that the cursor position has been updated.
EXPECT_EQ(5, input_element.selectionStart());
@@ -2837,34 +2673,26 @@ TEST_F(FormManagerTest, ClearFormWithNode) {
const std::vector<FormField>& fields2 = form2.fields;
ASSERT_EQ(4U, fields2.size());
- EXPECT_TRUE(fields2[0].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("firstname"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
- EXPECT_TRUE(fields2[1].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("lastname"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
- EXPECT_TRUE(fields2[2].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("noAC"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
- EXPECT_TRUE(fields2[3].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("notenabled"),
- ASCIIToUTF16("no clear"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
+
+ FormField expected;
+ expected.form_control_type = ASCIIToUTF16("text");
+ expected.max_length = WebInputElement::defaultMaxLength();
+
+ expected.name = ASCIIToUTF16("firstname");
+ expected.value = string16();
+ EXPECT_FORM_FIELD_EQUALS(expected, fields2[0]);
+
+ expected.name = ASCIIToUTF16("lastname");
+ expected.value = string16();
+ EXPECT_FORM_FIELD_EQUALS(expected, fields2[1]);
+
+ expected.name = ASCIIToUTF16("noAC");
+ expected.value = string16();
+ EXPECT_FORM_FIELD_EQUALS(expected, fields2[2]);
+
+ expected.name = ASCIIToUTF16("notenabled");
+ expected.value = ASCIIToUTF16("no clear");
+ EXPECT_FORM_FIELD_EQUALS(expected, fields2[3]);
// Verify that the cursor position has been updated.
EXPECT_EQ(0, firstname.selectionStart());
@@ -2918,27 +2746,26 @@ TEST_F(FormManagerTest, ClearFormWithNodeContainingSelectOne) {
const std::vector<FormField>& fields2 = form2.fields;
ASSERT_EQ(3U, fields2.size());
- EXPECT_TRUE(fields2[0].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("firstname"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
- EXPECT_TRUE(fields2[1].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("lastname"),
- string16(),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
- EXPECT_TRUE(fields2[2].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("state"),
- ASCIIToUTF16("?"),
- ASCIIToUTF16("select-one"),
- 0,
- false)));
+
+ FormField expected;
+
+ expected.name = ASCIIToUTF16("firstname");
+ expected.value = string16();
+ expected.form_control_type = ASCIIToUTF16("text");
+ expected.max_length = WebInputElement::defaultMaxLength();
+ EXPECT_FORM_FIELD_EQUALS(expected, fields2[0]);
+
+ expected.name = ASCIIToUTF16("lastname");
+ expected.value = string16();
+ expected.form_control_type = ASCIIToUTF16("text");
+ expected.max_length = WebInputElement::defaultMaxLength();
+ EXPECT_FORM_FIELD_EQUALS(expected, fields2[1]);
+
+ expected.name = ASCIIToUTF16("state");
+ expected.value = ASCIIToUTF16("?");
+ expected.form_control_type = ASCIIToUTF16("select-one");
+ expected.max_length = 0;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields2[2]);
// Verify that the cursor position has been updated.
EXPECT_EQ(0, firstname.selectionStart());
@@ -3268,27 +3095,26 @@ TEST_F(FormManagerTest, SelectOneAsText) {
const std::vector<FormField>& fields = form.fields;
ASSERT_EQ(3U, fields.size());
- EXPECT_TRUE(fields[0].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("firstname"),
- ASCIIToUTF16("John"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
- EXPECT_TRUE(fields[1].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("lastname"),
- ASCIIToUTF16("Smith"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
- EXPECT_TRUE(fields[2].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("country"),
- ASCIIToUTF16("Albania"),
- ASCIIToUTF16("select-one"),
- 0,
- false)));
+
+ FormField expected;
+
+ expected.name = ASCIIToUTF16("firstname");
+ expected.value = ASCIIToUTF16("John");
+ expected.form_control_type = ASCIIToUTF16("text");
+ expected.max_length = WebInputElement::defaultMaxLength();
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[0]);
+
+ expected.name = ASCIIToUTF16("lastname");
+ expected.value = ASCIIToUTF16("Smith");
+ expected.form_control_type = ASCIIToUTF16("text");
+ expected.max_length = WebInputElement::defaultMaxLength();
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[1]);
+
+ expected.name = ASCIIToUTF16("country");
+ expected.value = ASCIIToUTF16("Albania");
+ expected.form_control_type = ASCIIToUTF16("select-one");
+ expected.max_length = 0;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[2]);
form.fields.clear();
// Extract the country select-one value as value.
@@ -3301,25 +3127,22 @@ TEST_F(FormManagerTest, SelectOneAsText) {
EXPECT_EQ(GURL("http://cnn.com"), form.action);
ASSERT_EQ(3U, fields.size());
- EXPECT_TRUE(fields[0].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("firstname"),
- ASCIIToUTF16("John"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
- EXPECT_TRUE(fields[1].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("lastname"),
- ASCIIToUTF16("Smith"),
- ASCIIToUTF16("text"),
- WebInputElement::defaultMaxLength(),
- false)));
- EXPECT_TRUE(fields[2].StrictlyEqualsHack(
- FormField(string16(),
- ASCIIToUTF16("country"),
- ASCIIToUTF16("AL"),
- ASCIIToUTF16("select-one"),
- 0,
- false)));
+
+ expected.name = ASCIIToUTF16("firstname");
+ expected.value = ASCIIToUTF16("John");
+ expected.form_control_type = ASCIIToUTF16("text");
+ expected.max_length = WebInputElement::defaultMaxLength();
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[0]);
+
+ expected.name = ASCIIToUTF16("lastname");
+ expected.value = ASCIIToUTF16("Smith");
+ expected.form_control_type = ASCIIToUTF16("text");
+ expected.max_length = WebInputElement::defaultMaxLength();
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[1]);
+
+ expected.name = ASCIIToUTF16("country");
+ expected.value = ASCIIToUTF16("AL");
+ expected.form_control_type = ASCIIToUTF16("select-one");
+ expected.max_length = 0;
+ EXPECT_FORM_FIELD_EQUALS(expected, fields[2]);
}
diff --git a/chrome/renderer/autofill/password_autofill_manager_unittest.cc b/chrome/renderer/autofill/password_autofill_manager_browsertest.cc
index b2c5d3a..86e258b 100644
--- a/chrome/renderer/autofill/password_autofill_manager_unittest.cc
+++ b/chrome/renderer/autofill/password_autofill_manager_browsertest.cc
@@ -80,12 +80,16 @@ class PasswordAutofillManagerTest : public RenderViewTest {
username3_ = ASCIIToUTF16(kCarolUsername);
password3_ = ASCIIToUTF16(kCarolPassword);
- fill_data_.basic_data.fields.push_back(
- FormField(string16(), ASCIIToUTF16(kUsernameName),
- username1_, string16(), 0, false));
- fill_data_.basic_data.fields.push_back(
- FormField(string16(), ASCIIToUTF16(kPasswordName),
- password1_, string16(), 0, false));
+ FormField username_field;
+ username_field.name = ASCIIToUTF16(kUsernameName);
+ username_field.value = username1_;
+ fill_data_.basic_data.fields.push_back(username_field);
+
+ FormField password_field;
+ password_field.name = ASCIIToUTF16(kPasswordName);
+ password_field.value = password1_;
+ fill_data_.basic_data.fields.push_back(password_field);
+
fill_data_.additional_logins[username2_] = password2_;
fill_data_.additional_logins[username3_] = password3_;
diff --git a/chrome/test/live_sync/autofill_helper.cc b/chrome/test/live_sync/autofill_helper.cc
index ea3cbfc..77e8bbd 100644
--- a/chrome/test/live_sync/autofill_helper.cc
+++ b/chrome/test/live_sync/autofill_helper.cc
@@ -136,12 +136,10 @@ void AddKeys(int profile,
for (std::set<AutofillKey>::const_iterator i = keys.begin();
i != keys.end();
++i) {
- form_fields.push_back(webkit_glue::FormField(string16(),
- (*i).name(),
- (*i).value(),
- string16(),
- 0,
- false));
+ webkit_glue::FormField field;
+ field.name = i->name();
+ field.value = i->value();
+ form_fields.push_back(field);
}
WaitableEvent done_event(false, false);
diff --git a/webkit/glue/form_field.cc b/webkit/glue/form_field.cc
index e384957..798c5b2 100644
--- a/webkit/glue/form_field.cc
+++ b/webkit/glue/form_field.cc
@@ -24,20 +24,6 @@ FormField::FormField()
is_autofilled(false) {
}
-FormField::FormField(const string16& label,
- const string16& name,
- const string16& value,
- const string16& form_control_type,
- int max_length,
- bool is_autofilled)
- : label(label),
- name(name),
- value(value),
- form_control_type(form_control_type),
- max_length(max_length),
- is_autofilled(is_autofilled) {
-}
-
FormField::~FormField() {
}
@@ -54,14 +40,6 @@ bool FormField::operator!=(const FormField& field) const {
return !operator==(field);
}
-bool FormField::StrictlyEqualsHack(const FormField& field) const {
- return (label == field.label &&
- name == field.name &&
- value == field.value &&
- form_control_type == field.form_control_type &&
- max_length == field.max_length);
-}
-
std::ostream& operator<<(std::ostream& os, const FormField& field) {
return os
<< UTF16ToUTF8(field.label)
@@ -72,7 +50,9 @@ std::ostream& operator<<(std::ostream& os, const FormField& field) {
<< " "
<< UTF16ToUTF8(field.form_control_type)
<< " "
- << field.max_length;
+ << field.max_length
+ << " "
+ << (field.is_autofilled ? "true" : "false");
}
} // namespace webkit_glue
diff --git a/webkit/glue/form_field.h b/webkit/glue/form_field.h
index 58ad157..622dabf 100644
--- a/webkit/glue/form_field.h
+++ b/webkit/glue/form_field.h
@@ -15,25 +15,15 @@ namespace webkit_glue {
// Stores information about a field in a form.
struct FormField {
FormField();
- FormField(const string16& label,
- const string16& name,
- const string16& value,
- const string16& form_control_type,
- int max_length,
- bool is_autofilled);
virtual ~FormField();
- // Equality tests for identity which does not include |value_| or |size_|.
- // Use |StrictlyEqualsHack| method to test all members.
+ // Equality tests for identity which does not include |value| or
+ // |is_autofilled|.
// TODO(dhollowa): These operators need to be revised when we implement field
// ids.
bool operator==(const FormField& field) const;
bool operator!=(const FormField& field) const;
- // Test equality of all data members.
- // TODO(dhollowa): This will be removed when we implement field ids.
- bool StrictlyEqualsHack(const FormField& field) const;
-
string16 label;
string16 name;
string16 value;
@@ -52,4 +42,16 @@ std::ostream& operator<<(std::ostream& os, const FormField& field);
} // namespace webkit_glue
+// Prefer to use this macro in place of |EXPECT_EQ()| for comparing |FormField|s
+// in test code.
+#define EXPECT_FORM_FIELD_EQUALS(expected, actual) \
+ do { \
+ EXPECT_EQ(expected.label, actual.label); \
+ EXPECT_EQ(expected.name, actual.name); \
+ EXPECT_EQ(expected.value, actual.value); \
+ EXPECT_EQ(expected.form_control_type, actual.form_control_type); \
+ EXPECT_EQ(expected.max_length, actual.max_length); \
+ EXPECT_EQ(expected.is_autofilled, actual.is_autofilled); \
+ } while (0)
+
#endif // WEBKIT_GLUE_FORM_FIELD_H_
diff --git a/webkit/glue/password_form_dom_manager.cc b/webkit/glue/password_form_dom_manager.cc
index be4bc76..e5c2574 100644
--- a/webkit/glue/password_form_dom_manager.cc
+++ b/webkit/glue/password_form_dom_manager.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -36,29 +36,21 @@ void PasswordFormDomManager::InitFillData(
const PasswordForm* const preferred_match,
bool wait_for_username_before_autofill,
PasswordFormFillData* result) {
- DCHECK(preferred_match);
+ // Note that many of the |FormField| members are not initialized for
+ // |username_field| and |password_field| because they are currently not used
+ // by the password autocomplete code.
+ FormField username_field;
+ username_field.name = form_on_page.username_element;
+ username_field.value = preferred_match->username_value;
+ FormField password_field;
+ password_field.name = form_on_page.password_element;
+ password_field.value = preferred_match->password_value;
+
// Fill basic form data.
result->basic_data.origin = form_on_page.origin;
result->basic_data.action = form_on_page.action;
- // Three of the parameters below are set to default values because they are
- // currently not used by the password autocomplete code:
- // * The form control type is initialized to an empty string.
- // * The field |max_length| is initialized to 0.
- // * The field autofilled state is initialized to false.
- result->basic_data.fields.push_back(
- FormField(string16(),
- form_on_page.username_element,
- preferred_match->username_value,
- string16(),
- 0,
- false));
- result->basic_data.fields.push_back(
- FormField(string16(),
- form_on_page.password_element,
- preferred_match->password_value,
- string16(),
- 0,
- false));
+ result->basic_data.fields.push_back(username_field);
+ result->basic_data.fields.push_back(password_field);
result->wait_for_username = wait_for_username_before_autofill;
// Copy additional username/value pairs.