summaryrefslogtreecommitdiffstats
path: root/components
diff options
context:
space:
mode:
authorramankk@chromium.org <ramankk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-04 10:55:32 +0000
committerramankk@chromium.org <ramankk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-04 10:55:32 +0000
commit4441ac61dcc9b9a763d67f2104b2dd16ae82fd89 (patch)
tree4a74f55e1903ae4f7ec0211aaa38d4b8802e03f8 /components
parentf050caf5486618fb5ae6d4bb9ca4f2d7985559fa (diff)
downloadchromium_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.cc4
-rw-r--r--components/autofill/browser/autocheckout_manager_unittest.cc13
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();