| Index: chrome/browser/webdata/web_database_unittest.cc
|
| ===================================================================
|
| --- chrome/browser/webdata/web_database_unittest.cc (revision 55892)
|
| +++ chrome/browser/webdata/web_database_unittest.cc (working copy)
|
| @@ -905,6 +905,53 @@
|
| EXPECT_EQ(1U, expected_entries.count(entry));
|
| }
|
|
|
| +TEST_F(WebDatabaseTest, Autofill_AddFormFieldValues) {
|
| + WebDatabase db;
|
| + ASSERT_EQ(sql::INIT_OK, db.Init(file_));
|
| +
|
| + Time t = Time::Now();
|
| +
|
| + // Add multiple values for "firstname" and "lastname" names. Test that only
|
| + // first value of each gets added. Related to security issue:
|
| + // http://crbug.com/51727.
|
| + std::vector<FormField> elements;
|
| + elements.push_back(FormField(string16(),
|
| + ASCIIToUTF16("firstname"),
|
| + ASCIIToUTF16("Joe"),
|
| + string16(),
|
| + 0));
|
| + elements.push_back(FormField(string16(),
|
| + ASCIIToUTF16("firstname"),
|
| + ASCIIToUTF16("Jane"),
|
| + string16(),
|
| + 0));
|
| + elements.push_back(FormField(string16(),
|
| + ASCIIToUTF16("lastname"),
|
| + ASCIIToUTF16("Smith"),
|
| + string16(),
|
| + 0));
|
| + elements.push_back(FormField(string16(),
|
| + ASCIIToUTF16("lastname"),
|
| + ASCIIToUTF16("Jones"),
|
| + string16(),
|
| + 0));
|
| +
|
| + std::vector<AutofillChange> changes;
|
| + db.AddFormFieldValuesTime(elements, &changes, t);
|
| +
|
| + ASSERT_EQ(2U, changes.size());
|
| + EXPECT_EQ(changes[0], AutofillChange(AutofillChange::ADD,
|
| + AutofillKey(ASCIIToUTF16("firstname"),
|
| + ASCIIToUTF16("Joe"))));
|
| + EXPECT_EQ(changes[1], AutofillChange(AutofillChange::ADD,
|
| + AutofillKey(ASCIIToUTF16("lastname"),
|
| + ASCIIToUTF16("Smith"))));
|
| +
|
| + std::vector<AutofillEntry> all_entries;
|
| + ASSERT_TRUE(db.GetAllAutofillEntries(&all_entries));
|
| + ASSERT_EQ(2U, all_entries.size());
|
| +}
|
| +
|
| static bool AddTimestampedLogin(WebDatabase* db, std::string url,
|
| const std::string& unique_string,
|
| const Time& time) {
|
|
|