| Index: components/autofill/core/browser/autofill_type_unittest.cc
 | 
| diff --git a/components/autofill/core/browser/autofill_type_unittest.cc b/components/autofill/core/browser/autofill_type_unittest.cc
 | 
| index 2eda787ad7b1a74a4a31b67ffb9d101b9156c16e..2760809e7df43727b918e30f4e8d9d7fa432a39d 100644
 | 
| --- a/components/autofill/core/browser/autofill_type_unittest.cc
 | 
| +++ b/components/autofill/core/browser/autofill_type_unittest.cc
 | 
| @@ -8,47 +8,96 @@
 | 
|  namespace autofill {
 | 
|  namespace {
 | 
|  
 | 
| -TEST(AutofillTypeTest, AutofillTypes) {
 | 
| +TEST(AutofillTypeTest, NativeFieldTypes) {
 | 
|    // No server data.
 | 
|    AutofillType none(NO_SERVER_DATA);
 | 
| -  EXPECT_EQ(NO_SERVER_DATA, none.native_type());
 | 
| +  EXPECT_EQ(NO_SERVER_DATA, none.GetEquivalentNativeType());
 | 
|    EXPECT_EQ(NO_GROUP, none.group());
 | 
|  
 | 
|    // Unknown type.
 | 
|    AutofillType unknown(UNKNOWN_TYPE);
 | 
| -  EXPECT_EQ(UNKNOWN_TYPE, unknown.native_type());
 | 
| +  EXPECT_EQ(UNKNOWN_TYPE, unknown.GetEquivalentNativeType());
 | 
|    EXPECT_EQ(NO_GROUP, unknown.group());
 | 
|  
 | 
|    // Type with group but no subgroup.
 | 
|    AutofillType first(NAME_FIRST);
 | 
| -  EXPECT_EQ(NAME_FIRST, first.native_type());
 | 
| +  EXPECT_EQ(NAME_FIRST, first.GetEquivalentNativeType());
 | 
|    EXPECT_EQ(NAME, first.group());
 | 
|  
 | 
|    // Type with group and subgroup.
 | 
|    AutofillType phone(PHONE_HOME_NUMBER);
 | 
| -  EXPECT_EQ(PHONE_HOME_NUMBER, phone.native_type());
 | 
| +  EXPECT_EQ(PHONE_HOME_NUMBER, phone.GetEquivalentNativeType());
 | 
|    EXPECT_EQ(PHONE_HOME, phone.group());
 | 
|  
 | 
| +  // Billing type.
 | 
| +  AutofillType billing_address(ADDRESS_BILLING_LINE1);
 | 
| +  EXPECT_EQ(ADDRESS_HOME_LINE1, billing_address.GetEquivalentNativeType());
 | 
| +  EXPECT_EQ(ADDRESS_BILLING, billing_address.group());
 | 
| +
 | 
|    // Last value, to check any offset errors.
 | 
| -  AutofillType last(COMPANY_NAME);
 | 
| -  EXPECT_EQ(COMPANY_NAME, last.native_type());
 | 
| -  EXPECT_EQ(COMPANY, last.group());
 | 
| +  AutofillType last(NAME_BILLING_SUFFIX);
 | 
| +  EXPECT_EQ(NAME_SUFFIX, last.GetEquivalentNativeType());
 | 
| +  EXPECT_EQ(NAME_BILLING, last.group());
 | 
|  
 | 
|    // Boundary (error) condition.
 | 
|    AutofillType boundary(MAX_VALID_FIELD_TYPE);
 | 
| -  EXPECT_EQ(UNKNOWN_TYPE, boundary.native_type());
 | 
| +  EXPECT_EQ(UNKNOWN_TYPE, boundary.GetEquivalentNativeType());
 | 
|    EXPECT_EQ(NO_GROUP, boundary.group());
 | 
|  
 | 
|    // Beyond the boundary (error) condition.
 | 
| -  AutofillType beyond(static_cast<NativeFieldType>(MAX_VALID_FIELD_TYPE+10));
 | 
| -  EXPECT_EQ(UNKNOWN_TYPE, beyond.native_type());
 | 
| +  AutofillType beyond(static_cast<NativeFieldType>(MAX_VALID_FIELD_TYPE + 10));
 | 
| +  EXPECT_EQ(UNKNOWN_TYPE, beyond.GetEquivalentNativeType());
 | 
|    EXPECT_EQ(NO_GROUP, beyond.group());
 | 
|  
 | 
|    // In-between value.  Missing from enum but within range.  Error condition.
 | 
|    AutofillType between(static_cast<NativeFieldType>(16));
 | 
| -  EXPECT_EQ(UNKNOWN_TYPE, between.native_type());
 | 
| +  EXPECT_EQ(UNKNOWN_TYPE, between.GetEquivalentNativeType());
 | 
|    EXPECT_EQ(NO_GROUP, between.group());
 | 
|  }
 | 
|  
 | 
| +TEST(AutofillTypeTest, HtmlFieldTypes) {
 | 
| +  // Unknown type.
 | 
| +  AutofillType unknown(HTML_TYPE_UNKNOWN, HTML_MODE_NONE);
 | 
| +  EXPECT_EQ(UNKNOWN_TYPE, unknown.GetEquivalentNativeType());
 | 
| +  EXPECT_EQ(NO_GROUP, unknown.group());
 | 
| +
 | 
| +  // Type with group but no subgroup.
 | 
| +  AutofillType first(HTML_TYPE_GIVEN_NAME, HTML_MODE_NONE);
 | 
| +  EXPECT_EQ(NAME_FIRST, first.GetEquivalentNativeType());
 | 
| +  EXPECT_EQ(NAME, first.group());
 | 
| +
 | 
| +  // Type with group and subgroup.
 | 
| +  AutofillType phone(HTML_TYPE_TEL, HTML_MODE_NONE);
 | 
| +  EXPECT_EQ(PHONE_HOME_WHOLE_NUMBER, phone.GetEquivalentNativeType());
 | 
| +  EXPECT_EQ(PHONE_HOME, phone.group());
 | 
| +
 | 
| +  // Last value, to check any offset errors.
 | 
| +  AutofillType last(HTML_TYPE_CREDIT_CARD_EXP_4_DIGIT_YEAR, HTML_MODE_NONE);
 | 
| +  EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR, last.GetEquivalentNativeType());
 | 
| +  EXPECT_EQ(CREDIT_CARD, last.group());
 | 
| +
 | 
| +  // Shipping mode.
 | 
| +  AutofillType shipping_first(HTML_TYPE_GIVEN_NAME, HTML_MODE_SHIPPING);
 | 
| +  EXPECT_EQ(NAME_FIRST, shipping_first.GetEquivalentNativeType());
 | 
| +  EXPECT_EQ(NAME, shipping_first.group());
 | 
| +
 | 
| +  // Billing mode.
 | 
| +  AutofillType billing_first(HTML_TYPE_GIVEN_NAME, HTML_MODE_BILLING);
 | 
| +  EXPECT_EQ(NAME_FIRST, billing_first.GetEquivalentNativeType());
 | 
| +  EXPECT_EQ(NAME_BILLING, billing_first.group());
 | 
| +}
 | 
| +
 | 
| +TEST(AutofillTypeTest, AsNativeFieldType) {
 | 
| +  // Given name has a direct mapping to a native field type.
 | 
| +  AutofillType name(HTML_TYPE_GIVEN_NAME, HTML_MODE_NONE);
 | 
| +  EXPECT_EQ(NAME_FIRST, name.GetEquivalentNativeType());
 | 
| +  EXPECT_EQ(NAME_FIRST, name.GetApproximateNativeFieldType());
 | 
| +
 | 
| +  // Street address has no direct mapping to a native field type.
 | 
| +  AutofillType address(HTML_TYPE_STREET_ADDRESS, HTML_MODE_NONE);
 | 
| +  EXPECT_EQ(UNKNOWN_TYPE, address.GetEquivalentNativeType());
 | 
| +  EXPECT_EQ(ADDRESS_HOME_LINE1, address.GetApproximateNativeFieldType());
 | 
| +}
 | 
| +
 | 
|  }  // namespace
 | 
|  }  // namespace autofill
 | 
| 
 |