Index: chrome/browser/autofill/autofill_manager_unittest.cc |
diff --git a/chrome/browser/autofill/autofill_manager_unittest.cc b/chrome/browser/autofill/autofill_manager_unittest.cc |
index cbb050ae11ed7f40a92bf62a60f54c25fe66f888..dccba87fedd630edde1191fb40b581748aca3486 100644 |
--- a/chrome/browser/autofill/autofill_manager_unittest.cc |
+++ b/chrome/browser/autofill/autofill_manager_unittest.cc |
@@ -59,7 +59,7 @@ class TestPersonalDataManager : public PersonalDataManager { |
CreditCard* credit_card = new CreditCard; |
autofill_unittest::SetCreditCardInfo(credit_card, "First", "Elvis Presley", |
"Visa", "1234567890123456", "04", |
- "2012", "456", "", ""); |
+ "2012", "456", "Home", ""); |
credit_cards->push_back(credit_card); |
credit_card = new CreditCard; |
autofill_unittest::SetCreditCardInfo(credit_card, "Second", "Buddy Holly", |
@@ -137,23 +137,43 @@ void CreateTestFormData(FormData* form) { |
form->fields.push_back(field); |
} |
-void CreateTestFormDataWithValues(FormData* form) { |
- CreateTestFormData(form); |
- form->fields[0].set_value(ASCIIToUTF16("Elvis")); |
- form->fields[1].set_value(ASCIIToUTF16("Aaron")); |
- form->fields[2].set_value(ASCIIToUTF16("Presely")); |
- form->fields[3].set_value(ASCIIToUTF16("3734 Elvis Presley Blvd.")); |
- form->fields[4].set_value(ASCIIToUTF16("Apt. 10")); |
- form->fields[5].set_value(ASCIIToUTF16("Memphis")); |
- form->fields[6].set_value(ASCIIToUTF16("Tennessee")); |
- form->fields[7].set_value(ASCIIToUTF16("38116")); |
- form->fields[8].set_value(ASCIIToUTF16("USA")); |
- form->fields[9].set_value(ASCIIToUTF16("12345678901")); |
- form->fields[10].set_value(ASCIIToUTF16("theking@gmail.com")); |
- form->fields[11].set_value(ASCIIToUTF16("Elvis Presley")); |
- form->fields[12].set_value(ASCIIToUTF16("1234567890123456")); |
- form->fields[13].set_value(ASCIIToUTF16("04")); |
- form->fields[14].set_value(ASCIIToUTF16("2012")); |
+void CreateTestFormDataBilling(FormData* form) { |
+ form->name = ASCIIToUTF16("MyForm"); |
+ form->method = ASCIIToUTF16("POST"); |
+ form->origin = GURL("http://myform.com/form.html"); |
+ form->action = GURL("http://myform.com/submit.html"); |
+ |
+ webkit_glue::FormField field; |
+ CreateTestFormField("First Name", "firstname", "", "text", &field); |
+ form->fields.push_back(field); |
+ CreateTestFormField("Middle Name", "middlename", "", "text", &field); |
+ form->fields.push_back(field); |
+ CreateTestFormField("Last Name", "lastname", "", "text", &field); |
+ form->fields.push_back(field); |
+ CreateTestFormField("Address Line 1", "billingAddr1", "", "text", &field); |
+ form->fields.push_back(field); |
+ CreateTestFormField("Address Line 2", "billingAddr2", "", "text", &field); |
+ form->fields.push_back(field); |
+ CreateTestFormField("City", "billingCity", "", "text", &field); |
+ form->fields.push_back(field); |
+ CreateTestFormField("State", "billingState", "", "text", &field); |
+ form->fields.push_back(field); |
+ CreateTestFormField("Postal Code", "billingZipcode", "", "text", &field); |
+ form->fields.push_back(field); |
+ CreateTestFormField("Country", "billingCountry", "", "text", &field); |
+ form->fields.push_back(field); |
+ CreateTestFormField("Phone Number", "phonenumber", "", "text", &field); |
+ form->fields.push_back(field); |
+ CreateTestFormField("Email", "email", "", "text", &field); |
+ form->fields.push_back(field); |
+ CreateTestFormField("Name on Card", "nameoncard", "", "text", &field); |
+ form->fields.push_back(field); |
+ CreateTestFormField("Card Number", "cardnumber", "", "text", &field); |
+ form->fields.push_back(field); |
+ CreateTestFormField("Expiration Date", "ccmonth", "", "text", &field); |
+ form->fields.push_back(field); |
+ CreateTestFormField("", "ccyear", "", "text", &field); |
+ form->fields.push_back(field); |
} |
class AutoFillManagerTest : public RenderViewHostTestHarness { |
@@ -381,15 +401,9 @@ TEST_F(AutoFillManagerTest, FillCreditCardForm) { |
// The page ID sent to the AutoFillManager from the RenderView, used to send |
// an IPC message back to the renderer. |
const int kPageID = 1; |
- |
- webkit_glue::FormField field; |
- CreateTestFormField("Card Number", "cardnumber", "", "text", &field); |
- |
- FormData values; |
- CreateTestFormDataWithValues(&values); |
EXPECT_TRUE( |
autofill_manager_->FillAutoFillFormData(kPageID, |
- values, |
+ form, |
ASCIIToUTF16("cardnumber"), |
ASCIIToUTF16("First"))); |
@@ -401,38 +415,107 @@ TEST_F(AutoFillManagerTest, FillCreditCardForm) { |
EXPECT_EQ(GURL("http://myform.com/form.html"), results.origin); |
EXPECT_EQ(GURL("http://myform.com/submit.html"), results.action); |
ASSERT_EQ(15U, results.fields.size()); |
+ |
+ webkit_glue::FormField field; |
CreateTestFormField("First Name", "firstname", "", "text", &field); |
- EXPECT_EQ(field, results.fields[0]); |
+ EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[0])); |
CreateTestFormField("Middle Name", "middlename", "", "text", &field); |
- EXPECT_EQ(field, results.fields[1]); |
+ EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[1])); |
CreateTestFormField("Last Name", "lastname", "", "text", &field); |
- EXPECT_EQ(field, results.fields[2]); |
+ EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[2])); |
CreateTestFormField("Address Line 1", "addr1", "", "text", &field); |
- EXPECT_EQ(field, results.fields[3]); |
+ EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[3])); |
CreateTestFormField("Address Line 2", "addr2", "", "text", &field); |
- EXPECT_EQ(field, results.fields[4]); |
+ EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[4])); |
CreateTestFormField("City", "city", "", "text", &field); |
- EXPECT_EQ(field, results.fields[5]); |
+ EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[5])); |
CreateTestFormField("State", "state", "", "text", &field); |
- EXPECT_EQ(field, results.fields[6]); |
+ EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[6])); |
CreateTestFormField("Postal Code", "zipcode", "", "text", &field); |
- EXPECT_EQ(field, results.fields[7]); |
+ EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[7])); |
CreateTestFormField("Country", "country", "", "text", &field); |
- EXPECT_EQ(field, results.fields[8]); |
+ EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[8])); |
CreateTestFormField("Phone Number", "phonenumber", "", "text", &field); |
- EXPECT_EQ(field, results.fields[9]); |
+ EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[9])); |
CreateTestFormField("Email", "email", "", "text", &field); |
- EXPECT_EQ(field, results.fields[10]); |
+ EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[10])); |
+ CreateTestFormField( |
+ "Name on Card", "nameoncard", "Elvis Presley", "text", &field); |
+ EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[11])); |
+ CreateTestFormField( |
+ "Card Number", "cardnumber", "1234567890123456", "text", &field); |
+ EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[12])); |
+ CreateTestFormField("Expiration Date", "ccmonth", "04", "text", &field); |
+ EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[13])); |
+ CreateTestFormField("", "ccyear", "2012", "text", &field); |
+ EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[14])); |
+} |
+ |
+TEST_F(AutoFillManagerTest, FillCreditCardFormWithBilling) { |
+ FormData form; |
+ CreateTestFormDataBilling(&form); |
+ |
+ // Set up our FormStructures. |
+ std::vector<FormData> forms; |
+ forms.push_back(form); |
+ autofill_manager_->FormsSeen(forms); |
+ |
+ // The page ID sent to the AutoFillManager from the RenderView, used to send |
+ // an IPC message back to the renderer. |
+ const int kPageID = 1; |
+ EXPECT_TRUE( |
+ autofill_manager_->FillAutoFillFormData(kPageID, |
+ form, |
+ ASCIIToUTF16("cardnumber"), |
+ ASCIIToUTF16("First"))); |
+ |
+ int page_id = 0; |
+ FormData results; |
+ EXPECT_TRUE(GetAutoFillFormDataFilledMessage(&page_id, &results)); |
+ EXPECT_EQ(ASCIIToUTF16("MyForm"), results.name); |
+ EXPECT_EQ(ASCIIToUTF16("POST"), results.method); |
+ EXPECT_EQ(GURL("http://myform.com/form.html"), results.origin); |
+ EXPECT_EQ(GURL("http://myform.com/submit.html"), results.action); |
+ ASSERT_EQ(15U, results.fields.size()); |
+ |
+ webkit_glue::FormField field; |
+ CreateTestFormField("First Name", "firstname", "", "text", &field); |
+ EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[0])); |
+ CreateTestFormField("Middle Name", "middlename", "", "text", &field); |
+ EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[1])); |
+ CreateTestFormField("Last Name", "lastname", "", "text", &field); |
+ EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[2])); |
+ CreateTestFormField( |
+ "Address Line 1", "billingAddr1", "3734 Elvis Presley Blvd.", "text", |
+ &field); |
+ EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[3])); |
+ CreateTestFormField( |
+ "Address Line 2", "billingAddr2", "Apt. 10", "text", &field); |
+ EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[4])); |
+ CreateTestFormField("City", "billingCity", "Memphis", "text", &field); |
+ EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[5])); |
+ CreateTestFormField("State", "billingState", "Tennessee", "text", &field); |
+ EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[6])); |
+ CreateTestFormField("Postal Code", "billingZipcode", "38116", "text", &field); |
+ EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[7])); |
+ CreateTestFormField("Country", "billingCountry", "USA", "text", &field); |
+ EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[8])); |
+ CreateTestFormField( |
+ "Phone Number", "phonenumber", "", "text", &field); |
+ EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[9])); |
+ CreateTestFormField( |
+ "Email", "email", "", "text", &field); |
+ EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[10])); |
CreateTestFormField( |
"Name on Card", "nameoncard", "Elvis Presley", "text", &field); |
- EXPECT_EQ(field, results.fields[11]); |
+ EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[11])); |
CreateTestFormField( |
"Card Number", "cardnumber", "1234567890123456", "text", &field); |
- EXPECT_EQ(field, results.fields[12]); |
+ EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[12])); |
CreateTestFormField("Expiration Date", "ccmonth", "04", "text", &field); |
- EXPECT_EQ(field, results.fields[13]); |
+ EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[13])); |
CreateTestFormField("", "ccyear", "2012", "text", &field); |
- EXPECT_EQ(field, results.fields[14]); |
+ EXPECT_TRUE(field.StrictlyEqualsHack(results.fields[14])); |
} |
} // namespace |