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

Side by Side Diff: components/autofill/core/browser/autofill_merge_unittest.cc

Issue 22009003: [Autofill] Distinguish between native field types and potentially HTML field types. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 7 years, 4 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <vector> 5 #include <vector>
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/files/file_path.h" 8 #include "base/files/file_path.h"
9 #include "base/path_service.h" 9 #include "base/path_service.h"
10 #include "base/strings/string_util.h" 10 #include "base/strings/string_util.h"
(...skipping 12 matching lines...) Expand all
23 23
24 namespace { 24 namespace {
25 25
26 const base::FilePath::CharType kTestName[] = FILE_PATH_LITERAL("merge"); 26 const base::FilePath::CharType kTestName[] = FILE_PATH_LITERAL("merge");
27 const base::FilePath::CharType kFileNamePattern[] = FILE_PATH_LITERAL("*.in"); 27 const base::FilePath::CharType kFileNamePattern[] = FILE_PATH_LITERAL("*.in");
28 28
29 const char kFieldSeparator[] = ": "; 29 const char kFieldSeparator[] = ": ";
30 const char kProfileSeparator[] = "---"; 30 const char kProfileSeparator[] = "---";
31 const size_t kFieldOffset = arraysize(kFieldSeparator) - 1; 31 const size_t kFieldOffset = arraysize(kFieldSeparator) - 1;
32 32
33 const AutofillFieldType kProfileFieldTypes[] = { 33 const ServerFieldType kProfileFieldTypes[] = {
34 NAME_FIRST, 34 NAME_FIRST,
35 NAME_MIDDLE, 35 NAME_MIDDLE,
36 NAME_LAST, 36 NAME_LAST,
37 EMAIL_ADDRESS, 37 EMAIL_ADDRESS,
38 COMPANY_NAME, 38 COMPANY_NAME,
39 ADDRESS_HOME_LINE1, 39 ADDRESS_HOME_LINE1,
40 ADDRESS_HOME_LINE2, 40 ADDRESS_HOME_LINE2,
41 ADDRESS_HOME_CITY, 41 ADDRESS_HOME_CITY,
42 ADDRESS_HOME_STATE, 42 ADDRESS_HOME_STATE,
43 ADDRESS_HOME_ZIP, 43 ADDRESS_HOME_ZIP,
(...skipping 12 matching lines...) Expand all
56 return dir; 56 return dir;
57 } 57 }
58 58
59 // Serializes the |profiles| into a string. 59 // Serializes the |profiles| into a string.
60 std::string SerializeProfiles(const std::vector<AutofillProfile*>& profiles) { 60 std::string SerializeProfiles(const std::vector<AutofillProfile*>& profiles) {
61 std::string result; 61 std::string result;
62 for (size_t i = 0; i < profiles.size(); ++i) { 62 for (size_t i = 0; i < profiles.size(); ++i) {
63 result += kProfileSeparator; 63 result += kProfileSeparator;
64 result += "\n"; 64 result += "\n";
65 for (size_t j = 0; j < arraysize(kProfileFieldTypes); ++j) { 65 for (size_t j = 0; j < arraysize(kProfileFieldTypes); ++j) {
66 AutofillFieldType type = kProfileFieldTypes[j]; 66 ServerFieldType type = kProfileFieldTypes[j];
67 std::vector<base::string16> values; 67 std::vector<base::string16> values;
68 profiles[i]->GetRawMultiInfo(type, &values); 68 profiles[i]->GetRawMultiInfo(type, &values);
69 for (size_t k = 0; k < values.size(); ++k) { 69 for (size_t k = 0; k < values.size(); ++k) {
70 result += AutofillType::FieldTypeToString(type); 70 result += AutofillType::FieldTypeToString(type);
71 result += kFieldSeparator; 71 result += kFieldSeparator;
72 result += UTF16ToUTF8(values[k]); 72 result += UTF16ToUTF8(values[k]);
73 result += "\n"; 73 result += "\n";
74 } 74 }
75 } 75 }
76 } 76 }
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 // The first line is always a profile separator, and the last profile is not 202 // The first line is always a profile separator, and the last profile is not
203 // followed by an explicit separator. 203 // followed by an explicit separator.
204 if ((i > 0 && line == kProfileSeparator) || i == lines.size() - 1) { 204 if ((i > 0 && line == kProfileSeparator) || i == lines.size() - 1) {
205 // Reached the end of a profile. Try to import it. 205 // Reached the end of a profile. Try to import it.
206 FormStructure form_structure(form, std::string()); 206 FormStructure form_structure(form, std::string());
207 for (size_t i = 0; i < form_structure.field_count(); ++i) { 207 for (size_t i = 0; i < form_structure.field_count(); ++i) {
208 // Set the heuristic type for each field, which is currently serialized 208 // Set the heuristic type for each field, which is currently serialized
209 // into the field's name. 209 // into the field's name.
210 AutofillField* field = 210 AutofillField* field =
211 const_cast<AutofillField*>(form_structure.field(i)); 211 const_cast<AutofillField*>(form_structure.field(i));
212 AutofillFieldType type = 212 ServerFieldType type =
213 AutofillType::StringToFieldType(UTF16ToUTF8(field->name)); 213 AutofillType::StringToFieldType(UTF16ToUTF8(field->name));
214 field->set_heuristic_type(type); 214 field->set_heuristic_type(type);
215 } 215 }
216 216
217 // Import the profile. 217 // Import the profile.
218 const CreditCard* imported_credit_card; 218 const CreditCard* imported_credit_card;
219 personal_data_.ImportFormData(form_structure, &imported_credit_card); 219 personal_data_.ImportFormData(form_structure, &imported_credit_card);
220 EXPECT_EQ(static_cast<const CreditCard*>(NULL), imported_credit_card); 220 EXPECT_EQ(static_cast<const CreditCard*>(NULL), imported_credit_card);
221 221
222 // Clear the |form| to start a new profile. 222 // Clear the |form| to start a new profile.
223 form.fields.clear(); 223 form.fields.clear();
224 } 224 }
225 } 225 }
226 226
227 *merged_profiles = SerializeProfiles(personal_data_.web_profiles()); 227 *merged_profiles = SerializeProfiles(personal_data_.web_profiles());
228 } 228 }
229 229
230 TEST_F(AutofillMergeTest, DataDrivenMergeProfiles) { 230 TEST_F(AutofillMergeTest, DataDrivenMergeProfiles) {
231 RunDataDrivenTest(GetInputDirectory(kTestName), GetOutputDirectory(kTestName), 231 RunDataDrivenTest(GetInputDirectory(kTestName), GetOutputDirectory(kTestName),
232 kFileNamePattern); 232 kFileNamePattern);
233 } 233 }
234 234
235 } // namespace autofill 235 } // namespace autofill
OLDNEW
« no previous file with comments | « components/autofill/core/browser/autofill_manager_unittest.cc ('k') | components/autofill/core/browser/autofill_metrics.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698