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

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

Issue 2403773002: Remove stl_util's STLDeleteContainerPointers from autofill. (Closed)
Patch Set: rebase Created 4 years, 2 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
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 "components/autofill/core/browser/autofill_manager.h" 5 #include "components/autofill/core/browser/autofill_manager.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <memory> 10 #include <memory>
11 #include <vector> 11 #include <vector>
12 12
13 #include "base/command_line.h" 13 #include "base/command_line.h"
14 #include "base/feature_list.h" 14 #include "base/feature_list.h"
15 #include "base/format_macros.h" 15 #include "base/format_macros.h"
16 #include "base/macros.h" 16 #include "base/macros.h"
17 #include "base/memory/ptr_util.h"
17 #include "base/memory/ref_counted.h" 18 #include "base/memory/ref_counted.h"
18 #include "base/memory/scoped_vector.h" 19 #include "base/memory/scoped_vector.h"
19 #include "base/metrics/field_trial.h" 20 #include "base/metrics/field_trial.h"
20 #include "base/run_loop.h" 21 #include "base/run_loop.h"
21 #include "base/strings/string16.h" 22 #include "base/strings/string16.h"
22 #include "base/strings/string_number_conversions.h" 23 #include "base/strings/string_number_conversions.h"
23 #include "base/strings/string_util.h" 24 #include "base/strings/string_util.h"
24 #include "base/strings/stringprintf.h" 25 #include "base/strings/stringprintf.h"
25 #include "base/strings/utf_string_conversions.h" 26 #include "base/strings/utf_string_conversions.h"
26 #include "base/test/histogram_tester.h" 27 #include "base/test/histogram_tester.h"
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 124
124 using PersonalDataManager::set_database; 125 using PersonalDataManager::set_database;
125 using PersonalDataManager::SetPrefService; 126 using PersonalDataManager::SetPrefService;
126 127
127 int num_times_save_imported_profile_called() { 128 int num_times_save_imported_profile_called() {
128 return num_times_save_imported_profile_called_; 129 return num_times_save_imported_profile_called_;
129 } 130 }
130 131
131 std::string SaveImportedProfile(const AutofillProfile& profile) override { 132 std::string SaveImportedProfile(const AutofillProfile& profile) override {
132 num_times_save_imported_profile_called_++; 133 num_times_save_imported_profile_called_++;
133 AutofillProfile* imported_profile = new AutofillProfile(profile); 134 AddProfile(base::MakeUnique<AutofillProfile>(profile));
134 AddProfile(imported_profile);
135 return profile.guid(); 135 return profile.guid();
136 } 136 }
137 137
138 AutofillProfile* GetProfileWithGUID(const char* guid) { 138 AutofillProfile* GetProfileWithGUID(const char* guid) {
139 for (AutofillProfile* profile : GetProfiles()) { 139 for (AutofillProfile* profile : GetProfiles()) {
140 if (!profile->guid().compare(guid)) 140 if (!profile->guid().compare(guid))
141 return profile; 141 return profile;
142 } 142 }
143 return NULL; 143 return NULL;
144 } 144 }
145 145
146 CreditCard* GetCreditCardWithGUID(const char* guid) { 146 CreditCard* GetCreditCardWithGUID(const char* guid) {
147 for (CreditCard* card : GetCreditCards()) { 147 for (CreditCard* card : GetCreditCards()) {
148 if (!card->guid().compare(guid)) 148 if (!card->guid().compare(guid))
149 return card; 149 return card;
150 } 150 }
151 return NULL; 151 return NULL;
152 } 152 }
153 153
154 void AddProfile(AutofillProfile* profile) { 154 void AddProfile(std::unique_ptr<AutofillProfile> profile) {
155 profile->set_modification_date(base::Time::Now()); 155 profile->set_modification_date(base::Time::Now());
156 web_profiles_.push_back(profile); 156 web_profiles_.push_back(std::move(profile));
157 } 157 }
158 158
159 void AddCreditCard(CreditCard* credit_card) { 159 void AddCreditCard(std::unique_ptr<CreditCard> credit_card) {
160 credit_card->set_modification_date(base::Time::Now()); 160 credit_card->set_modification_date(base::Time::Now());
161 local_credit_cards_.push_back(credit_card); 161 local_credit_cards_.push_back(std::move(credit_card));
162 } 162 }
163 163
164 void RecordUseOf(const AutofillDataModel& data_model) override { 164 void RecordUseOf(const AutofillDataModel& data_model) override {
165 CreditCard* credit_card = GetCreditCardWithGUID(data_model.guid().c_str()); 165 CreditCard* credit_card = GetCreditCardWithGUID(data_model.guid().c_str());
166 if (credit_card) 166 if (credit_card)
167 credit_card->RecordAndLogUse(); 167 credit_card->RecordAndLogUse();
168 168
169 AutofillProfile* profile = GetProfileWithGUID(data_model.guid().c_str()); 169 AutofillProfile* profile = GetProfileWithGUID(data_model.guid().c_str());
170 if (profile) 170 if (profile)
171 profile->RecordAndLogUse(); 171 profile->RecordAndLogUse();
172 } 172 }
173 173
174 void RemoveByGUID(const std::string& guid) override { 174 void RemoveByGUID(const std::string& guid) override {
175 CreditCard* credit_card = GetCreditCardWithGUID(guid.c_str()); 175 CreditCard* credit_card = GetCreditCardWithGUID(guid.c_str());
176 if (credit_card) { 176 if (credit_card) {
177 local_credit_cards_.erase( 177 local_credit_cards_.erase(
178 std::find(local_credit_cards_.begin(), local_credit_cards_.end(), 178 std::find_if(local_credit_cards_.begin(), local_credit_cards_.end(),
179 credit_card)); 179 [credit_card](const std::unique_ptr<CreditCard>& ptr) {
180 return ptr.get() == credit_card;
181 }));
180 } 182 }
181 183
182 AutofillProfile* profile = GetProfileWithGUID(guid.c_str()); 184 AutofillProfile* profile = GetProfileWithGUID(guid.c_str());
183 if (profile) { 185 if (profile) {
184 web_profiles_.erase( 186 web_profiles_.erase(
185 std::find(web_profiles_.begin(), web_profiles_.end(), profile)); 187 std::find_if(web_profiles_.begin(), web_profiles_.end(),
188 [profile](const std::unique_ptr<AutofillProfile>& ptr) {
189 return ptr.get() == profile;
190 }));
186 } 191 }
187 } 192 }
188 193
189 void ClearAutofillProfiles() { 194 void ClearAutofillProfiles() {
190 web_profiles_.clear(); 195 web_profiles_.clear();
191 } 196 }
192 197
193 void ClearCreditCards() { 198 void ClearCreditCards() {
194 local_credit_cards_.clear(); 199 local_credit_cards_.clear();
195 } 200 }
196 201
197 // Create Elvis card with whitespace in the credit card number. 202 // Create Elvis card with whitespace in the credit card number.
198 void CreateTestCreditCardWithWhitespace() { 203 void CreateTestCreditCardWithWhitespace() {
199 ClearCreditCards(); 204 ClearCreditCards();
200 CreditCard* credit_card = new CreditCard; 205 std::unique_ptr<CreditCard> credit_card = base::MakeUnique<CreditCard>();
201 test::SetCreditCardInfo(credit_card, "Elvis Presley", 206 test::SetCreditCardInfo(credit_card.get(), "Elvis Presley",
202 "4234 5678 9012 3456", // Visa 207 "4234 5678 9012 3456", // Visa
203 "04", "2999"); 208 "04", "2999");
204 credit_card->set_guid("00000000-0000-0000-0000-000000000008"); 209 credit_card->set_guid("00000000-0000-0000-0000-000000000008");
205 local_credit_cards_.push_back(credit_card); 210 local_credit_cards_.push_back(std::move(credit_card));
206 } 211 }
207 212
208 // Create Elvis card with separator characters in the credit card number. 213 // Create Elvis card with separator characters in the credit card number.
209 void CreateTestCreditCardWithSeparators() { 214 void CreateTestCreditCardWithSeparators() {
210 ClearCreditCards(); 215 ClearCreditCards();
211 CreditCard* credit_card = new CreditCard; 216 std::unique_ptr<CreditCard> credit_card = base::MakeUnique<CreditCard>();
212 test::SetCreditCardInfo(credit_card, "Elvis Presley", 217 test::SetCreditCardInfo(credit_card.get(), "Elvis Presley",
213 "4234-5678-9012-3456", // Visa 218 "4234-5678-9012-3456", // Visa
214 "04", "2999"); 219 "04", "2999");
215 credit_card->set_guid("00000000-0000-0000-0000-000000000009"); 220 credit_card->set_guid("00000000-0000-0000-0000-000000000009");
216 local_credit_cards_.push_back(credit_card); 221 local_credit_cards_.push_back(std::move(credit_card));
217 } 222 }
218 223
219 void CreateTestCreditCardsYearAndMonth(const char* year, const char* month) { 224 void CreateTestCreditCardsYearAndMonth(const char* year, const char* month) {
220 ClearCreditCards(); 225 ClearCreditCards();
221 CreditCard* credit_card = new CreditCard; 226 std::unique_ptr<CreditCard> credit_card = base::MakeUnique<CreditCard>();
222 test::SetCreditCardInfo(credit_card, "Miku Hatsune", 227 test::SetCreditCardInfo(credit_card.get(), "Miku Hatsune",
223 "4234567890654321", // Visa 228 "4234567890654321", // Visa
224 month, year); 229 month, year);
225 credit_card->set_guid("00000000-0000-0000-0000-000000000007"); 230 credit_card->set_guid("00000000-0000-0000-0000-000000000007");
226 local_credit_cards_.push_back(credit_card); 231 local_credit_cards_.push_back(std::move(credit_card));
227 } 232 }
228 233
229 void CreateTestExpiredCreditCard() { 234 void CreateTestExpiredCreditCard() {
230 ClearCreditCards(); 235 ClearCreditCards();
231 CreditCard* credit_card = new CreditCard; 236 std::unique_ptr<CreditCard> credit_card = base::MakeUnique<CreditCard>();
232 test::SetCreditCardInfo(credit_card, "Homer Simpson", 237 test::SetCreditCardInfo(credit_card.get(), "Homer Simpson",
233 "4234567890654321", // Visa 238 "4234567890654321", // Visa
234 "05", "2000"); 239 "05", "2000");
235 credit_card->set_guid("00000000-0000-0000-0000-000000000009"); 240 credit_card->set_guid("00000000-0000-0000-0000-000000000009");
236 local_credit_cards_.push_back(credit_card); 241 local_credit_cards_.push_back(std::move(credit_card));
237 } 242 }
238 243
239 private: 244 private:
240 void CreateTestAutofillProfiles(ScopedVector<AutofillProfile>* profiles) { 245 void CreateTestAutofillProfiles(
241 AutofillProfile* profile = new AutofillProfile; 246 std::vector<std::unique_ptr<AutofillProfile>>* profiles) {
242 test::SetProfileInfo(profile, "Elvis", "Aaron", 247 std::unique_ptr<AutofillProfile> profile =
243 "Presley", "theking@gmail.com", "RCA", 248 base::MakeUnique<AutofillProfile>();
244 "3734 Elvis Presley Blvd.", "Apt. 10", 249 test::SetProfileInfo(profile.get(), "Elvis", "Aaron", "Presley",
245 "Memphis", "Tennessee", "38116", "US", 250 "theking@gmail.com", "RCA", "3734 Elvis Presley Blvd.",
251 "Apt. 10", "Memphis", "Tennessee", "38116", "US",
246 "12345678901"); 252 "12345678901");
247 profile->set_guid("00000000-0000-0000-0000-000000000001"); 253 profile->set_guid("00000000-0000-0000-0000-000000000001");
248 profiles->push_back(profile); 254 profiles->push_back(std::move(profile));
249 profile = new AutofillProfile; 255 profile = base::MakeUnique<AutofillProfile>();
250 test::SetProfileInfo(profile, "Charles", "Hardin", 256 test::SetProfileInfo(profile.get(), "Charles", "Hardin", "Holley",
251 "Holley", "buddy@gmail.com", "Decca", 257 "buddy@gmail.com", "Decca", "123 Apple St.", "unit 6",
252 "123 Apple St.", "unit 6", "Lubbock", 258 "Lubbock", "Texas", "79401", "US", "23456789012");
253 "Texas", "79401", "US", "23456789012");
254 profile->set_guid("00000000-0000-0000-0000-000000000002"); 259 profile->set_guid("00000000-0000-0000-0000-000000000002");
255 profiles->push_back(profile); 260 profiles->push_back(std::move(profile));
256 profile = new AutofillProfile; 261 profile = base::MakeUnique<AutofillProfile>();
257 test::SetProfileInfo( 262 test::SetProfileInfo(profile.get(), "", "", "", "", "", "", "", "", "", "",
258 profile, "", "", "", "", "", "", "", "", "", "", "", ""); 263 "", "");
259 profile->set_guid("00000000-0000-0000-0000-000000000003"); 264 profile->set_guid("00000000-0000-0000-0000-000000000003");
260 profiles->push_back(profile); 265 profiles->push_back(std::move(profile));
261 } 266 }
262 267
263 void CreateTestCreditCards(ScopedVector<CreditCard>* credit_cards) { 268 void CreateTestCreditCards(
264 CreditCard* credit_card = new CreditCard; 269 std::vector<std::unique_ptr<CreditCard>>* credit_cards) {
265 test::SetCreditCardInfo(credit_card, "Elvis Presley", 270 std::unique_ptr<CreditCard> credit_card = base::MakeUnique<CreditCard>();
271 test::SetCreditCardInfo(credit_card.get(), "Elvis Presley",
266 "4234567890123456", // Visa 272 "4234567890123456", // Visa
267 "04", "2999"); 273 "04", "2999");
268 credit_card->set_guid("00000000-0000-0000-0000-000000000004"); 274 credit_card->set_guid("00000000-0000-0000-0000-000000000004");
269 credit_card->set_use_count(10); 275 credit_card->set_use_count(10);
270 credit_card->set_use_date(base::Time::Now() - base::TimeDelta::FromDays(5)); 276 credit_card->set_use_date(base::Time::Now() - base::TimeDelta::FromDays(5));
271 credit_cards->push_back(credit_card); 277 credit_cards->push_back(std::move(credit_card));
272 278
273 credit_card = new CreditCard; 279 credit_card = base::MakeUnique<CreditCard>();
274 test::SetCreditCardInfo(credit_card, "Buddy Holly", 280 test::SetCreditCardInfo(credit_card.get(), "Buddy Holly",
275 "5187654321098765", // Mastercard 281 "5187654321098765", // Mastercard
276 "10", "2998"); 282 "10", "2998");
277 credit_card->set_guid("00000000-0000-0000-0000-000000000005"); 283 credit_card->set_guid("00000000-0000-0000-0000-000000000005");
278 credit_card->set_use_count(5); 284 credit_card->set_use_count(5);
279 credit_card->set_use_date(base::Time::Now() - base::TimeDelta::FromDays(4)); 285 credit_card->set_use_date(base::Time::Now() - base::TimeDelta::FromDays(4));
280 credit_cards->push_back(credit_card); 286 credit_cards->push_back(std::move(credit_card));
281 287
282 credit_card = new CreditCard; 288 credit_card = base::MakeUnique<CreditCard>();
283 test::SetCreditCardInfo(credit_card, "", "", "", ""); 289 test::SetCreditCardInfo(credit_card.get(), "", "", "", "");
284 credit_card->set_guid("00000000-0000-0000-0000-000000000006"); 290 credit_card->set_guid("00000000-0000-0000-0000-000000000006");
285 credit_cards->push_back(credit_card); 291 credit_cards->push_back(std::move(credit_card));
286 } 292 }
287 293
288 size_t num_times_save_imported_profile_called_; 294 size_t num_times_save_imported_profile_called_;
289 295
290 DISALLOW_COPY_AND_ASSIGN(TestPersonalDataManager); 296 DISALLOW_COPY_AND_ASSIGN(TestPersonalDataManager);
291 }; 297 };
292 298
293 class TestAutofillDownloadManager : public AutofillDownloadManager { 299 class TestAutofillDownloadManager : public AutofillDownloadManager {
294 public: 300 public:
295 TestAutofillDownloadManager(AutofillDriver* driver, 301 TestAutofillDownloadManager(AutofillDriver* driver,
(...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after
597 } 603 }
598 604
599 AutofillProfile* GetProfileWithGUID(const char* guid) { 605 AutofillProfile* GetProfileWithGUID(const char* guid) {
600 return personal_data_->GetProfileWithGUID(guid); 606 return personal_data_->GetProfileWithGUID(guid);
601 } 607 }
602 608
603 CreditCard* GetCreditCardWithGUID(const char* guid) { 609 CreditCard* GetCreditCardWithGUID(const char* guid) {
604 return personal_data_->GetCreditCardWithGUID(guid); 610 return personal_data_->GetCreditCardWithGUID(guid);
605 } 611 }
606 612
607 void AddProfile(AutofillProfile* profile) { 613 void AddProfile(std::unique_ptr<AutofillProfile> profile) {
608 personal_data_->AddProfile(profile); 614 personal_data_->AddProfile(std::move(profile));
609 } 615 }
610 616
611 void AddCreditCard(CreditCard* credit_card) { 617 void AddCreditCard(std::unique_ptr<CreditCard> credit_card) {
612 personal_data_->AddCreditCard(credit_card); 618 personal_data_->AddCreditCard(std::move(credit_card));
613 } 619 }
614 620
615 int GetPackedCreditCardID(int credit_card_id) { 621 int GetPackedCreditCardID(int credit_card_id) {
616 std::string credit_card_guid = 622 std::string credit_card_guid =
617 base::StringPrintf("00000000-0000-0000-0000-%012d", credit_card_id); 623 base::StringPrintf("00000000-0000-0000-0000-%012d", credit_card_id);
618 624
619 return MakeFrontendID(credit_card_guid, std::string()); 625 return MakeFrontendID(credit_card_guid, std::string());
620 } 626 }
621 627
622 void AddSeenForm(FormStructure* form) { 628 void AddSeenForm(std::unique_ptr<FormStructure> form) {
623 form_structures()->push_back(form); 629 form_structures()->push_back(std::move(form));
624 } 630 }
625 631
626 void ClearFormStructures() { 632 void ClearFormStructures() {
627 form_structures()->clear(); 633 form_structures()->clear();
628 } 634 }
629 635
630 private: 636 private:
631 void OnDidUploadCard(AutofillClient::PaymentsRpcResult result) override { 637 void OnDidUploadCard(AutofillClient::PaymentsRpcResult result) override {
632 credit_card_was_uploaded_ = true; 638 credit_card_was_uploaded_ = true;
633 }; 639 };
(...skipping 644 matching lines...) Expand 10 before | Expand all | Expand 10 after
1278 test::CreateTestAddressFormData(&form); 1284 test::CreateTestAddressFormData(&form);
1279 std::vector<FormData> forms(1, form); 1285 std::vector<FormData> forms(1, form);
1280 FormsSeen(forms); 1286 FormsSeen(forms);
1281 1287
1282 // First name is already autofilled which will make the section appear as 1288 // First name is already autofilled which will make the section appear as
1283 // "already autofilled". 1289 // "already autofilled".
1284 form.fields[0].is_autofilled = true; 1290 form.fields[0].is_autofilled = true;
1285 1291
1286 // Two profiles have the same last name, and the third shares the same first 1292 // Two profiles have the same last name, and the third shares the same first
1287 // letter for last name. 1293 // letter for last name.
1288 AutofillProfile* profile1 = new AutofillProfile; 1294 std::unique_ptr<AutofillProfile> profile1 =
1295 base::MakeUnique<AutofillProfile>();
1289 profile1->set_guid("00000000-0000-0000-0000-000000000103"); 1296 profile1->set_guid("00000000-0000-0000-0000-000000000103");
1290 profile1->SetInfo(AutofillType(NAME_FIRST), ASCIIToUTF16("Robin"), "en-US"); 1297 profile1->SetInfo(AutofillType(NAME_FIRST), ASCIIToUTF16("Robin"), "en-US");
1291 profile1->SetInfo(AutofillType(NAME_LAST), ASCIIToUTF16("Grimes"), "en-US"); 1298 profile1->SetInfo(AutofillType(NAME_LAST), ASCIIToUTF16("Grimes"), "en-US");
1292 profile1->SetInfo(AutofillType(ADDRESS_HOME_LINE1), 1299 profile1->SetInfo(AutofillType(ADDRESS_HOME_LINE1),
1293 ASCIIToUTF16("1234 Smith Blvd."), "en-US"); 1300 ASCIIToUTF16("1234 Smith Blvd."), "en-US");
1294 autofill_manager_->AddProfile(profile1); 1301 autofill_manager_->AddProfile(std::move(profile1));
1295 1302
1296 AutofillProfile* profile2 = new AutofillProfile; 1303 std::unique_ptr<AutofillProfile> profile2 =
1304 base::MakeUnique<AutofillProfile>();
1297 profile2->set_guid("00000000-0000-0000-0000-000000000124"); 1305 profile2->set_guid("00000000-0000-0000-0000-000000000124");
1298 profile2->SetInfo(AutofillType(NAME_FIRST), ASCIIToUTF16("Carl"), "en-US"); 1306 profile2->SetInfo(AutofillType(NAME_FIRST), ASCIIToUTF16("Carl"), "en-US");
1299 profile2->SetInfo(AutofillType(NAME_LAST), ASCIIToUTF16("Grimes"), "en-US"); 1307 profile2->SetInfo(AutofillType(NAME_LAST), ASCIIToUTF16("Grimes"), "en-US");
1300 profile2->SetInfo(AutofillType(ADDRESS_HOME_LINE1), 1308 profile2->SetInfo(AutofillType(ADDRESS_HOME_LINE1),
1301 ASCIIToUTF16("1234 Smith Blvd."), "en-US"); 1309 ASCIIToUTF16("1234 Smith Blvd."), "en-US");
1302 autofill_manager_->AddProfile(profile2); 1310 autofill_manager_->AddProfile(std::move(profile2));
1303 1311
1304 AutofillProfile* profile3 = new AutofillProfile; 1312 std::unique_ptr<AutofillProfile> profile3 =
1313 base::MakeUnique<AutofillProfile>();
1305 profile3->set_guid("00000000-0000-0000-0000-000000000126"); 1314 profile3->set_guid("00000000-0000-0000-0000-000000000126");
1306 profile3->SetInfo(AutofillType(NAME_FIRST), ASCIIToUTF16("Aaron"), "en-US"); 1315 profile3->SetInfo(AutofillType(NAME_FIRST), ASCIIToUTF16("Aaron"), "en-US");
1307 profile3->SetInfo(AutofillType(NAME_LAST), ASCIIToUTF16("Googler"), "en-US"); 1316 profile3->SetInfo(AutofillType(NAME_LAST), ASCIIToUTF16("Googler"), "en-US");
1308 profile3->SetInfo(AutofillType(ADDRESS_HOME_LINE1), 1317 profile3->SetInfo(AutofillType(ADDRESS_HOME_LINE1),
1309 ASCIIToUTF16("1600 Amphitheater pkwy"), "en-US"); 1318 ASCIIToUTF16("1600 Amphitheater pkwy"), "en-US");
1310 autofill_manager_->AddProfile(profile3); 1319 autofill_manager_->AddProfile(std::move(profile3));
1311 1320
1312 FormFieldData field; 1321 FormFieldData field;
1313 test::CreateTestFormField("Last Name", "lastname", "G", "text", &field); 1322 test::CreateTestFormField("Last Name", "lastname", "G", "text", &field);
1314 GetAutofillSuggestions(form, field); 1323 GetAutofillSuggestions(form, field);
1315 1324
1316 // Test that we sent the right values to the external delegate. No labels, 1325 // Test that we sent the right values to the external delegate. No labels,
1317 // with duplicate values "Grimes" merged. 1326 // with duplicate values "Grimes" merged.
1318 external_delegate_->CheckSuggestions( 1327 external_delegate_->CheckSuggestions(
1319 kDefaultPageID, Suggestion("Googler", "" /* no label */, "", 1), 1328 kDefaultPageID, Suggestion("Googler", "" /* no label */, "", 1),
1320 Suggestion("Grimes", "" /* no label */, "", 2)); 1329 Suggestion("Grimes", "" /* no label */, "", 2));
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
1370 1379
1371 // Test that we cull duplicate profile suggestions. 1380 // Test that we cull duplicate profile suggestions.
1372 TEST_F(AutofillManagerTest, GetProfileSuggestions_WithDuplicates) { 1381 TEST_F(AutofillManagerTest, GetProfileSuggestions_WithDuplicates) {
1373 // Set up our form data. 1382 // Set up our form data.
1374 FormData form; 1383 FormData form;
1375 test::CreateTestAddressFormData(&form); 1384 test::CreateTestAddressFormData(&form);
1376 std::vector<FormData> forms(1, form); 1385 std::vector<FormData> forms(1, form);
1377 FormsSeen(forms); 1386 FormsSeen(forms);
1378 1387
1379 // Add a duplicate profile. 1388 // Add a duplicate profile.
1380 AutofillProfile* duplicate_profile = 1389 std::unique_ptr<AutofillProfile> duplicate_profile =
1381 new AutofillProfile( 1390 base::MakeUnique<AutofillProfile>(*(autofill_manager_->GetProfileWithGUID(
1382 *(autofill_manager_->GetProfileWithGUID( 1391 "00000000-0000-0000-0000-000000000001")));
1383 "00000000-0000-0000-0000-000000000001"))); 1392 autofill_manager_->AddProfile(std::move(duplicate_profile));
1384 autofill_manager_->AddProfile(duplicate_profile);
1385 1393
1386 const FormFieldData& field = form.fields[0]; 1394 const FormFieldData& field = form.fields[0];
1387 GetAutofillSuggestions(form, field); 1395 GetAutofillSuggestions(form, field);
1388 1396
1389 // Test that we sent the right values to the external delegate. 1397 // Test that we sent the right values to the external delegate.
1390 external_delegate_->CheckSuggestions( 1398 external_delegate_->CheckSuggestions(
1391 kDefaultPageID, Suggestion("Charles", "123 Apple St.", "", 1), 1399 kDefaultPageID, Suggestion("Charles", "123 Apple St.", "", 1),
1392 Suggestion("Elvis", "3734 Elvis Presley Blvd.", "", 2)); 1400 Suggestion("Elvis", "3734 Elvis Presley Blvd.", "", 2));
1393 } 1401 }
1394 1402
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
1479 Suggestion("MasterCard\xC2\xA0\xE2\x8B\xAF" 1487 Suggestion("MasterCard\xC2\xA0\xE2\x8B\xAF"
1480 "8765", 1488 "8765",
1481 "10/98", kMasterCard, 1489 "10/98", kMasterCard,
1482 autofill_manager_->GetPackedCreditCardID(5))); 1490 autofill_manager_->GetPackedCreditCardID(5)));
1483 } 1491 }
1484 1492
1485 // Test that we return all credit card profile suggestions when the triggering 1493 // Test that we return all credit card profile suggestions when the triggering
1486 // field has stop characters in it and some input. 1494 // field has stop characters in it and some input.
1487 TEST_F(AutofillManagerTest, GetCreditCardSuggestions_StopCharsWithInput) { 1495 TEST_F(AutofillManagerTest, GetCreditCardSuggestions_StopCharsWithInput) {
1488 // Add a credit card with particular numbers that we will attempt to recall. 1496 // Add a credit card with particular numbers that we will attempt to recall.
1489 CreditCard* credit_card = new CreditCard; 1497 std::unique_ptr<CreditCard> credit_card = base::MakeUnique<CreditCard>();
1490 test::SetCreditCardInfo(credit_card, "John Smith", 1498 test::SetCreditCardInfo(credit_card.get(), "John Smith",
1491 "5255667890123123", // Mastercard 1499 "5255667890123123", // Mastercard
1492 "08", "2017"); 1500 "08", "2017");
1493 credit_card->set_guid("00000000-0000-0000-0000-000000000007"); 1501 credit_card->set_guid("00000000-0000-0000-0000-000000000007");
1494 autofill_manager_->AddCreditCard(credit_card); 1502 autofill_manager_->AddCreditCard(std::move(credit_card));
1495 1503
1496 // Set up our form data. 1504 // Set up our form data.
1497 FormData form; 1505 FormData form;
1498 CreateTestCreditCardFormData(&form, true, false); 1506 CreateTestCreditCardFormData(&form, true, false);
1499 std::vector<FormData> forms(1, form); 1507 std::vector<FormData> forms(1, form);
1500 FormsSeen(forms); 1508 FormsSeen(forms);
1501 1509
1502 FormFieldData field = form.fields[1]; 1510 FormFieldData field = form.fields[1];
1503 1511
1504 field.value = ASCIIToUTF16("5255-66__-____-____"); 1512 field.value = ASCIIToUTF16("5255-66__-____-____");
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
1618 GetAutofillSuggestions(form, field); 1626 GetAutofillSuggestions(form, field);
1619 // Autocomplete suggestions are queried, but not Autofill. 1627 // Autocomplete suggestions are queried, but not Autofill.
1620 EXPECT_FALSE(external_delegate_->on_suggestions_returned_seen()); 1628 EXPECT_FALSE(external_delegate_->on_suggestions_returned_seen());
1621 } 1629 }
1622 1630
1623 // Test that we return all credit card suggestions in the case that two cards 1631 // Test that we return all credit card suggestions in the case that two cards
1624 // have the same obfuscated number. 1632 // have the same obfuscated number.
1625 TEST_F(AutofillManagerTest, GetCreditCardSuggestions_RepeatedObfuscatedNumber) { 1633 TEST_F(AutofillManagerTest, GetCreditCardSuggestions_RepeatedObfuscatedNumber) {
1626 // Add a credit card with the same obfuscated number as Elvis's. 1634 // Add a credit card with the same obfuscated number as Elvis's.
1627 // |credit_card| will be owned by the mock PersonalDataManager. 1635 // |credit_card| will be owned by the mock PersonalDataManager.
1628 CreditCard* credit_card = new CreditCard; 1636 std::unique_ptr<CreditCard> credit_card = base::MakeUnique<CreditCard>();
1629 test::SetCreditCardInfo(credit_card, "Elvis Presley", 1637 test::SetCreditCardInfo(credit_card.get(), "Elvis Presley",
1630 "5231567890123456", // Mastercard 1638 "5231567890123456", // Mastercard
1631 "05", "2999"); 1639 "05", "2999");
1632 credit_card->set_guid("00000000-0000-0000-0000-000000000007"); 1640 credit_card->set_guid("00000000-0000-0000-0000-000000000007");
1633 credit_card->set_use_date(base::Time::Now() - base::TimeDelta::FromDays(15)); 1641 credit_card->set_use_date(base::Time::Now() - base::TimeDelta::FromDays(15));
1634 autofill_manager_->AddCreditCard(credit_card); 1642 autofill_manager_->AddCreditCard(std::move(credit_card));
1635 1643
1636 // Set up our form data. 1644 // Set up our form data.
1637 FormData form; 1645 FormData form;
1638 CreateTestCreditCardFormData(&form, true, false); 1646 CreateTestCreditCardFormData(&form, true, false);
1639 std::vector<FormData> forms(1, form); 1647 std::vector<FormData> forms(1, form);
1640 FormsSeen(forms); 1648 FormsSeen(forms);
1641 1649
1642 FormFieldData field = form.fields[1]; 1650 FormFieldData field = form.fields[1];
1643 GetAutofillSuggestions(form, field); 1651 GetAutofillSuggestions(form, field);
1644 1652
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
1779 // Test that we do not return duplicate values drawn from multiple profiles when 1787 // Test that we do not return duplicate values drawn from multiple profiles when
1780 // filling an already filled field. 1788 // filling an already filled field.
1781 TEST_F(AutofillManagerTest, GetFieldSuggestionsWithDuplicateValues) { 1789 TEST_F(AutofillManagerTest, GetFieldSuggestionsWithDuplicateValues) {
1782 // Set up our form data. 1790 // Set up our form data.
1783 FormData form; 1791 FormData form;
1784 test::CreateTestAddressFormData(&form); 1792 test::CreateTestAddressFormData(&form);
1785 std::vector<FormData> forms(1, form); 1793 std::vector<FormData> forms(1, form);
1786 FormsSeen(forms); 1794 FormsSeen(forms);
1787 1795
1788 // |profile| will be owned by the mock PersonalDataManager. 1796 // |profile| will be owned by the mock PersonalDataManager.
1789 AutofillProfile* profile = new AutofillProfile; 1797 std::unique_ptr<AutofillProfile> profile =
1790 test::SetProfileInfo( 1798 base::MakeUnique<AutofillProfile>();
1791 profile, "Elvis", "", "", "", "", "", "", "", "", "", "", ""); 1799 test::SetProfileInfo(profile.get(), "Elvis", "", "", "", "", "", "", "", "",
1800 "", "", "");
1792 profile->set_guid("00000000-0000-0000-0000-000000000101"); 1801 profile->set_guid("00000000-0000-0000-0000-000000000101");
1793 autofill_manager_->AddProfile(profile); 1802 autofill_manager_->AddProfile(std::move(profile));
1794 1803
1795 FormFieldData& field = form.fields[0]; 1804 FormFieldData& field = form.fields[0];
1796 field.is_autofilled = true; 1805 field.is_autofilled = true;
1797 field.value = ASCIIToUTF16("Elvis"); 1806 field.value = ASCIIToUTF16("Elvis");
1798 GetAutofillSuggestions(form, field); 1807 GetAutofillSuggestions(form, field);
1799 1808
1800 // Test that we sent the right values to the external delegate. 1809 // Test that we sent the right values to the external delegate.
1801 external_delegate_->CheckSuggestions( 1810 external_delegate_->CheckSuggestions(
1802 kDefaultPageID, 1811 kDefaultPageID,
1803 Suggestion("Elvis", "", "", 1)); 1812 Suggestion("Elvis", "", "", 1));
1804 } 1813 }
1805 1814
1806 TEST_F(AutofillManagerTest, GetProfileSuggestions_FancyPhone) { 1815 TEST_F(AutofillManagerTest, GetProfileSuggestions_FancyPhone) {
1807 // Set up our form data. 1816 // Set up our form data.
1808 FormData form; 1817 FormData form;
1809 test::CreateTestAddressFormData(&form); 1818 test::CreateTestAddressFormData(&form);
1810 std::vector<FormData> forms(1, form); 1819 std::vector<FormData> forms(1, form);
1811 FormsSeen(forms); 1820 FormsSeen(forms);
1812 1821
1813 AutofillProfile* profile = new AutofillProfile; 1822 std::unique_ptr<AutofillProfile> profile =
1823 base::MakeUnique<AutofillProfile>();
1814 profile->set_guid("00000000-0000-0000-0000-000000000103"); 1824 profile->set_guid("00000000-0000-0000-0000-000000000103");
1815 profile->SetInfo(AutofillType(NAME_FULL), ASCIIToUTF16("Natty Bumppo"), 1825 profile->SetInfo(AutofillType(NAME_FULL), ASCIIToUTF16("Natty Bumppo"),
1816 "en-US"); 1826 "en-US");
1817 profile->SetRawInfo(PHONE_HOME_WHOLE_NUMBER, 1827 profile->SetRawInfo(PHONE_HOME_WHOLE_NUMBER,
1818 ASCIIToUTF16("1800PRAIRIE")); 1828 ASCIIToUTF16("1800PRAIRIE"));
1819 autofill_manager_->AddProfile(profile); 1829 autofill_manager_->AddProfile(std::move(profile));
1820 1830
1821 const FormFieldData& field = form.fields[9]; 1831 const FormFieldData& field = form.fields[9];
1822 GetAutofillSuggestions(form, field); 1832 GetAutofillSuggestions(form, field);
1823 1833
1824 // Test that we sent the right values to the external delegate. Inferred 1834 // Test that we sent the right values to the external delegate. Inferred
1825 // labels include the most private field of those that would be filled. 1835 // labels include the most private field of those that would be filled.
1826 external_delegate_->CheckSuggestions( 1836 external_delegate_->CheckSuggestions(
1827 kDefaultPageID, 1837 kDefaultPageID,
1828 Suggestion("18007724743", "Natty Bumppo", "", 1), // 1800PRAIRIE 1838 Suggestion("18007724743", "Natty Bumppo", "", 1), // 1800PRAIRIE
1829 Suggestion("23456789012", "123 Apple St.", "", 2), 1839 Suggestion("23456789012", "123 Apple St.", "", 2),
(...skipping 23 matching lines...) Expand all
1853 test::CreateTestFormField( 1863 test::CreateTestFormField(
1854 test_fields[i].label, test_fields[i].name, "", "text", &field); 1864 test_fields[i].label, test_fields[i].name, "", "text", &field);
1855 field.max_length = test_fields[i].max_length; 1865 field.max_length = test_fields[i].max_length;
1856 field.autocomplete_attribute = std::string(); 1866 field.autocomplete_attribute = std::string();
1857 form.fields.push_back(field); 1867 form.fields.push_back(field);
1858 } 1868 }
1859 1869
1860 std::vector<FormData> forms(1, form); 1870 std::vector<FormData> forms(1, form);
1861 FormsSeen(forms); 1871 FormsSeen(forms);
1862 1872
1863 AutofillProfile* profile = new AutofillProfile; 1873 std::unique_ptr<AutofillProfile> profile =
1874 base::MakeUnique<AutofillProfile>();
1864 profile->set_guid("00000000-0000-0000-0000-000000000104"); 1875 profile->set_guid("00000000-0000-0000-0000-000000000104");
1865 profile->SetRawInfo(PHONE_HOME_WHOLE_NUMBER, ASCIIToUTF16("1800FLOWERS")); 1876 profile->SetRawInfo(PHONE_HOME_WHOLE_NUMBER, ASCIIToUTF16("1800FLOWERS"));
1866 personal_data_.ClearAutofillProfiles(); 1877 personal_data_.ClearAutofillProfiles();
1867 autofill_manager_->AddProfile(profile); 1878 autofill_manager_->AddProfile(std::move(profile));
1868 1879
1869 const FormFieldData& phone_prefix = form.fields[2]; 1880 const FormFieldData& phone_prefix = form.fields[2];
1870 GetAutofillSuggestions(form, phone_prefix); 1881 GetAutofillSuggestions(form, phone_prefix);
1871 1882
1872 // Test that we sent the right prefix values to the external delegate. 1883 // Test that we sent the right prefix values to the external delegate.
1873 external_delegate_->CheckSuggestions(kDefaultPageID, 1884 external_delegate_->CheckSuggestions(kDefaultPageID,
1874 Suggestion("356", "1800FLOWERS", "", 1)); 1885 Suggestion("356", "1800FLOWERS", "", 1));
1875 1886
1876 const FormFieldData& phone_suffix = form.fields[3]; 1887 const FormFieldData& phone_suffix = form.fields[3];
1877 GetAutofillSuggestions(form, phone_suffix); 1888 GetAutofillSuggestions(form, phone_suffix);
(...skipping 1368 matching lines...) Expand 10 before | Expand all | Expand 10 after
3246 // signature of the queried form and apply type predictions. 3257 // signature of the queried form and apply type predictions.
3247 TEST_F(AutofillManagerTest, OnLoadedServerPredictions) { 3258 TEST_F(AutofillManagerTest, OnLoadedServerPredictions) {
3248 // Set up our form data. 3259 // Set up our form data.
3249 FormData form; 3260 FormData form;
3250 test::CreateTestAddressFormData(&form); 3261 test::CreateTestAddressFormData(&form);
3251 3262
3252 // Simulate having seen this form on page load. 3263 // Simulate having seen this form on page load.
3253 // |form_structure| will be owned by |autofill_manager_|. 3264 // |form_structure| will be owned by |autofill_manager_|.
3254 TestFormStructure* form_structure = new TestFormStructure(form); 3265 TestFormStructure* form_structure = new TestFormStructure(form);
3255 form_structure->DetermineHeuristicTypes(); 3266 form_structure->DetermineHeuristicTypes();
3256 autofill_manager_->AddSeenForm(form_structure); 3267 autofill_manager_->AddSeenForm(base::WrapUnique(form_structure));
3257 3268
3258 // Similarly, a second form. 3269 // Similarly, a second form.
3259 FormData form2; 3270 FormData form2;
3260 form2.name = ASCIIToUTF16("MyForm"); 3271 form2.name = ASCIIToUTF16("MyForm");
3261 form2.origin = GURL("http://myform.com/form.html"); 3272 form2.origin = GURL("http://myform.com/form.html");
3262 form2.action = GURL("http://myform.com/submit.html"); 3273 form2.action = GURL("http://myform.com/submit.html");
3263 3274
3264 FormFieldData field; 3275 FormFieldData field;
3265 test::CreateTestFormField("Last Name", "lastname", "", "text", &field); 3276 test::CreateTestFormField("Last Name", "lastname", "", "text", &field);
3266 form2.fields.push_back(field); 3277 form2.fields.push_back(field);
3267 3278
3268 test::CreateTestFormField("Middle Name", "middlename", "", "text", &field); 3279 test::CreateTestFormField("Middle Name", "middlename", "", "text", &field);
3269 form2.fields.push_back(field); 3280 form2.fields.push_back(field);
3270 3281
3271 test::CreateTestFormField("Postal Code", "zipcode", "", "text", &field); 3282 test::CreateTestFormField("Postal Code", "zipcode", "", "text", &field);
3272 form2.fields.push_back(field); 3283 form2.fields.push_back(field);
3273 3284
3274 TestFormStructure* form_structure2 = new TestFormStructure(form2); 3285 TestFormStructure* form_structure2 = new TestFormStructure(form2);
3275 form_structure2->DetermineHeuristicTypes(); 3286 form_structure2->DetermineHeuristicTypes();
3276 autofill_manager_->AddSeenForm(form_structure2); 3287 autofill_manager_->AddSeenForm(base::WrapUnique(form_structure2));
3277 3288
3278 AutofillQueryResponseContents response; 3289 AutofillQueryResponseContents response;
3279 response.add_field()->set_autofill_type(3); 3290 response.add_field()->set_autofill_type(3);
3280 for (int i = 0; i < 7; ++i) { 3291 for (int i = 0; i < 7; ++i) {
3281 response.add_field()->set_autofill_type(0); 3292 response.add_field()->set_autofill_type(0);
3282 } 3293 }
3283 response.add_field()->set_autofill_type(3); 3294 response.add_field()->set_autofill_type(3);
3284 response.add_field()->set_autofill_type(2); 3295 response.add_field()->set_autofill_type(2);
3285 response.add_field()->set_autofill_type(61); 3296 response.add_field()->set_autofill_type(61);
3286 response.add_field()->set_autofill_type(5); 3297 response.add_field()->set_autofill_type(5);
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
3319 // response received. 3330 // response received.
3320 TEST_F(AutofillManagerTest, OnLoadedServerPredictions_ResetManager) { 3331 TEST_F(AutofillManagerTest, OnLoadedServerPredictions_ResetManager) {
3321 // Set up our form data. 3332 // Set up our form data.
3322 FormData form; 3333 FormData form;
3323 test::CreateTestAddressFormData(&form); 3334 test::CreateTestAddressFormData(&form);
3324 3335
3325 // Simulate having seen this form on page load. 3336 // Simulate having seen this form on page load.
3326 // |form_structure| will be owned by |autofill_manager_|. 3337 // |form_structure| will be owned by |autofill_manager_|.
3327 TestFormStructure* form_structure = new TestFormStructure(form); 3338 TestFormStructure* form_structure = new TestFormStructure(form);
3328 form_structure->DetermineHeuristicTypes(); 3339 form_structure->DetermineHeuristicTypes();
3329 autofill_manager_->AddSeenForm(form_structure); 3340 autofill_manager_->AddSeenForm(base::WrapUnique(form_structure));
3330 3341
3331 AutofillQueryResponseContents response; 3342 AutofillQueryResponseContents response;
3332 response.add_field()->set_autofill_type(3); 3343 response.add_field()->set_autofill_type(3);
3333 for (int i = 0; i < 7; ++i) { 3344 for (int i = 0; i < 7; ++i) {
3334 response.add_field()->set_autofill_type(0); 3345 response.add_field()->set_autofill_type(0);
3335 } 3346 }
3336 response.add_field()->set_autofill_type(3); 3347 response.add_field()->set_autofill_type(3);
3337 response.add_field()->set_autofill_type(2); 3348 response.add_field()->set_autofill_type(2);
3338 response.add_field()->set_autofill_type(61); 3349 response.add_field()->set_autofill_type(61);
3339 3350
(...skipping 25 matching lines...) Expand all
3365 TestFormStructure* form_structure = new TestFormStructure(form); 3376 TestFormStructure* form_structure = new TestFormStructure(form);
3366 form_structure->DetermineHeuristicTypes(); 3377 form_structure->DetermineHeuristicTypes();
3367 3378
3368 // Clear the heuristic types, and instead set the appropriate server types. 3379 // Clear the heuristic types, and instead set the appropriate server types.
3369 std::vector<ServerFieldType> heuristic_types, server_types; 3380 std::vector<ServerFieldType> heuristic_types, server_types;
3370 for (size_t i = 0; i < form.fields.size(); ++i) { 3381 for (size_t i = 0; i < form.fields.size(); ++i) {
3371 heuristic_types.push_back(UNKNOWN_TYPE); 3382 heuristic_types.push_back(UNKNOWN_TYPE);
3372 server_types.push_back(form_structure->field(i)->heuristic_type()); 3383 server_types.push_back(form_structure->field(i)->heuristic_type());
3373 } 3384 }
3374 form_structure->SetFieldTypes(heuristic_types, server_types); 3385 form_structure->SetFieldTypes(heuristic_types, server_types);
3375 autofill_manager_->AddSeenForm(form_structure); 3386 autofill_manager_->AddSeenForm(base::WrapUnique(form_structure));
3376 3387
3377 // Fill the form. 3388 // Fill the form.
3378 const char guid[] = "00000000-0000-0000-0000-000000000001"; 3389 const char guid[] = "00000000-0000-0000-0000-000000000001";
3379 int response_page_id = 0; 3390 int response_page_id = 0;
3380 FormData response_data; 3391 FormData response_data;
3381 FillAutofillFormDataAndSaveResults(kDefaultPageID, form, form.fields[0], 3392 FillAutofillFormDataAndSaveResults(kDefaultPageID, form, form.fields[0],
3382 MakeFrontendID(std::string(), guid), 3393 MakeFrontendID(std::string(), guid),
3383 &response_page_id, &response_data); 3394 &response_page_id, &response_data);
3384 ExpectFilledAddressFormElvis(response_page_id, response_data, kDefaultPageID, 3395 ExpectFilledAddressFormElvis(response_page_id, response_data, kDefaultPageID,
3385 false); 3396 false);
(...skipping 529 matching lines...) Expand 10 before | Expand all | Expand 10 after
3915 possible_types.find(test_fields[i].expected_upload_type)); 3926 possible_types.find(test_fields[i].expected_upload_type));
3916 } else { 3927 } else {
3917 EXPECT_EQ(2U, possible_types.size()); 3928 EXPECT_EQ(2U, possible_types.size());
3918 } 3929 }
3919 } 3930 }
3920 } 3931 }
3921 } 3932 }
3922 3933
3923 TEST_F(AutofillManagerTest, RemoveProfile) { 3934 TEST_F(AutofillManagerTest, RemoveProfile) {
3924 // Add and remove an Autofill profile. 3935 // Add and remove an Autofill profile.
3925 AutofillProfile* profile = new AutofillProfile; 3936 std::unique_ptr<AutofillProfile> profile =
3937 base::MakeUnique<AutofillProfile>();
3926 const char guid[] = "00000000-0000-0000-0000-000000000102"; 3938 const char guid[] = "00000000-0000-0000-0000-000000000102";
3927 profile->set_guid(guid); 3939 profile->set_guid(guid);
3928 autofill_manager_->AddProfile(profile); 3940 autofill_manager_->AddProfile(std::move(profile));
3929 3941
3930 int id = MakeFrontendID(std::string(), guid); 3942 int id = MakeFrontendID(std::string(), guid);
3931 3943
3932 autofill_manager_->RemoveAutofillProfileOrCreditCard(id); 3944 autofill_manager_->RemoveAutofillProfileOrCreditCard(id);
3933 3945
3934 EXPECT_FALSE(autofill_manager_->GetProfileWithGUID(guid)); 3946 EXPECT_FALSE(autofill_manager_->GetProfileWithGUID(guid));
3935 } 3947 }
3936 3948
3937 TEST_F(AutofillManagerTest, RemoveCreditCard) { 3949 TEST_F(AutofillManagerTest, RemoveCreditCard) {
3938 // Add and remove an Autofill credit card. 3950 // Add and remove an Autofill credit card.
3939 CreditCard* credit_card = new CreditCard; 3951 std::unique_ptr<CreditCard> credit_card = base::MakeUnique<CreditCard>();
3940 const char guid[] = "00000000-0000-0000-0000-000000100007"; 3952 const char guid[] = "00000000-0000-0000-0000-000000100007";
3941 credit_card->set_guid(guid); 3953 credit_card->set_guid(guid);
3942 autofill_manager_->AddCreditCard(credit_card); 3954 autofill_manager_->AddCreditCard(std::move(credit_card));
3943 3955
3944 int id = MakeFrontendID(guid, std::string()); 3956 int id = MakeFrontendID(guid, std::string());
3945 3957
3946 autofill_manager_->RemoveAutofillProfileOrCreditCard(id); 3958 autofill_manager_->RemoveAutofillProfileOrCreditCard(id);
3947 3959
3948 EXPECT_FALSE(autofill_manager_->GetCreditCardWithGUID(guid)); 3960 EXPECT_FALSE(autofill_manager_->GetCreditCardWithGUID(guid));
3949 } 3961 }
3950 3962
3951 // Test our external delegate is called at the right time. 3963 // Test our external delegate is called at the right time.
3952 TEST_F(AutofillManagerTest, TestExternalDelegate) { 3964 TEST_F(AutofillManagerTest, TestExternalDelegate) {
(...skipping 1141 matching lines...) Expand 10 before | Expand all | Expand 10 after
5094 // Token matching is currently behind a flag. 5106 // Token matching is currently behind a flag.
5095 base::CommandLine::ForCurrentProcess()->AppendSwitch( 5107 base::CommandLine::ForCurrentProcess()->AppendSwitch(
5096 switches::kEnableSuggestionsWithSubstringMatch); 5108 switches::kEnableSuggestionsWithSubstringMatch);
5097 5109
5098 // Set up our form data. 5110 // Set up our form data.
5099 FormData form; 5111 FormData form;
5100 test::CreateTestAddressFormData(&form); 5112 test::CreateTestAddressFormData(&form);
5101 std::vector<FormData> forms(1, form); 5113 std::vector<FormData> forms(1, form);
5102 FormsSeen(forms); 5114 FormsSeen(forms);
5103 5115
5104 AutofillProfile* profile1 = new AutofillProfile; 5116 std::unique_ptr<AutofillProfile> profile1 =
5117 base::MakeUnique<AutofillProfile>();
5105 profile1->set_guid("00000000-0000-0000-0000-000000000103"); 5118 profile1->set_guid("00000000-0000-0000-0000-000000000103");
5106 profile1->SetInfo(AutofillType(NAME_FIRST), ASCIIToUTF16("Robin"), "en-US"); 5119 profile1->SetInfo(AutofillType(NAME_FIRST), ASCIIToUTF16("Robin"), "en-US");
5107 profile1->SetInfo(AutofillType(NAME_MIDDLE), ASCIIToUTF16("Adam Smith"), 5120 profile1->SetInfo(AutofillType(NAME_MIDDLE), ASCIIToUTF16("Adam Smith"),
5108 "en-US"); 5121 "en-US");
5109 profile1->SetInfo(AutofillType(NAME_LAST), ASCIIToUTF16("Grimes"), "en-US"); 5122 profile1->SetInfo(AutofillType(NAME_LAST), ASCIIToUTF16("Grimes"), "en-US");
5110 profile1->SetInfo(AutofillType(ADDRESS_HOME_LINE1), 5123 profile1->SetInfo(AutofillType(ADDRESS_HOME_LINE1),
5111 ASCIIToUTF16("1234 Smith Blvd."), "en-US"); 5124 ASCIIToUTF16("1234 Smith Blvd."), "en-US");
5112 autofill_manager_->AddProfile(profile1); 5125 autofill_manager_->AddProfile(std::move(profile1));
5113 5126
5114 AutofillProfile* profile2 = new AutofillProfile; 5127 std::unique_ptr<AutofillProfile> profile2 =
5128 base::MakeUnique<AutofillProfile>();
5115 profile2->set_guid("00000000-0000-0000-0000-000000000124"); 5129 profile2->set_guid("00000000-0000-0000-0000-000000000124");
5116 profile2->SetInfo(AutofillType(NAME_FIRST), ASCIIToUTF16("Carl"), "en-US"); 5130 profile2->SetInfo(AutofillType(NAME_FIRST), ASCIIToUTF16("Carl"), "en-US");
5117 profile2->SetInfo(AutofillType(NAME_MIDDLE), ASCIIToUTF16("Shawn Smith"), 5131 profile2->SetInfo(AutofillType(NAME_MIDDLE), ASCIIToUTF16("Shawn Smith"),
5118 "en-US"); 5132 "en-US");
5119 profile2->SetInfo(AutofillType(NAME_LAST), ASCIIToUTF16("Grimes"), "en-US"); 5133 profile2->SetInfo(AutofillType(NAME_LAST), ASCIIToUTF16("Grimes"), "en-US");
5120 profile2->SetInfo(AutofillType(ADDRESS_HOME_LINE1), 5134 profile2->SetInfo(AutofillType(ADDRESS_HOME_LINE1),
5121 ASCIIToUTF16("1234 Smith Blvd."), "en-US"); 5135 ASCIIToUTF16("1234 Smith Blvd."), "en-US");
5122 autofill_manager_->AddProfile(profile2); 5136 autofill_manager_->AddProfile(std::move(profile2));
5123 5137
5124 FormFieldData field; 5138 FormFieldData field;
5125 test::CreateTestFormField("Middle Name", "middlename", "S", "text", &field); 5139 test::CreateTestFormField("Middle Name", "middlename", "S", "text", &field);
5126 GetAutofillSuggestions(form, field); 5140 GetAutofillSuggestions(form, field);
5127 5141
5128 external_delegate_->CheckSuggestions( 5142 external_delegate_->CheckSuggestions(
5129 kDefaultPageID, 5143 kDefaultPageID,
5130 Suggestion("Shawn Smith", "1234 Smith Blvd., Carl Shawn Smith Grimes", "", 5144 Suggestion("Shawn Smith", "1234 Smith Blvd., Carl Shawn Smith Grimes", "",
5131 1), 5145 1),
5132 Suggestion("Adam Smith", "1234 Smith Blvd., Robin Adam Smith Grimes", "", 5146 Suggestion("Adam Smith", "1234 Smith Blvd., Robin Adam Smith Grimes", "",
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
5287 5301
5288 // The driver should always be notified. 5302 // The driver should always be notified.
5289 for (const FormFieldData& field : form.fields) { 5303 for (const FormFieldData& field : form.fields) {
5290 GetAutofillSuggestions(form, field); 5304 GetAutofillSuggestions(form, field);
5291 EXPECT_TRUE(autofill_driver_->did_interact_with_credit_card_form()); 5305 EXPECT_TRUE(autofill_driver_->did_interact_with_credit_card_form());
5292 autofill_driver_->ClearDidInteractWithCreditCardForm(); 5306 autofill_driver_->ClearDidInteractWithCreditCardForm();
5293 } 5307 }
5294 } 5308 }
5295 5309
5296 } // namespace autofill 5310 } // namespace autofill
OLDNEW
« no previous file with comments | « components/autofill/core/browser/autofill_manager.cc ('k') | components/autofill/core/browser/autofill_merge_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698