diff options
author | ramankk@chromium.org <ramankk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-04 10:55:32 +0000 |
---|---|---|
committer | ramankk@chromium.org <ramankk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-04 10:55:32 +0000 |
commit | 4441ac61dcc9b9a763d67f2104b2dd16ae82fd89 (patch) | |
tree | 4a74f55e1903ae4f7ec0211aaa38d4b8802e03f8 /components | |
parent | f050caf5486618fb5ae6d4bb9ca4f2d7985559fa (diff) | |
download | chromium_src-4441ac61dcc9b9a763d67f2104b2dd16ae82fd89.zip chromium_src-4441ac61dcc9b9a763d67f2104b2dd16ae82fd89.tar.gz chromium_src-4441ac61dcc9b9a763d67f2104b2dd16ae82fd89.tar.bz2 |
Let autocheckout use AutofillField's server_type() instead of type()
BUG=226259
Review URL: https://chromiumcodereview.appspot.com/13506003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@192283 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'components')
-rw-r--r-- | components/autofill/browser/autocheckout_manager.cc | 4 | ||||
-rw-r--r-- | components/autofill/browser/autocheckout_manager_unittest.cc | 13 |
2 files changed, 14 insertions, 3 deletions
diff --git a/components/autofill/browser/autocheckout_manager.cc b/components/autofill/browser/autocheckout_manager.cc index f02f0bc..0c8181b 100644 --- a/components/autofill/browser/autocheckout_manager.cc +++ b/components/autofill/browser/autocheckout_manager.cc @@ -308,6 +308,10 @@ void AutocheckoutManager::ReturnAutocheckoutData( void AutocheckoutManager::SetValue(const AutofillField& field, FormFieldData* field_to_fill) { + // No-op if Autofill server doesn't know about the field. + if (field.server_type() == NO_SERVER_DATA) + return; + AutofillFieldType type = field.type(); if (type == FIELD_WITH_DEFAULT_VALUE) { diff --git a/components/autofill/browser/autocheckout_manager_unittest.cc b/components/autofill/browser/autocheckout_manager_unittest.cc index 33440f2..280983d 100644 --- a/components/autofill/browser/autocheckout_manager_unittest.cc +++ b/components/autofill/browser/autocheckout_manager_unittest.cc @@ -63,8 +63,12 @@ scoped_ptr<FormStructure> CreateTestFormStructure( new FormStructure(form, std::string())); // Set mocked Autofill server field types. - for (size_t i = 0; i < autofill_types.size(); ++i) + for (size_t i = 0; i < autofill_types.size(); ++i) { form_structure->field(i)->set_server_type(autofill_types[i]); + // Set heuristic type to make sure that server_types are used and not + // heuritic type. + form_structure->field(i)->set_heuristic_type(CREDIT_CARD_NUMBER); + } return form_structure.Pass(); } @@ -74,7 +78,7 @@ scoped_ptr<FormStructure> CreateTestAddressFormStructure() { autofill_types.push_back(NAME_FULL); autofill_types.push_back(PHONE_HOME_WHOLE_NUMBER); autofill_types.push_back(EMAIL_ADDRESS); - + autofill_types.push_back(NO_SERVER_DATA); return CreateTestFormStructure(autofill_types); } @@ -429,10 +433,13 @@ TEST_F(AutocheckoutManagerTest, TestFillForms) { std::vector<FormData> filled_forms = ReadFilledForms(); ASSERT_EQ(1U, filled_forms.size()); - ASSERT_EQ(3U, filled_forms[0].fields.size()); + ASSERT_EQ(4U, filled_forms[0].fields.size()); EXPECT_EQ(ASCIIToUTF16("Test User"), filled_forms[0].fields[0].value); EXPECT_EQ(ASCIIToUTF16("650-123-9909"), filled_forms[0].fields[1].value); EXPECT_EQ(ASCIIToUTF16("blah@blah.com"), filled_forms[0].fields[2].value); + // Last field should not be filled, because there is no server mapping + // available for it. + EXPECT_EQ(ASCIIToUTF16("SomeField"), filled_forms[0].fields[3].value); filled_forms.clear(); ClearIpcSink(); |