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

Side by Side Diff: chrome/browser/webdata/autofill_profile_syncable_service_unittest.cc

Issue 129753002: [Autofill] Style cleanup: Use ASCIIToUTF16 rather than UTF8ToUTF16 in test code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 6 years, 11 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "base/location.h" 5 #include "base/location.h"
6 #include "base/message_loop/message_loop.h" 6 #include "base/message_loop/message_loop.h"
7 #include "base/strings/utf_string_conversions.h" 7 #include "base/strings/utf_string_conversions.h"
8 #include "chrome/browser/webdata/autofill_profile_syncable_service.h" 8 #include "chrome/browser/webdata/autofill_profile_syncable_service.h"
9 #include "components/autofill/core/browser/autofill_profile.h" 9 #include "components/autofill/core/browser/autofill_profile.h"
10 #include "components/autofill/core/browser/webdata/autofill_change.h" 10 #include "components/autofill/core/browser/webdata/autofill_change.h"
11 #include "content/public/test/test_browser_thread.h" 11 #include "content/public/test/test_browser_thread.h"
12 #include "sync/api/sync_error_factory.h" 12 #include "sync/api/sync_error_factory.h"
13 #include "sync/api/sync_error_factory_mock.h" 13 #include "sync/api/sync_error_factory_mock.h"
14 #include "sync/protocol/sync.pb.h" 14 #include "sync/protocol/sync.pb.h"
15 #include "testing/gmock/include/gmock/gmock.h" 15 #include "testing/gmock/include/gmock/gmock.h"
16 #include "testing/gtest/include/gtest/gtest.h" 16 #include "testing/gtest/include/gtest/gtest.h"
17 17
18 namespace autofill { 18 namespace autofill {
19 19
20 using ::testing::_; 20 using ::testing::_;
21 using ::testing::DoAll; 21 using ::testing::DoAll;
22 using ::testing::Eq; 22 using ::testing::Eq;
23 using ::testing::Return; 23 using ::testing::Return;
24 using ::testing::Property; 24 using ::testing::Property;
25 using base::ASCIIToUTF16; 25 using base::ASCIIToUTF16;
26 using base::UTF8ToUTF16;
27 using content::BrowserThread; 26 using content::BrowserThread;
28 27
29 namespace { 28 namespace {
30 29
31 // Some guids for testing. 30 // Some guids for testing.
32 const char kGuid1[] = "EDC609ED-7EEE-4F27-B00C-423242A9C44B"; 31 const char kGuid1[] = "EDC609ED-7EEE-4F27-B00C-423242A9C44B";
33 const char kGuid2[] = "EDC609ED-7EEE-4F27-B00C-423242A9C44C"; 32 const char kGuid2[] = "EDC609ED-7EEE-4F27-B00C-423242A9C44C";
34 const char kGuid3[] = "EDC609ED-7EEE-4F27-B00C-423242A9C44D"; 33 const char kGuid3[] = "EDC609ED-7EEE-4F27-B00C-423242A9C44D";
35 const char kGuid4[] = "EDC609ED-7EEE-4F27-B00C-423242A9C44E"; 34 const char kGuid4[] = "EDC609ED-7EEE-4F27-B00C-423242A9C44E";
36 const char kHttpOrigin[] = "http://www.example.com/"; 35 const char kHttpOrigin[] = "http://www.example.com/";
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 std::string guid_present2 = kGuid2; 267 std::string guid_present2 = kGuid2;
269 std::string guid_synced1 = kGuid3; 268 std::string guid_synced1 = kGuid3;
270 std::string guid_synced2 = kGuid4; 269 std::string guid_synced2 = kGuid4;
271 std::string origin_present1 = kHttpOrigin; 270 std::string origin_present1 = kHttpOrigin;
272 std::string origin_present2 = std::string(); 271 std::string origin_present2 = std::string();
273 std::string origin_synced1 = kHttpsOrigin; 272 std::string origin_synced1 = kHttpsOrigin;
274 std::string origin_synced2 = kSettingsOrigin; 273 std::string origin_synced2 = kSettingsOrigin;
275 274
276 profiles_from_web_db.push_back( 275 profiles_from_web_db.push_back(
277 new AutofillProfile(guid_present1, origin_present1)); 276 new AutofillProfile(guid_present1, origin_present1));
278 profiles_from_web_db.back()->SetRawInfo(NAME_FIRST, UTF8ToUTF16("John")); 277 profiles_from_web_db.back()->SetRawInfo(NAME_FIRST, ASCIIToUTF16("John"));
279 profiles_from_web_db.back()->SetRawInfo(ADDRESS_HOME_LINE1, 278 profiles_from_web_db.back()->SetRawInfo(ADDRESS_HOME_LINE1,
280 UTF8ToUTF16("1 1st st")); 279 ASCIIToUTF16("1 1st st"));
281 profiles_from_web_db.push_back( 280 profiles_from_web_db.push_back(
282 new AutofillProfile(guid_present2, origin_present2)); 281 new AutofillProfile(guid_present2, origin_present2));
283 profiles_from_web_db.back()->SetRawInfo(NAME_FIRST, UTF8ToUTF16("Tom")); 282 profiles_from_web_db.back()->SetRawInfo(NAME_FIRST, ASCIIToUTF16("Tom"));
284 profiles_from_web_db.back()->SetRawInfo(ADDRESS_HOME_LINE1, 283 profiles_from_web_db.back()->SetRawInfo(ADDRESS_HOME_LINE1,
285 UTF8ToUTF16("2 2nd st")); 284 ASCIIToUTF16("2 2nd st"));
286 285
287 syncer::SyncDataList data_list; 286 syncer::SyncDataList data_list;
288 AutofillProfile profile1(guid_synced1, origin_synced1); 287 AutofillProfile profile1(guid_synced1, origin_synced1);
289 profile1.SetRawInfo(NAME_FIRST, UTF8ToUTF16("Jane")); 288 profile1.SetRawInfo(NAME_FIRST, ASCIIToUTF16("Jane"));
290 data_list.push_back(autofill_syncable_service_.CreateData(profile1)); 289 data_list.push_back(autofill_syncable_service_.CreateData(profile1));
291 AutofillProfile profile2(guid_synced2, origin_synced2); 290 AutofillProfile profile2(guid_synced2, origin_synced2);
292 profile2.SetRawInfo(NAME_FIRST, UTF8ToUTF16("Harry")); 291 profile2.SetRawInfo(NAME_FIRST, ASCIIToUTF16("Harry"));
293 data_list.push_back(autofill_syncable_service_.CreateData(profile2)); 292 data_list.push_back(autofill_syncable_service_.CreateData(profile2));
294 // This one will have the name and origin updated. 293 // This one will have the name and origin updated.
295 AutofillProfile profile3(guid_present2, origin_synced2); 294 AutofillProfile profile3(guid_present2, origin_synced2);
296 profile3.SetRawInfo(NAME_FIRST, UTF8ToUTF16("Tom Doe")); 295 profile3.SetRawInfo(NAME_FIRST, ASCIIToUTF16("Tom Doe"));
297 data_list.push_back(autofill_syncable_service_.CreateData(profile3)); 296 data_list.push_back(autofill_syncable_service_.CreateData(profile3));
298 297
299 syncer::SyncChangeList expected_change_list; 298 syncer::SyncChangeList expected_change_list;
300 expected_change_list.push_back( 299 expected_change_list.push_back(
301 syncer::SyncChange(FROM_HERE, 300 syncer::SyncChange(FROM_HERE,
302 syncer::SyncChange::ACTION_ADD, 301 syncer::SyncChange::ACTION_ADD,
303 MockAutofillProfileSyncableService::CreateData( 302 MockAutofillProfileSyncableService::CreateData(
304 *profiles_from_web_db.front()))); 303 *profiles_from_web_db.front())));
305 304
306 MockAutofillProfileSyncableService::DataBundle expected_bundle; 305 MockAutofillProfileSyncableService::DataBundle expected_bundle;
(...skipping 12 matching lines...) Expand all
319 std::string guid_present2 = kGuid2; 318 std::string guid_present2 = kGuid2;
320 std::string guid_synced1 = kGuid3; 319 std::string guid_synced1 = kGuid3;
321 std::string guid_synced2 = kGuid4; 320 std::string guid_synced2 = kGuid4;
322 std::string origin_present1 = kHttpOrigin; 321 std::string origin_present1 = kHttpOrigin;
323 std::string origin_present2 = kSettingsOrigin; 322 std::string origin_present2 = kSettingsOrigin;
324 std::string origin_synced1 = kHttpsOrigin; 323 std::string origin_synced1 = kHttpsOrigin;
325 std::string origin_synced2 = kHttpsOrigin; 324 std::string origin_synced2 = kHttpsOrigin;
326 325
327 profiles_from_web_db.push_back( 326 profiles_from_web_db.push_back(
328 new AutofillProfile(guid_present1, origin_present1)); 327 new AutofillProfile(guid_present1, origin_present1));
329 profiles_from_web_db.back()->SetRawInfo(NAME_FIRST, UTF8ToUTF16("John")); 328 profiles_from_web_db.back()->SetRawInfo(NAME_FIRST, ASCIIToUTF16("John"));
330 profiles_from_web_db.back()->SetRawInfo(ADDRESS_HOME_LINE1, 329 profiles_from_web_db.back()->SetRawInfo(ADDRESS_HOME_LINE1,
331 UTF8ToUTF16("1 1st st")); 330 ASCIIToUTF16("1 1st st"));
332 profiles_from_web_db.push_back( 331 profiles_from_web_db.push_back(
333 new AutofillProfile(guid_present2, origin_present2)); 332 new AutofillProfile(guid_present2, origin_present2));
334 profiles_from_web_db.back()->SetRawInfo(NAME_FIRST, UTF8ToUTF16("Tom")); 333 profiles_from_web_db.back()->SetRawInfo(NAME_FIRST, ASCIIToUTF16("Tom"));
335 profiles_from_web_db.back()->SetRawInfo(ADDRESS_HOME_LINE1, 334 profiles_from_web_db.back()->SetRawInfo(ADDRESS_HOME_LINE1,
336 UTF8ToUTF16("2 2nd st")); 335 ASCIIToUTF16("2 2nd st"));
337 336
338 // The synced profiles are identical to the local ones, except that the guids 337 // The synced profiles are identical to the local ones, except that the guids
339 // are different. 338 // are different.
340 syncer::SyncDataList data_list; 339 syncer::SyncDataList data_list;
341 AutofillProfile profile1(guid_synced1, origin_synced1); 340 AutofillProfile profile1(guid_synced1, origin_synced1);
342 profile1.SetRawInfo(NAME_FIRST, UTF8ToUTF16("John")); 341 profile1.SetRawInfo(NAME_FIRST, ASCIIToUTF16("John"));
343 profile1.SetRawInfo(ADDRESS_HOME_LINE1, UTF8ToUTF16("1 1st st")); 342 profile1.SetRawInfo(ADDRESS_HOME_LINE1, ASCIIToUTF16("1 1st st"));
344 data_list.push_back(autofill_syncable_service_.CreateData(profile1)); 343 data_list.push_back(autofill_syncable_service_.CreateData(profile1));
345 AutofillProfile profile2(guid_synced2, origin_synced2); 344 AutofillProfile profile2(guid_synced2, origin_synced2);
346 profile2.SetRawInfo(NAME_FIRST, UTF8ToUTF16("Tom")); 345 profile2.SetRawInfo(NAME_FIRST, ASCIIToUTF16("Tom"));
347 profile2.SetRawInfo(ADDRESS_HOME_LINE1, UTF8ToUTF16("2 2nd st")); 346 profile2.SetRawInfo(ADDRESS_HOME_LINE1, ASCIIToUTF16("2 2nd st"));
348 data_list.push_back(autofill_syncable_service_.CreateData(profile2)); 347 data_list.push_back(autofill_syncable_service_.CreateData(profile2));
349 348
350 AutofillProfile expected_profile(profile2); 349 AutofillProfile expected_profile(profile2);
351 expected_profile.set_origin(kSettingsOrigin); 350 expected_profile.set_origin(kSettingsOrigin);
352 syncer::SyncChangeList expected_change_list; 351 syncer::SyncChangeList expected_change_list;
353 expected_change_list.push_back( 352 expected_change_list.push_back(
354 syncer::SyncChange(FROM_HERE, 353 syncer::SyncChange(FROM_HERE,
355 syncer::SyncChange::ACTION_UPDATE, 354 syncer::SyncChange::ACTION_UPDATE,
356 MockAutofillProfileSyncableService::CreateData( 355 MockAutofillProfileSyncableService::CreateData(
357 expected_profile))); 356 expected_profile)));
(...skipping 15 matching lines...) Expand all
373 std::string guid_present2 = kGuid2; 372 std::string guid_present2 = kGuid2;
374 std::string guid_synced1 = kGuid3; 373 std::string guid_synced1 = kGuid3;
375 std::string guid_synced2 = kGuid4; 374 std::string guid_synced2 = kGuid4;
376 std::string origin_present1 = kHttpOrigin; 375 std::string origin_present1 = kHttpOrigin;
377 std::string origin_present2 = kSettingsOrigin; 376 std::string origin_present2 = kSettingsOrigin;
378 std::string origin_synced1 = kHttpsOrigin; 377 std::string origin_synced1 = kHttpsOrigin;
379 std::string origin_synced2 = kHttpsOrigin; 378 std::string origin_synced2 = kHttpsOrigin;
380 379
381 profiles_from_web_db.push_back( 380 profiles_from_web_db.push_back(
382 new AutofillProfile(guid_present1, origin_present1)); 381 new AutofillProfile(guid_present1, origin_present1));
383 profiles_from_web_db.back()->SetRawInfo(NAME_FIRST, UTF8ToUTF16("John")); 382 profiles_from_web_db.back()->SetRawInfo(NAME_FIRST, ASCIIToUTF16("John"));
384 profiles_from_web_db.back()->SetRawInfo(ADDRESS_HOME_LINE1, 383 profiles_from_web_db.back()->SetRawInfo(ADDRESS_HOME_LINE1,
385 UTF8ToUTF16("1 1st st")); 384 ASCIIToUTF16("1 1st st"));
386 profiles_from_web_db.push_back( 385 profiles_from_web_db.push_back(
387 new AutofillProfile(guid_present2, origin_present2)); 386 new AutofillProfile(guid_present2, origin_present2));
388 profiles_from_web_db.back()->SetRawInfo(NAME_FIRST, UTF8ToUTF16("Tom")); 387 profiles_from_web_db.back()->SetRawInfo(NAME_FIRST, ASCIIToUTF16("Tom"));
389 profiles_from_web_db.back()->SetRawInfo(ADDRESS_HOME_LINE1, 388 profiles_from_web_db.back()->SetRawInfo(ADDRESS_HOME_LINE1,
390 UTF8ToUTF16("2 2nd st")); 389 ASCIIToUTF16("2 2nd st"));
391 390
392 // The synced profiles are identical to the local ones, except that the guids 391 // The synced profiles are identical to the local ones, except that the guids
393 // are different. 392 // are different.
394 syncer::SyncDataList data_list; 393 syncer::SyncDataList data_list;
395 AutofillProfile profile1(guid_synced1, origin_synced1); 394 AutofillProfile profile1(guid_synced1, origin_synced1);
396 profile1.SetRawInfo(NAME_FIRST, UTF8ToUTF16("John")); 395 profile1.SetRawInfo(NAME_FIRST, ASCIIToUTF16("John"));
397 profile1.SetRawInfo(ADDRESS_HOME_LINE1, UTF8ToUTF16("1 1st st")); 396 profile1.SetRawInfo(ADDRESS_HOME_LINE1, ASCIIToUTF16("1 1st st"));
398 profile1.SetRawInfo(COMPANY_NAME, UTF8ToUTF16("Frobbers, Inc.")); 397 profile1.SetRawInfo(COMPANY_NAME, ASCIIToUTF16("Frobbers, Inc."));
399 data_list.push_back(autofill_syncable_service_.CreateData(profile1)); 398 data_list.push_back(autofill_syncable_service_.CreateData(profile1));
400 AutofillProfile profile2(guid_synced2, origin_synced2); 399 AutofillProfile profile2(guid_synced2, origin_synced2);
401 profile2.SetRawInfo(NAME_FIRST, UTF8ToUTF16("Tom")); 400 profile2.SetRawInfo(NAME_FIRST, ASCIIToUTF16("Tom"));
402 profile2.SetRawInfo(ADDRESS_HOME_LINE1, UTF8ToUTF16("2 2nd st")); 401 profile2.SetRawInfo(ADDRESS_HOME_LINE1, ASCIIToUTF16("2 2nd st"));
403 profile2.SetRawInfo(COMPANY_NAME, UTF8ToUTF16("Fizzbang, LLC.")); 402 profile2.SetRawInfo(COMPANY_NAME, ASCIIToUTF16("Fizzbang, LLC."));
404 data_list.push_back(autofill_syncable_service_.CreateData(profile2)); 403 data_list.push_back(autofill_syncable_service_.CreateData(profile2));
405 404
406 // The first profile should have its origin updated. 405 // The first profile should have its origin updated.
407 // The second profile should remain as-is, because an unverified profile 406 // The second profile should remain as-is, because an unverified profile
408 // should never overwrite a verified one. 407 // should never overwrite a verified one.
409 AutofillProfile expected_profile(profile1); 408 AutofillProfile expected_profile(profile1);
410 expected_profile.set_origin(origin_present1); 409 expected_profile.set_origin(origin_present1);
411 syncer::SyncChangeList expected_change_list; 410 syncer::SyncChangeList expected_change_list;
412 expected_change_list.push_back( 411 expected_change_list.push_back(
413 syncer::SyncChange(FROM_HERE, 412 syncer::SyncChange(FROM_HERE,
(...skipping 17 matching lines...) Expand all
431 } 430 }
432 431
433 // Ensure that no Sync events are generated to fill in missing origins from Sync 432 // Ensure that no Sync events are generated to fill in missing origins from Sync
434 // with explicitly present empty ones. This ensures that the migration to add 433 // with explicitly present empty ones. This ensures that the migration to add
435 // origins to profiles does not generate lots of needless Sync updates. 434 // origins to profiles does not generate lots of needless Sync updates.
436 TEST_F(AutofillProfileSyncableServiceTest, MergeDataEmptyOrigins) { 435 TEST_F(AutofillProfileSyncableServiceTest, MergeDataEmptyOrigins) {
437 std::vector<AutofillProfile*> profiles_from_web_db; 436 std::vector<AutofillProfile*> profiles_from_web_db;
438 437
439 // Create a profile with an empty origin. 438 // Create a profile with an empty origin.
440 AutofillProfile profile(kGuid1, std::string()); 439 AutofillProfile profile(kGuid1, std::string());
441 profile.SetRawInfo(NAME_FIRST, UTF8ToUTF16("John")); 440 profile.SetRawInfo(NAME_FIRST, ASCIIToUTF16("John"));
442 profile.SetRawInfo(ADDRESS_HOME_LINE1, UTF8ToUTF16("1 1st st")); 441 profile.SetRawInfo(ADDRESS_HOME_LINE1, ASCIIToUTF16("1 1st st"));
443 442
444 profiles_from_web_db.push_back(new AutofillProfile(profile)); 443 profiles_from_web_db.push_back(new AutofillProfile(profile));
445 444
446 // Create a Sync profile identical to |profile|, except with no origin set. 445 // Create a Sync profile identical to |profile|, except with no origin set.
447 sync_pb::EntitySpecifics specifics; 446 sync_pb::EntitySpecifics specifics;
448 sync_pb::AutofillProfileSpecifics* autofill_specifics = 447 sync_pb::AutofillProfileSpecifics* autofill_specifics =
449 specifics.mutable_autofill_profile(); 448 specifics.mutable_autofill_profile();
450 autofill_specifics->set_guid(profile.guid()); 449 autofill_specifics->set_guid(profile.guid());
451 autofill_specifics->add_name_first("John"); 450 autofill_specifics->add_name_first("John");
452 autofill_specifics->add_name_middle(std::string()); 451 autofill_specifics->add_name_middle(std::string());
(...skipping 15 matching lines...) Expand all
468 autofill_syncable_service_.StopSyncing(syncer::AUTOFILL_PROFILE); 467 autofill_syncable_service_.StopSyncing(syncer::AUTOFILL_PROFILE);
469 } 468 }
470 469
471 TEST_F(AutofillProfileSyncableServiceTest, GetAllSyncData) { 470 TEST_F(AutofillProfileSyncableServiceTest, GetAllSyncData) {
472 std::vector<AutofillProfile*> profiles_from_web_db; 471 std::vector<AutofillProfile*> profiles_from_web_db;
473 std::string guid_present1 = kGuid1; 472 std::string guid_present1 = kGuid1;
474 std::string guid_present2 = kGuid2; 473 std::string guid_present2 = kGuid2;
475 474
476 profiles_from_web_db.push_back( 475 profiles_from_web_db.push_back(
477 new AutofillProfile(guid_present1, kHttpOrigin)); 476 new AutofillProfile(guid_present1, kHttpOrigin));
478 profiles_from_web_db.back()->SetRawInfo(NAME_FIRST, UTF8ToUTF16("John")); 477 profiles_from_web_db.back()->SetRawInfo(NAME_FIRST, ASCIIToUTF16("John"));
479 profiles_from_web_db.push_back( 478 profiles_from_web_db.push_back(
480 new AutofillProfile(guid_present2, kHttpsOrigin)); 479 new AutofillProfile(guid_present2, kHttpsOrigin));
481 profiles_from_web_db.back()->SetRawInfo(NAME_FIRST, UTF8ToUTF16("Jane")); 480 profiles_from_web_db.back()->SetRawInfo(NAME_FIRST, ASCIIToUTF16("Jane"));
482 481
483 syncer::SyncChangeList expected_change_list; 482 syncer::SyncChangeList expected_change_list;
484 expected_change_list.push_back( 483 expected_change_list.push_back(
485 syncer::SyncChange(FROM_HERE, 484 syncer::SyncChange(FROM_HERE,
486 syncer::SyncChange::ACTION_ADD, 485 syncer::SyncChange::ACTION_ADD,
487 MockAutofillProfileSyncableService::CreateData( 486 MockAutofillProfileSyncableService::CreateData(
488 *profiles_from_web_db.front()))); 487 *profiles_from_web_db.front())));
489 expected_change_list.push_back( 488 expected_change_list.push_back(
490 syncer::SyncChange(FROM_HERE, 489 syncer::SyncChange(FROM_HERE,
491 syncer::SyncChange::ACTION_ADD, 490 syncer::SyncChange::ACTION_ADD,
(...skipping 17 matching lines...) Expand all
509 autofill_syncable_service_.StopSyncing(syncer::AUTOFILL_PROFILE); 508 autofill_syncable_service_.StopSyncing(syncer::AUTOFILL_PROFILE);
510 } 509 }
511 510
512 TEST_F(AutofillProfileSyncableServiceTest, ProcessSyncChanges) { 511 TEST_F(AutofillProfileSyncableServiceTest, ProcessSyncChanges) {
513 std::vector<AutofillProfile *> profiles_from_web_db; 512 std::vector<AutofillProfile *> profiles_from_web_db;
514 std::string guid_present = kGuid1; 513 std::string guid_present = kGuid1;
515 std::string guid_synced = kGuid2; 514 std::string guid_synced = kGuid2;
516 515
517 syncer::SyncChangeList change_list; 516 syncer::SyncChangeList change_list;
518 AutofillProfile profile(guid_synced, kHttpOrigin); 517 AutofillProfile profile(guid_synced, kHttpOrigin);
519 profile.SetRawInfo(NAME_FIRST, UTF8ToUTF16("Jane")); 518 profile.SetRawInfo(NAME_FIRST, ASCIIToUTF16("Jane"));
520 change_list.push_back( 519 change_list.push_back(
521 syncer::SyncChange( 520 syncer::SyncChange(
522 FROM_HERE, 521 FROM_HERE,
523 syncer::SyncChange::ACTION_ADD, 522 syncer::SyncChange::ACTION_ADD,
524 MockAutofillProfileSyncableService::CreateData(profile))); 523 MockAutofillProfileSyncableService::CreateData(profile)));
525 AutofillProfile empty_profile(guid_present, kHttpsOrigin); 524 AutofillProfile empty_profile(guid_present, kHttpsOrigin);
526 change_list.push_back( 525 change_list.push_back(
527 syncer::SyncChange( 526 syncer::SyncChange(
528 FROM_HERE, 527 FROM_HERE,
529 syncer::SyncChange::ACTION_DELETE, 528 syncer::SyncChange::ACTION_DELETE,
(...skipping 15 matching lines...) Expand all
545 EXPECT_FALSE(error.IsSet()); 544 EXPECT_FALSE(error.IsSet());
546 } 545 }
547 546
548 TEST_F(AutofillProfileSyncableServiceTest, AutofillProfileAdded) { 547 TEST_F(AutofillProfileSyncableServiceTest, AutofillProfileAdded) {
549 // Will be owned by the syncable service. Keep a reference available here for 548 // Will be owned by the syncable service. Keep a reference available here for
550 // verifying test expectations. 549 // verifying test expectations.
551 TestSyncChangeProcessor* sync_change_processor = new TestSyncChangeProcessor; 550 TestSyncChangeProcessor* sync_change_processor = new TestSyncChangeProcessor;
552 autofill_syncable_service_.set_sync_processor(sync_change_processor); 551 autofill_syncable_service_.set_sync_processor(sync_change_processor);
553 552
554 AutofillProfile profile(kGuid1, kHttpsOrigin); 553 AutofillProfile profile(kGuid1, kHttpsOrigin);
555 profile.SetRawInfo(NAME_FIRST, UTF8ToUTF16("Jane")); 554 profile.SetRawInfo(NAME_FIRST, ASCIIToUTF16("Jane"));
556 AutofillProfileChange change(AutofillProfileChange::ADD, kGuid1, &profile); 555 AutofillProfileChange change(AutofillProfileChange::ADD, kGuid1, &profile);
557 autofill_syncable_service_.AutofillProfileChanged(change); 556 autofill_syncable_service_.AutofillProfileChanged(change);
558 557
559 ASSERT_EQ(1U, sync_change_processor->changes().size()); 558 ASSERT_EQ(1U, sync_change_processor->changes().size());
560 syncer::SyncChange result = sync_change_processor->changes()[0]; 559 syncer::SyncChange result = sync_change_processor->changes()[0];
561 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, result.change_type()); 560 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, result.change_type());
562 561
563 sync_pb::AutofillProfileSpecifics specifics = 562 sync_pb::AutofillProfileSpecifics specifics =
564 result.sync_data().GetSpecifics().autofill_profile(); 563 result.sync_data().GetSpecifics().autofill_profile();
565 EXPECT_EQ(kGuid1, specifics.guid()); 564 EXPECT_EQ(kGuid1, specifics.guid());
(...skipping 15 matching lines...) Expand all
581 EXPECT_EQ(syncer::SyncChange::ACTION_DELETE, result.change_type()); 580 EXPECT_EQ(syncer::SyncChange::ACTION_DELETE, result.change_type());
582 sync_pb::AutofillProfileSpecifics specifics = 581 sync_pb::AutofillProfileSpecifics specifics =
583 result.sync_data().GetSpecifics().autofill_profile(); 582 result.sync_data().GetSpecifics().autofill_profile();
584 EXPECT_EQ(kGuid2, specifics.guid()); 583 EXPECT_EQ(kGuid2, specifics.guid());
585 } 584 }
586 585
587 TEST_F(AutofillProfileSyncableServiceTest, UpdateField) { 586 TEST_F(AutofillProfileSyncableServiceTest, UpdateField) {
588 AutofillProfile profile(kGuid1, kSettingsOrigin); 587 AutofillProfile profile(kGuid1, kSettingsOrigin);
589 std::string company1 = "A Company"; 588 std::string company1 = "A Company";
590 std::string company2 = "Another Company"; 589 std::string company2 = "Another Company";
591 profile.SetRawInfo(COMPANY_NAME, UTF8ToUTF16(company1)); 590 profile.SetRawInfo(COMPANY_NAME, ASCIIToUTF16(company1));
592 EXPECT_FALSE(AutofillProfileSyncableService::UpdateField( 591 EXPECT_FALSE(AutofillProfileSyncableService::UpdateField(
593 COMPANY_NAME, company1, &profile)); 592 COMPANY_NAME, company1, &profile));
594 EXPECT_EQ(profile.GetRawInfo(COMPANY_NAME), UTF8ToUTF16(company1)); 593 EXPECT_EQ(profile.GetRawInfo(COMPANY_NAME), ASCIIToUTF16(company1));
595 EXPECT_TRUE(AutofillProfileSyncableService::UpdateField( 594 EXPECT_TRUE(AutofillProfileSyncableService::UpdateField(
596 COMPANY_NAME, company2, &profile)); 595 COMPANY_NAME, company2, &profile));
597 EXPECT_EQ(profile.GetRawInfo(COMPANY_NAME), UTF8ToUTF16(company2)); 596 EXPECT_EQ(profile.GetRawInfo(COMPANY_NAME), ASCIIToUTF16(company2));
598 EXPECT_FALSE(AutofillProfileSyncableService::UpdateField( 597 EXPECT_FALSE(AutofillProfileSyncableService::UpdateField(
599 COMPANY_NAME, company2, &profile)); 598 COMPANY_NAME, company2, &profile));
600 EXPECT_EQ(profile.GetRawInfo(COMPANY_NAME), UTF8ToUTF16(company2)); 599 EXPECT_EQ(profile.GetRawInfo(COMPANY_NAME), ASCIIToUTF16(company2));
601 } 600 }
602 601
603 TEST_F(AutofillProfileSyncableServiceTest, UpdateMultivaluedField) { 602 TEST_F(AutofillProfileSyncableServiceTest, UpdateMultivaluedField) {
604 AutofillProfile profile(kGuid1, kHttpsOrigin); 603 AutofillProfile profile(kGuid1, kHttpsOrigin);
605 604
606 std::vector<base::string16> values; 605 std::vector<base::string16> values;
607 values.push_back(UTF8ToUTF16("1@1.com")); 606 values.push_back(ASCIIToUTF16("1@1.com"));
608 values.push_back(UTF8ToUTF16("2@1.com")); 607 values.push_back(ASCIIToUTF16("2@1.com"));
609 profile.SetRawMultiInfo(EMAIL_ADDRESS, values); 608 profile.SetRawMultiInfo(EMAIL_ADDRESS, values);
610 609
611 ::google::protobuf::RepeatedPtrField<std::string> specifics_fields; 610 ::google::protobuf::RepeatedPtrField<std::string> specifics_fields;
612 specifics_fields.AddAllocated(new std::string("2@1.com")); 611 specifics_fields.AddAllocated(new std::string("2@1.com"));
613 specifics_fields.AddAllocated(new std::string("3@1.com")); 612 specifics_fields.AddAllocated(new std::string("3@1.com"));
614 613
615 EXPECT_TRUE(AutofillProfileSyncableService::UpdateMultivaluedField( 614 EXPECT_TRUE(AutofillProfileSyncableService::UpdateMultivaluedField(
616 EMAIL_ADDRESS, specifics_fields, &profile)); 615 EMAIL_ADDRESS, specifics_fields, &profile));
617 profile.GetRawMultiInfo(EMAIL_ADDRESS, &values); 616 profile.GetRawMultiInfo(EMAIL_ADDRESS, &values);
618 ASSERT_TRUE(values.size() == 2); 617 ASSERT_TRUE(values.size() == 2);
619 EXPECT_EQ(values[0], UTF8ToUTF16("2@1.com")); 618 EXPECT_EQ(values[0], ASCIIToUTF16("2@1.com"));
620 EXPECT_EQ(values[1], UTF8ToUTF16("3@1.com")); 619 EXPECT_EQ(values[1], ASCIIToUTF16("3@1.com"));
621 620
622 EXPECT_FALSE(AutofillProfileSyncableService::UpdateMultivaluedField( 621 EXPECT_FALSE(AutofillProfileSyncableService::UpdateMultivaluedField(
623 EMAIL_ADDRESS, specifics_fields, &profile)); 622 EMAIL_ADDRESS, specifics_fields, &profile));
624 profile.GetRawMultiInfo(EMAIL_ADDRESS, &values); 623 profile.GetRawMultiInfo(EMAIL_ADDRESS, &values);
625 ASSERT_EQ(values.size(), 2U); 624 ASSERT_EQ(values.size(), 2U);
626 EXPECT_EQ(values[0], UTF8ToUTF16("2@1.com")); 625 EXPECT_EQ(values[0], ASCIIToUTF16("2@1.com"));
627 EXPECT_EQ(values[1], UTF8ToUTF16("3@1.com")); 626 EXPECT_EQ(values[1], ASCIIToUTF16("3@1.com"));
628 EXPECT_TRUE(AutofillProfileSyncableService::UpdateMultivaluedField( 627 EXPECT_TRUE(AutofillProfileSyncableService::UpdateMultivaluedField(
629 EMAIL_ADDRESS, ::google::protobuf::RepeatedPtrField<std::string>(), 628 EMAIL_ADDRESS, ::google::protobuf::RepeatedPtrField<std::string>(),
630 &profile)); 629 &profile));
631 profile.GetRawMultiInfo(EMAIL_ADDRESS, &values); 630 profile.GetRawMultiInfo(EMAIL_ADDRESS, &values);
632 ASSERT_EQ(values.size(), 1U); // Always have at least an empty string. 631 ASSERT_EQ(values.size(), 1U); // Always have at least an empty string.
633 EXPECT_EQ(values[0], UTF8ToUTF16("")); 632 EXPECT_EQ(values[0], ASCIIToUTF16(""));
634 } 633 }
635 634
636 TEST_F(AutofillProfileSyncableServiceTest, MergeProfile) { 635 TEST_F(AutofillProfileSyncableServiceTest, MergeProfile) {
637 AutofillProfile profile1(kGuid1, kHttpOrigin); 636 AutofillProfile profile1(kGuid1, kHttpOrigin);
638 profile1.SetRawInfo(ADDRESS_HOME_LINE1, UTF8ToUTF16("111 First St.")); 637 profile1.SetRawInfo(ADDRESS_HOME_LINE1, ASCIIToUTF16("111 First St."));
639 638
640 std::vector<base::string16> values; 639 std::vector<base::string16> values;
641 values.push_back(UTF8ToUTF16("1@1.com")); 640 values.push_back(ASCIIToUTF16("1@1.com"));
642 values.push_back(UTF8ToUTF16("2@1.com")); 641 values.push_back(ASCIIToUTF16("2@1.com"));
643 profile1.SetRawMultiInfo(EMAIL_ADDRESS, values); 642 profile1.SetRawMultiInfo(EMAIL_ADDRESS, values);
644 643
645 AutofillProfile profile2(kGuid2, kHttpsOrigin); 644 AutofillProfile profile2(kGuid2, kHttpsOrigin);
646 profile2.SetRawInfo(ADDRESS_HOME_LINE1, UTF8ToUTF16("111 First St.")); 645 profile2.SetRawInfo(ADDRESS_HOME_LINE1, ASCIIToUTF16("111 First St."));
647 646
648 // |values| now is [ "1@1.com", "2@1.com", "3@1.com" ]. 647 // |values| now is [ "1@1.com", "2@1.com", "3@1.com" ].
649 values.push_back(UTF8ToUTF16("3@1.com")); 648 values.push_back(ASCIIToUTF16("3@1.com"));
650 profile2.SetRawMultiInfo(EMAIL_ADDRESS, values); 649 profile2.SetRawMultiInfo(EMAIL_ADDRESS, values);
651 650
652 values.clear(); 651 values.clear();
653 values.push_back(UTF8ToUTF16("John")); 652 values.push_back(ASCIIToUTF16("John"));
654 profile1.SetRawMultiInfo(NAME_FIRST, values); 653 profile1.SetRawMultiInfo(NAME_FIRST, values);
655 values.push_back(UTF8ToUTF16("Jane")); 654 values.push_back(ASCIIToUTF16("Jane"));
656 profile2.SetRawMultiInfo(NAME_FIRST, values); 655 profile2.SetRawMultiInfo(NAME_FIRST, values);
657 656
658 values.clear(); 657 values.clear();
659 values.push_back(UTF8ToUTF16("Doe")); 658 values.push_back(ASCIIToUTF16("Doe"));
660 profile1.SetRawMultiInfo(NAME_LAST, values); 659 profile1.SetRawMultiInfo(NAME_LAST, values);
661 values.push_back(UTF8ToUTF16("Other")); 660 values.push_back(ASCIIToUTF16("Other"));
662 profile2.SetRawMultiInfo(NAME_LAST, values); 661 profile2.SetRawMultiInfo(NAME_LAST, values);
663 662
664 values.clear(); 663 values.clear();
665 values.push_back(UTF8ToUTF16("650234567")); 664 values.push_back(ASCIIToUTF16("650234567"));
666 profile2.SetRawMultiInfo(PHONE_HOME_WHOLE_NUMBER, values); 665 profile2.SetRawMultiInfo(PHONE_HOME_WHOLE_NUMBER, values);
667 666
668 EXPECT_FALSE(AutofillProfileSyncableService::MergeProfile(profile2, 667 EXPECT_FALSE(AutofillProfileSyncableService::MergeProfile(profile2,
669 &profile1, 668 &profile1,
670 "en-US")); 669 "en-US"));
671 670
672 profile1.GetRawMultiInfo(NAME_FIRST, &values); 671 profile1.GetRawMultiInfo(NAME_FIRST, &values);
673 ASSERT_EQ(values.size(), 2U); 672 ASSERT_EQ(values.size(), 2U);
674 EXPECT_EQ(values[0], UTF8ToUTF16("John")); 673 EXPECT_EQ(values[0], ASCIIToUTF16("John"));
675 EXPECT_EQ(values[1], UTF8ToUTF16("Jane")); 674 EXPECT_EQ(values[1], ASCIIToUTF16("Jane"));
676 675
677 profile1.GetRawMultiInfo(NAME_LAST, &values); 676 profile1.GetRawMultiInfo(NAME_LAST, &values);
678 ASSERT_EQ(values.size(), 2U); 677 ASSERT_EQ(values.size(), 2U);
679 EXPECT_EQ(values[0], UTF8ToUTF16("Doe")); 678 EXPECT_EQ(values[0], ASCIIToUTF16("Doe"));
680 EXPECT_EQ(values[1], UTF8ToUTF16("Other")); 679 EXPECT_EQ(values[1], ASCIIToUTF16("Other"));
681 680
682 profile1.GetRawMultiInfo(EMAIL_ADDRESS, &values); 681 profile1.GetRawMultiInfo(EMAIL_ADDRESS, &values);
683 ASSERT_EQ(values.size(), 3U); 682 ASSERT_EQ(values.size(), 3U);
684 EXPECT_EQ(values[0], UTF8ToUTF16("1@1.com")); 683 EXPECT_EQ(values[0], ASCIIToUTF16("1@1.com"));
685 EXPECT_EQ(values[1], UTF8ToUTF16("2@1.com")); 684 EXPECT_EQ(values[1], ASCIIToUTF16("2@1.com"));
686 EXPECT_EQ(values[2], UTF8ToUTF16("3@1.com")); 685 EXPECT_EQ(values[2], ASCIIToUTF16("3@1.com"));
687 686
688 profile1.GetRawMultiInfo(PHONE_HOME_WHOLE_NUMBER, &values); 687 profile1.GetRawMultiInfo(PHONE_HOME_WHOLE_NUMBER, &values);
689 ASSERT_EQ(values.size(), 1U); 688 ASSERT_EQ(values.size(), 1U);
690 EXPECT_EQ(values[0], UTF8ToUTF16("650234567")); 689 EXPECT_EQ(values[0], ASCIIToUTF16("650234567"));
691 690
692 EXPECT_EQ(profile2.origin(), profile1.origin()); 691 EXPECT_EQ(profile2.origin(), profile1.origin());
693 692
694 AutofillProfile profile3(kGuid3, kHttpOrigin); 693 AutofillProfile profile3(kGuid3, kHttpOrigin);
695 profile3.SetRawInfo(ADDRESS_HOME_LINE1, UTF8ToUTF16("111 First St.")); 694 profile3.SetRawInfo(ADDRESS_HOME_LINE1, ASCIIToUTF16("111 First St."));
696 695
697 values.clear(); 696 values.clear();
698 values.push_back(UTF8ToUTF16("Jane")); 697 values.push_back(ASCIIToUTF16("Jane"));
699 profile3.SetRawMultiInfo(NAME_FIRST, values); 698 profile3.SetRawMultiInfo(NAME_FIRST, values);
700 699
701 values.clear(); 700 values.clear();
702 values.push_back(UTF8ToUTF16("Doe")); 701 values.push_back(ASCIIToUTF16("Doe"));
703 profile3.SetRawMultiInfo(NAME_LAST, values); 702 profile3.SetRawMultiInfo(NAME_LAST, values);
704 703
705 EXPECT_TRUE(AutofillProfileSyncableService::MergeProfile(profile3, 704 EXPECT_TRUE(AutofillProfileSyncableService::MergeProfile(profile3,
706 &profile1, 705 &profile1,
707 "en-US")); 706 "en-US"));
708 707
709 profile1.GetRawMultiInfo(NAME_FIRST, &values); 708 profile1.GetRawMultiInfo(NAME_FIRST, &values);
710 ASSERT_EQ(values.size(), 3U); 709 ASSERT_EQ(values.size(), 3U);
711 EXPECT_EQ(values[0], UTF8ToUTF16("John")); 710 EXPECT_EQ(values[0], ASCIIToUTF16("John"));
712 EXPECT_EQ(values[1], UTF8ToUTF16("Jane")); 711 EXPECT_EQ(values[1], ASCIIToUTF16("Jane"));
713 EXPECT_EQ(values[2], UTF8ToUTF16("Jane")); 712 EXPECT_EQ(values[2], ASCIIToUTF16("Jane"));
714 713
715 profile1.GetRawMultiInfo(NAME_LAST, &values); 714 profile1.GetRawMultiInfo(NAME_LAST, &values);
716 ASSERT_EQ(values.size(), 3U); 715 ASSERT_EQ(values.size(), 3U);
717 EXPECT_EQ(values[0], UTF8ToUTF16("Doe")); 716 EXPECT_EQ(values[0], ASCIIToUTF16("Doe"));
718 EXPECT_EQ(values[1], UTF8ToUTF16("Other")); 717 EXPECT_EQ(values[1], ASCIIToUTF16("Other"));
719 EXPECT_EQ(values[2], UTF8ToUTF16("Doe")); 718 EXPECT_EQ(values[2], ASCIIToUTF16("Doe"));
720 719
721 // Middle name should have three entries as well. 720 // Middle name should have three entries as well.
722 profile1.GetRawMultiInfo(NAME_MIDDLE, &values); 721 profile1.GetRawMultiInfo(NAME_MIDDLE, &values);
723 ASSERT_EQ(values.size(), 3U); 722 ASSERT_EQ(values.size(), 3U);
724 EXPECT_TRUE(values[0].empty()); 723 EXPECT_TRUE(values[0].empty());
725 EXPECT_TRUE(values[1].empty()); 724 EXPECT_TRUE(values[1].empty());
726 EXPECT_TRUE(values[2].empty()); 725 EXPECT_TRUE(values[2].empty());
727 726
728 profile1.GetRawMultiInfo(EMAIL_ADDRESS, &values); 727 profile1.GetRawMultiInfo(EMAIL_ADDRESS, &values);
729 ASSERT_EQ(values.size(), 3U); 728 ASSERT_EQ(values.size(), 3U);
730 EXPECT_EQ(values[0], UTF8ToUTF16("1@1.com")); 729 EXPECT_EQ(values[0], ASCIIToUTF16("1@1.com"));
731 EXPECT_EQ(values[1], UTF8ToUTF16("2@1.com")); 730 EXPECT_EQ(values[1], ASCIIToUTF16("2@1.com"));
732 EXPECT_EQ(values[2], UTF8ToUTF16("3@1.com")); 731 EXPECT_EQ(values[2], ASCIIToUTF16("3@1.com"));
733 732
734 profile1.GetRawMultiInfo(PHONE_HOME_WHOLE_NUMBER, &values); 733 profile1.GetRawMultiInfo(PHONE_HOME_WHOLE_NUMBER, &values);
735 ASSERT_EQ(values.size(), 1U); 734 ASSERT_EQ(values.size(), 1U);
736 EXPECT_EQ(values[0], UTF8ToUTF16("650234567")); 735 EXPECT_EQ(values[0], ASCIIToUTF16("650234567"));
737 } 736 }
738 737
739 // Ensure that all profile fields are able to be synced up from the client to 738 // Ensure that all profile fields are able to be synced up from the client to
740 // the server. 739 // the server.
741 TEST_F(AutofillProfileSyncableServiceTest, SyncAllFieldsToServer) { 740 TEST_F(AutofillProfileSyncableServiceTest, SyncAllFieldsToServer) {
742 std::vector<AutofillProfile*> profiles_from_web_db; 741 std::vector<AutofillProfile*> profiles_from_web_db;
743 742
744 // Create a profile with all fields set. 743 // Create a profile with all fields set.
745 profiles_from_web_db.push_back(ConstructCompleteProfile().release()); 744 profiles_from_web_db.push_back(ConstructCompleteProfile().release());
746 745
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
869 profile.guid(), profile.guid(), specifics)); 868 profile.guid(), profile.guid(), specifics));
870 869
871 MockAutofillProfileSyncableService::DataBundle expected_bundle; 870 MockAutofillProfileSyncableService::DataBundle expected_bundle;
872 syncer::SyncChangeList expected_change_list; 871 syncer::SyncChangeList expected_change_list;
873 MergeDataAndStartSyncing( 872 MergeDataAndStartSyncing(
874 profiles_from_web_db, data_list, expected_bundle, expected_change_list); 873 profiles_from_web_db, data_list, expected_bundle, expected_change_list);
875 autofill_syncable_service_.StopSyncing(syncer::AUTOFILL_PROFILE); 874 autofill_syncable_service_.StopSyncing(syncer::AUTOFILL_PROFILE);
876 } 875 }
877 876
878 } // namespace autofill 877 } // namespace autofill
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698