Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(498)

Unified Diff: components/autofill/core/browser/address_field_unittest.cc

Issue 853523004: Autofill: Set requirements for number of recognized fields in an autofillable form (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix bug, adjust tests Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/autofill/core/browser/address_field_unittest.cc
diff --git a/components/autofill/core/browser/address_field_unittest.cc b/components/autofill/core/browser/address_field_unittest.cc
index b8f27ad72a7d4be6e922d7db6bee0c0474f0ecf0..6e63a55d78895df8dd28db062496f9f3625d26af 100644
--- a/components/autofill/core/browser/address_field_unittest.cc
+++ b/components/autofill/core/browser/address_field_unittest.cc
@@ -21,16 +21,24 @@ class AddressFieldTest : public testing::Test {
AddressFieldTest() {}
protected:
- ScopedVector<AutofillField> list_;
- scoped_ptr<AddressField> field_;
- ServerFieldTypeMap field_type_map_;
-
// Downcast for tests.
static scoped_ptr<AddressField> Parse(AutofillScanner* scanner) {
scoped_ptr<FormField> field = AddressField::Parse(scanner);
return make_scoped_ptr(static_cast<AddressField*>(field.release()));
}
+ void AddDummyCityField() {
+ FormFieldData field;
+ field.form_control_type = "text";
+ field.label = ASCIIToUTF16("City");
+ field.name = ASCIIToUTF16("city");
+ list_.push_back(new AutofillField(field, ASCIIToUTF16("city")));
+ }
+
+ ScopedVector<AutofillField> list_;
+ scoped_ptr<AddressField> field_;
+ ServerFieldTypeMap field_type_map_;
+
private:
DISALLOW_COPY_AND_ASSIGN(AddressFieldTest);
};
@@ -52,13 +60,22 @@ TEST_F(AddressFieldTest, ParseOneLineAddress) {
FormFieldData field;
field.form_control_type = "text";
+ // Just an address by itself will not parse successfully.
field.label = ASCIIToUTF16("Address");
field.name = ASCIIToUTF16("address");
list_.push_back(new AutofillField(field, ASCIIToUTF16("addr1")));
+ {
+ AutofillScanner scanner(list_.get());
+ field_ = Parse(&scanner);
+ ASSERT_EQ(nullptr, field_.get());
+ }
+
+ AddDummyCityField();
AutofillScanner scanner(list_.get());
field_ = Parse(&scanner);
ASSERT_NE(nullptr, field_.get());
+
ASSERT_TRUE(field_->ClassifyField(&field_type_map_));
ASSERT_TRUE(
field_type_map_.find(ASCIIToUTF16("addr1")) != field_type_map_.end());
@@ -77,6 +94,7 @@ TEST_F(AddressFieldTest, ParseTwoLineAddress) {
field.name = ASCIIToUTF16("address2");
list_.push_back(new AutofillField(field, ASCIIToUTF16("addr2")));
+ AddDummyCityField();
AutofillScanner scanner(list_.get());
field_ = Parse(&scanner);
ASSERT_NE(nullptr, field_.get());
@@ -105,6 +123,7 @@ TEST_F(AddressFieldTest, ParseThreeLineAddress) {
field.name = ASCIIToUTF16("Address3");
list_.push_back(new AutofillField(field, ASCIIToUTF16("addr3")));
+ AddDummyCityField();
AutofillScanner scanner(list_.get());
field_ = Parse(&scanner);
ASSERT_NE(nullptr, field_.get());
@@ -128,6 +147,7 @@ TEST_F(AddressFieldTest, ParseStreetAddressFromTextArea) {
field.name = ASCIIToUTF16("address");
list_.push_back(new AutofillField(field, ASCIIToUTF16("addr")));
+ AddDummyCityField();
AutofillScanner scanner(list_.get());
field_ = Parse(&scanner);
ASSERT_NE(nullptr, field_.get());

Powered by Google App Engine
This is Rietveld 408576698