| Index: components/autofill/core/browser/autofill_merge_unittest.cc
|
| diff --git a/components/autofill/core/browser/autofill_merge_unittest.cc b/components/autofill/core/browser/autofill_merge_unittest.cc
|
| index 571fed9e1c64a9dce6840fe6919f32693e869dfd..e1fef9ea2f6bfc13663e5c4ba16176366b9b3a4d 100644
|
| --- a/components/autofill/core/browser/autofill_merge_unittest.cc
|
| +++ b/components/autofill/core/browser/autofill_merge_unittest.cc
|
| @@ -8,6 +8,7 @@
|
| #include <memory>
|
| #include <vector>
|
|
|
| +#include "base/files/file_enumerator.h"
|
| #include "base/files/file_path.h"
|
| #include "base/macros.h"
|
| #include "base/path_service.h"
|
| @@ -24,6 +25,10 @@
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #include "url/gurl.h"
|
|
|
| +#if defined(OS_MACOSX)
|
| +#include "base/mac/foundation_util.h"
|
| +#endif
|
| +
|
| namespace autofill {
|
|
|
| namespace {
|
| @@ -35,20 +40,18 @@ const char kFieldSeparator[] = ": ";
|
| const char kProfileSeparator[] = "---";
|
| const size_t kFieldOffset = arraysize(kFieldSeparator) - 1;
|
|
|
| -const ServerFieldType kProfileFieldTypes[] = {
|
| - NAME_FIRST,
|
| - NAME_MIDDLE,
|
| - NAME_LAST,
|
| - EMAIL_ADDRESS,
|
| - COMPANY_NAME,
|
| - ADDRESS_HOME_LINE1,
|
| - ADDRESS_HOME_LINE2,
|
| - ADDRESS_HOME_CITY,
|
| - ADDRESS_HOME_STATE,
|
| - ADDRESS_HOME_ZIP,
|
| - ADDRESS_HOME_COUNTRY,
|
| - PHONE_HOME_WHOLE_NUMBER
|
| -};
|
| +const ServerFieldType kProfileFieldTypes[] = {NAME_FIRST,
|
| + NAME_MIDDLE,
|
| + NAME_LAST,
|
| + NAME_FULL,
|
| + EMAIL_ADDRESS,
|
| + COMPANY_NAME,
|
| + ADDRESS_HOME_STREET_ADDRESS,
|
| + ADDRESS_HOME_CITY,
|
| + ADDRESS_HOME_STATE,
|
| + ADDRESS_HOME_ZIP,
|
| + ADDRESS_HOME_COUNTRY,
|
| + PHONE_HOME_WHOLE_NUMBER};
|
|
|
| const base::FilePath& GetTestDataDir() {
|
| CR_DEFINE_STATIC_LOCAL(base::FilePath, dir, ());
|
| @@ -61,6 +64,25 @@ const base::FilePath& GetTestDataDir() {
|
| return dir;
|
| }
|
|
|
| +const std::vector<base::FilePath> GetTestFiles() {
|
| + base::FilePath dir = GetTestDataDir();
|
| + dir = dir.AppendASCII("autofill").AppendASCII("merge").AppendASCII("input");
|
| + base::FileEnumerator input_files(dir, false, base::FileEnumerator::FILES,
|
| + kFileNamePattern);
|
| + std::vector<base::FilePath> files;
|
| + for (base::FilePath input_file = input_files.Next(); !input_file.empty();
|
| + input_file = input_files.Next()) {
|
| + files.push_back(input_file);
|
| + }
|
| + std::sort(files.begin(), files.end());
|
| +
|
| +#if defined(OS_MACOSX)
|
| + base::mac::ClearAmIBundledCache();
|
| +#endif // defined(OS_MACOSX)
|
| +
|
| + return files;
|
| +}
|
| +
|
| // Serializes the |profiles| into a string.
|
| std::string SerializeProfiles(const std::vector<AutofillProfile*>& profiles) {
|
| std::string result;
|
| @@ -72,6 +94,8 @@ std::string SerializeProfiles(const std::vector<AutofillProfile*>& profiles) {
|
| base::string16 value = profiles[i]->GetRawInfo(type);
|
| result += AutofillType(type).ToString();
|
| result += kFieldSeparator;
|
| + base::ReplaceFirstSubstringAfterOffset(
|
| + &value, 0, base::ASCIIToUTF16("\n"), base::ASCIIToUTF16("\\n"));
|
| result += base::UTF16ToUTF8(value);
|
| result += "\n";
|
| }
|
| @@ -131,8 +155,8 @@ const std::vector<AutofillProfile*>& PersonalDataManagerMock::web_profiles()
|
| // corresponding output file is a dump of the saved profiles that result from
|
| // importing the input profiles. The output file format is identical to the
|
| // input format.
|
| -class AutofillMergeTest : public testing::Test,
|
| - public DataDrivenTest {
|
| +class AutofillMergeTest : public DataDrivenTest,
|
| + public testing::TestWithParam<base::FilePath> {
|
| protected:
|
| AutofillMergeTest();
|
| ~AutofillMergeTest() override;
|
| @@ -194,7 +218,6 @@ void AutofillMergeTest::MergeProfiles(const std::string& profiles,
|
| profiles, "\n", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
|
| for (size_t i = 0; i < lines.size(); ++i) {
|
| std::string line = lines[i];
|
| -
|
| if (line != kProfileSeparator) {
|
| // Add a field to the current profile.
|
| size_t separator_pos = line.find(kFieldSeparator);
|
| @@ -247,9 +270,10 @@ ServerFieldType AutofillMergeTest::StringToFieldType(const std::string& str) {
|
| return string_to_field_type_map_[str];
|
| }
|
|
|
| -TEST_F(AutofillMergeTest, DataDrivenMergeProfiles) {
|
| - RunDataDrivenTest(GetInputDirectory(kTestName), GetOutputDirectory(kTestName),
|
| - kFileNamePattern);
|
| +TEST_P(AutofillMergeTest, DataDrivenMergeProfiles) {
|
| + RunOneDataDrivenTest(GetParam(), GetOutputDirectory(kTestName));
|
| }
|
|
|
| +INSTANTIATE_TEST_CASE_P(, AutofillMergeTest, testing::ValuesIn(GetTestFiles()));
|
| +
|
| } // namespace autofill
|
|
|