Chromium Code Reviews| Index: components/autofill/core/browser/webdata/autofill_table_unittest.cc |
| diff --git a/components/autofill/core/browser/webdata/autofill_table_unittest.cc b/components/autofill/core/browser/webdata/autofill_table_unittest.cc |
| index f3cf2006b1ac6c27f43c08654179e51bc4bea717..6a53237d9a29f5345559fd618b13e9e09f8982a5 100644 |
| --- a/components/autofill/core/browser/webdata/autofill_table_unittest.cc |
| +++ b/components/autofill/core/browser/webdata/autofill_table_unittest.cc |
| @@ -5,6 +5,7 @@ |
| #include <utility> |
| #include <vector> |
| +#include "base/command_line.h" |
| #include "base/files/file_util.h" |
| #include "base/files/scoped_temp_dir.h" |
| #include "base/guid.h" |
| @@ -21,6 +22,8 @@ |
| #include "components/autofill/core/browser/webdata/autofill_change.h" |
| #include "components/autofill/core/browser/webdata/autofill_entry.h" |
| #include "components/autofill/core/browser/webdata/autofill_table.h" |
| +#include "components/autofill/core/common/autofill_switches.h" |
| +#include "components/autofill/core/common/autofill_util.h" |
| #include "components/autofill/core/common/form_field_data.h" |
| #include "components/os_crypt/os_crypt.h" |
| #include "components/webdata/common/web_database.h" |
| @@ -1856,4 +1859,60 @@ TEST_F(AutofillTableTest, DeleteUnmaskedCard) { |
| outputs.clear(); |
| } |
| +TEST_F(AutofillTableTest, GetFormValuesForElementName) { |
| + // Token matching is currently behind a flag. |
| + base::CommandLine::ForCurrentProcess()->AppendSwitch( |
| + autofill::switches::kEnableSuggestionsWithSubstringMatch); |
| + |
| + const size_t max_count = 2; |
|
please use gerrit instead
2015/07/03 02:05:43
We usually format constants kLikeThis.
const size
Pritam Nikam
2015/07/03 16:21:27
Done.
|
| + const struct { |
| + const char* const field_suggestion[max_count]; |
| + const char* const field_contents; |
| + size_t expected_suggestion_count; |
| + const char* const expected_suggestion[max_count]; |
| + } test_cases[] = { |
|
please use gerrit instead
2015/07/03 02:05:43
kTestCases
Pritam Nikam
2015/07/03 16:21:27
Done.
|
| + {{"user.test", "test_user"}, "TEST", 2, {"test_user", "user.test"}}, |
| + {{"user test", "test-user"}, "user", 2, {"user test", "test-user"}}, |
| + {{"user test", "test-rest"}, "user", 1, {"user test", nullptr}}, |
| + {{"user@test", "test_user"}, "user@t", 1, {"user@test", nullptr}}, |
| + {{"user.test", "test_user"}, "er.tes", 0, {nullptr, nullptr}}, |
| + {{"user test", "test_user"}, "_ser", 0, {nullptr, nullptr}}, |
| + {{"user.test", "test_user"}, "%ser", 0, {nullptr, nullptr}}, |
| + {{"user.test", "test_user"}, |
| + "; DROP TABLE autofill;", |
| + 0, |
| + {nullptr, nullptr}}, |
| + }; |
| + |
| + for (size_t i = 0; i < arraysize(test_cases); ++i) { |
| + SCOPED_TRACE(testing::Message() |
| + << "suggestion = " << test_cases[i].field_suggestion[0] |
| + << ", contents = " << test_cases[i].field_contents); |
| + |
| + Time t1 = Time::Now(); |
| + |
| + // Simulate the submission of a handful of entries in a field called "Name". |
| + AutofillChangeList changes; |
| + FormFieldData field; |
| + for (size_t k = 0; k < arraysize(test_cases[i].field_suggestion); ++k) { |
|
please use gerrit instead
2015/07/03 02:05:43
You can use kMaxCount instead of arraysize(...) he
Pritam Nikam
2015/07/03 16:21:27
Done.
|
| + field.name = ASCIIToUTF16("Name"); |
| + field.value = ASCIIToUTF16(test_cases[i].field_suggestion[k]); |
| + table_->AddFormFieldValue(field, &changes); |
| + } |
| + |
| + std::vector<base::string16> v; |
| + table_->GetFormValuesForElementName( |
| + ASCIIToUTF16("Name"), ASCIIToUTF16(test_cases[i].field_contents), &v, |
| + 6); |
| + |
| + EXPECT_EQ(test_cases[i].expected_suggestion_count, v.size()); |
| + for (size_t j = 0; j < test_cases[i].expected_suggestion_count; ++j) { |
| + EXPECT_EQ(ASCIIToUTF16(test_cases[i].expected_suggestion[j]), v[j]); |
| + } |
| + |
| + changes.clear(); |
| + table_->RemoveFormElementsAddedBetween(t1, Time(), &changes); |
| + } |
| +} |
| + |
| } // namespace autofill |