Index: chrome/browser/autofill/form_field_unittest.cc |
diff --git a/chrome/browser/autofill/form_field_unittest.cc b/chrome/browser/autofill/form_field_unittest.cc |
index 16b51a0c83b3968afe91add1751578b1c6528946..8ab1127c458c139173c80defc9b1f6a326d5e656 100644 |
--- a/chrome/browser/autofill/form_field_unittest.cc |
+++ b/chrome/browser/autofill/form_field_unittest.cc |
@@ -2,6 +2,7 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
+#include "base/memory/scoped_vector.h" |
#include "base/string16.h" |
#include "base/utf_string_conversions.h" |
#include "chrome/browser/autofill/autofill_field.h" |
@@ -114,3 +115,32 @@ TEST(FormFieldTest, Match) { |
EXPECT_FALSE(FormField::Match(&field, ASCIIToUTF16("\\bcr\\b"), |
FormField::MATCH_LABEL)); |
} |
+ |
+// Test that we ignore checkable elements. |
+TEST(FormFieldTest, ParseFormFields) { |
+ ScopedVector<AutofillField> fields; |
+ FormFieldData field_data; |
+ field_data.form_control_type = "text"; |
+ |
+ field_data.label = ASCIIToUTF16("Address line1"); |
+ fields.push_back(new AutofillField(field_data, field_data.label)); |
+ |
+ field_data.is_checkable = true; |
+ field_data.label = ASCIIToUTF16("Is PO Box"); |
+ fields.push_back(new AutofillField(field_data, field_data.label)); |
+ |
+ // reset is_checkable to false. |
+ field_data.is_checkable = false; |
+ field_data.label = ASCIIToUTF16("Address line2"); |
+ fields.push_back(new AutofillField(field_data, field_data.label)); |
+ |
+ FieldTypeMap field_type_map; |
+ FormField::ParseFormFields(fields.get(), &field_type_map); |
+ // Checkable element shouldn't interfere with inference of Address line2. |
+ EXPECT_EQ(2U, field_type_map.size()); |
+ |
+ EXPECT_EQ(ADDRESS_HOME_LINE1, |
+ field_type_map.find(ASCIIToUTF16("Address line1"))->second); |
+ EXPECT_EQ(ADDRESS_HOME_LINE2, |
+ field_type_map.find(ASCIIToUTF16("Address line2"))->second); |
+} |