15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/strings/utf_string_conversions.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/sync/test/integration/autofill_helper.h" 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/sync/test/integration/bookmarks_helper.h" 85d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "chrome/browser/sync/test/integration/profile_sync_service_harness.h" 9effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "chrome/browser/sync/test/integration/sync_integration_test_util.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/sync/test/integration/sync_test.h" 11eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "components/autofill/core/browser/autofill_profile.h" 12eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "components/autofill/core/browser/credit_card.h" 13eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "components/autofill/core/browser/personal_data_manager.h" 14eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "components/autofill/core/browser/webdata/autofill_entry.h" 15eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "components/autofill/core/browser/webdata/autofill_table.h" 16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)using autofill::AutofillKey; 18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)using autofill::AutofillTable; 19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)using autofill::AutofillProfile; 20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)using autofill::AutofillType; 21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)using autofill::CreditCard; 22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)using autofill::PersonalDataManager; 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using autofill_helper::AddKeys; 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using autofill_helper::AddProfile; 25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)using autofill_helper::AwaitKeysMatch; 26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)using autofill_helper::AwaitProfilesMatch; 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using autofill_helper::CreateAutofillProfile; 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using autofill_helper::GetAllKeys; 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using autofill_helper::GetAllProfiles; 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using autofill_helper::GetPersonalDataManager; 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using autofill_helper::KeysMatch; 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using autofill_helper::ProfilesMatch; 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using autofill_helper::PROFILE_FRASIER; 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using autofill_helper::PROFILE_HOMER; 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using autofill_helper::PROFILE_MARION; 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using autofill_helper::PROFILE_NULL; 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using autofill_helper::RemoveKey; 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using autofill_helper::RemoveProfile; 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using autofill_helper::SetCreditCards; 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using autofill_helper::UpdateProfile; 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using bookmarks_helper::AddFolder; 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using bookmarks_helper::AddURL; 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using bookmarks_helper::IndexedURL; 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using bookmarks_helper::IndexedURLTitle; 45effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochusing sync_integration_test_util::AwaitCommitActivityCompletion; 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class TwoClientAutofillSyncTest : public SyncTest { 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TwoClientAutofillSyncTest() : SyncTest(TWO_CLIENT) { count = 0; } 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~TwoClientAutofillSyncTest() {} 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 52cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual bool TestUsesSelfNotifications() OVERRIDE { return false; } 53cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // We do this so as to make a change that will trigger the autofill to sync. 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // By default autofill does not sync unless there is some other change. 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void MakeABookmarkChange(int profile) { 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE( 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AddURL(profile, IndexedURLTitle(count), GURL(IndexedURL(count)))); 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ++count; 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int count; 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(TwoClientAutofillSyncTest); 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IN_PROC_BROWSER_TEST_F(TwoClientAutofillSyncTest, WebDataServiceSanity) { 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Client0 adds a key. 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::set<AutofillKey> keys; 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) keys.insert(AutofillKey("name0", "value0")); 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AddKeys(0, keys); 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MakeABookmarkChange(0); 74cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ASSERT_TRUE(AwaitKeysMatch(0, 1)); 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(1U, GetAllKeys(0).size()); 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Client1 adds a key. 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) keys.clear(); 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) keys.insert(AutofillKey("name1", "value1-0")); 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AddKeys(1, keys); 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MakeABookmarkChange(1); 82cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ASSERT_TRUE(AwaitKeysMatch(0, 1)); 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(2U, GetAllKeys(0).size()); 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Client0 adds a key with the same name. 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) keys.clear(); 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) keys.insert(AutofillKey("name1", "value1-1")); 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AddKeys(0, keys); 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MakeABookmarkChange(0); 90cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ASSERT_TRUE(AwaitKeysMatch(0, 1)); 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(3U, GetAllKeys(0).size()); 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Client1 removes a key. 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) RemoveKey(1, AutofillKey("name1", "value1-0")); 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MakeABookmarkChange(1); 96cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ASSERT_TRUE(AwaitKeysMatch(0, 1)); 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(2U, GetAllKeys(0).size()); 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Client0 removes the rest. 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) RemoveKey(0, AutofillKey("name0", "value0")); 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) RemoveKey(0, AutofillKey("name1", "value1-1")); 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MakeABookmarkChange(0); 103cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ASSERT_TRUE(AwaitKeysMatch(0, 1)); 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(0U, GetAllKeys(0).size()); 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// TCM ID - 3678296. 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(TwoClientAutofillSyncTest, AddUnicodeProfile) { 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupClients()) << "SetupClients() failed."; 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::set<AutofillKey> keys; 1125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) keys.insert(AutofillKey(base::WideToUTF16(L"Sigur R\u00F3s"), 1135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::WideToUTF16(L"\u00C1g\u00E6tis byrjun"))); 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AddKeys(0, keys); 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 116cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ASSERT_TRUE(AwaitKeysMatch(0, 1)); 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(TwoClientAutofillSyncTest, 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AddDuplicateNamesToSameProfile) { 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupClients()) << "SetupClients() failed."; 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::set<AutofillKey> keys; 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) keys.insert(AutofillKey("name0", "value0-0")); 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) keys.insert(AutofillKey("name0", "value0-1")); 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) keys.insert(AutofillKey("name1", "value1")); 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AddKeys(0, keys); 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 129cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ASSERT_TRUE(AwaitKeysMatch(0, 1)); 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(2U, GetAllKeys(0).size()); 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(TwoClientAutofillSyncTest, 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AddDuplicateNamesToDifferentProfiles) { 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupClients()) << "SetupClients() failed."; 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::set<AutofillKey> keys0; 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) keys0.insert(AutofillKey("name0", "value0-0")); 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) keys0.insert(AutofillKey("name1", "value1")); 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AddKeys(0, keys0); 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::set<AutofillKey> keys1; 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) keys1.insert(AutofillKey("name0", "value0-1")); 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) keys1.insert(AutofillKey("name2", "value2")); 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) keys1.insert(AutofillKey("name3", "value3")); 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AddKeys(1, keys1); 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 149cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ASSERT_TRUE(AwaitKeysMatch(0, 1)); 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(5U, GetAllKeys(0).size()); 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(TwoClientAutofillSyncTest, 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PersonalDataManagerSanity) { 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Client0 adds a profile. 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AddProfile(0, CreateAutofillProfile(PROFILE_HOMER)); 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MakeABookmarkChange(0); 160cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ASSERT_TRUE(AwaitProfilesMatch(0, 1)); 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(1U, GetAllProfiles(0).size()); 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Client1 adds a profile. 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AddProfile(1, CreateAutofillProfile(PROFILE_MARION)); 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MakeABookmarkChange(1); 166cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ASSERT_TRUE(AwaitProfilesMatch(0, 1)); 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(2U, GetAllProfiles(0).size()); 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Client0 adds the same profile. 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AddProfile(0, CreateAutofillProfile(PROFILE_MARION)); 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MakeABookmarkChange(0); 172cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ASSERT_TRUE(AwaitProfilesMatch(0, 1)); 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(2U, GetAllProfiles(0).size()); 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Client1 removes a profile. 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) RemoveProfile(1, GetAllProfiles(1)[0]->guid()); 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MakeABookmarkChange(1); 178cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ASSERT_TRUE(AwaitProfilesMatch(0, 1)); 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(1U, GetAllProfiles(0).size()); 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Client0 updates a profile. 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UpdateProfile(0, 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetAllProfiles(0)[0]->guid(), 184c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) AutofillType(autofill::NAME_FIRST), 1855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::ASCIIToUTF16("Bart")); 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MakeABookmarkChange(0); 187cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ASSERT_TRUE(AwaitProfilesMatch(0, 1)); 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(1U, GetAllProfiles(0).size()); 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Client1 removes remaining profile. 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) RemoveProfile(1, GetAllProfiles(1)[0]->guid()); 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MakeABookmarkChange(1); 193cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ASSERT_TRUE(AwaitProfilesMatch(0, 1)); 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(0U, GetAllProfiles(0).size()); 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// TCM ID - 7261786. 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(TwoClientAutofillSyncTest, AddDuplicateProfiles) { 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupClients()) << "SetupClients() failed."; 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AddProfile(0, CreateAutofillProfile(PROFILE_HOMER)); 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AddProfile(0, CreateAutofillProfile(PROFILE_HOMER)); 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 204cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ASSERT_TRUE(AwaitProfilesMatch(0, 1)); 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(1U, GetAllProfiles(0).size()); 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// TCM ID - 3636294. 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(TwoClientAutofillSyncTest, SameProfileWithConflict) { 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupClients()) << "SetupClients() failed."; 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AutofillProfile profile0 = CreateAutofillProfile(PROFILE_HOMER); 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AutofillProfile profile1 = CreateAutofillProfile(PROFILE_HOMER); 214c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) profile1.SetRawInfo(autofill::PHONE_HOME_WHOLE_NUMBER, 2155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::ASCIIToUTF16("1234567890")); 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AddProfile(0, profile0); 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AddProfile(1, profile1); 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 220cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ASSERT_TRUE(AwaitProfilesMatch(0, 1)); 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(1U, GetAllProfiles(0).size()); 2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// TCM ID - 3626291. 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(TwoClientAutofillSyncTest, AddEmptyProfile) { 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AddProfile(0, CreateAutofillProfile(PROFILE_NULL)); 229cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ASSERT_TRUE(AwaitProfilesMatch(0, 1)); 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(0U, GetAllProfiles(0).size()); 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// TCM ID - 3616283. 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(TwoClientAutofillSyncTest, AddProfile) { 2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AddProfile(0, CreateAutofillProfile(PROFILE_HOMER)); 2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MakeABookmarkChange(0); 239cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ASSERT_TRUE(AwaitProfilesMatch(0, 1)); 2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(1U, GetAllProfiles(0).size()); 2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// TCM ID - 3632260. 2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(TwoClientAutofillSyncTest, AddMultipleProfiles) { 2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AddProfile(0, CreateAutofillProfile(PROFILE_HOMER)); 2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AddProfile(0, CreateAutofillProfile(PROFILE_MARION)); 2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AddProfile(0, CreateAutofillProfile(PROFILE_FRASIER)); 2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MakeABookmarkChange(0); 251cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ASSERT_TRUE(AwaitProfilesMatch(0, 1)); 2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(3U, GetAllProfiles(0).size()); 2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// TCM ID - 3602257. 2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(TwoClientAutofillSyncTest, DeleteProfile) { 2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AddProfile(0, CreateAutofillProfile(PROFILE_HOMER)); 2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MakeABookmarkChange(0); 261cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ASSERT_TRUE(AwaitProfilesMatch(0, 1)); 2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(1U, GetAllProfiles(0).size()); 2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) RemoveProfile(1, GetAllProfiles(1)[0]->guid()); 2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MakeABookmarkChange(1); 266cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ASSERT_TRUE(AwaitProfilesMatch(0, 1)); 2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(0U, GetAllProfiles(0).size()); 2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// TCM ID - 3627300. 2715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(TwoClientAutofillSyncTest, MergeProfiles) { 2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupClients()) << "SetupClients() failed."; 2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AddProfile(0, CreateAutofillProfile(PROFILE_HOMER)); 2755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AddProfile(1, CreateAutofillProfile(PROFILE_MARION)); 2765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AddProfile(1, CreateAutofillProfile(PROFILE_FRASIER)); 2775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 278cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ASSERT_TRUE(AwaitProfilesMatch(0, 1)); 2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(3U, GetAllProfiles(0).size()); 2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// TCM ID - 3665264. 2835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(TwoClientAutofillSyncTest, UpdateFields) { 2845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 2855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AddProfile(0, CreateAutofillProfile(PROFILE_HOMER)); 2875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MakeABookmarkChange(0); 288cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ASSERT_TRUE(AwaitProfilesMatch(0, 1)); 2895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(1U, GetAllProfiles(0).size()); 2905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UpdateProfile(0, 2925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetAllProfiles(0)[0]->guid(), 293c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) AutofillType(autofill::NAME_FIRST), 2945d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::ASCIIToUTF16("Lisa")); 2955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UpdateProfile(0, 2965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetAllProfiles(0)[0]->guid(), 297c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) AutofillType(autofill::EMAIL_ADDRESS), 2985d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::ASCIIToUTF16("grrrl@TV.com")); 2995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MakeABookmarkChange(0); 300cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ASSERT_TRUE(AwaitProfilesMatch(0, 1)); 3015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(1U, GetAllProfiles(0).size()); 3025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 3035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// TCM ID - 3628299. 305cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(TwoClientAutofillSyncTest, ConflictingFields) { 3065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 3075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AddProfile(0, CreateAutofillProfile(PROFILE_HOMER)); 3095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MakeABookmarkChange(0); 310cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ASSERT_TRUE(AwaitProfilesMatch(0, 1)); 3115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(1U, GetAllProfiles(0).size()); 3125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UpdateProfile(0, 3135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetAllProfiles(0)[0]->guid(), 314c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) AutofillType(autofill::NAME_FIRST), 3155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::ASCIIToUTF16("Lisa")); 3165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MakeABookmarkChange(0); 3175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UpdateProfile(1, 3185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetAllProfiles(1)[0]->guid(), 319c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) AutofillType(autofill::NAME_FIRST), 3205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::ASCIIToUTF16("Bart")); 3215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MakeABookmarkChange(1); 322cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ASSERT_TRUE(AwaitProfilesMatch(0, 1)); 3235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(1U, GetAllProfiles(0).size()); 3245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 3255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// TCM ID - 3608295. 3275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(TwoClientAutofillSyncTest, MaxLength) { 3285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 3295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AddProfile(0, CreateAutofillProfile(PROFILE_HOMER)); 3315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MakeABookmarkChange(0); 332cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ASSERT_TRUE(AwaitProfilesMatch(0, 1)); 3335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(1U, GetAllProfiles(0).size()); 3345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 335a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) base::string16 max_length_string(AutofillTable::kMaxDataLength, '.'); 3365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UpdateProfile(0, 3375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetAllProfiles(0)[0]->guid(), 3386d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) AutofillType(autofill::NAME_FULL), 3395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) max_length_string); 3405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UpdateProfile(0, 3415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetAllProfiles(0)[0]->guid(), 342c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) AutofillType(autofill::EMAIL_ADDRESS), 3435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) max_length_string); 3445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UpdateProfile(0, 3455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetAllProfiles(0)[0]->guid(), 346c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) AutofillType(autofill::ADDRESS_HOME_LINE1), 3475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) max_length_string); 3485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MakeABookmarkChange(0); 350cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ASSERT_TRUE(AwaitProfilesMatch(0, 1)); 3515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 3525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(TwoClientAutofillSyncTest, ExceedsMaxLength) { 3545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 3555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AddProfile(0, CreateAutofillProfile(PROFILE_HOMER)); 3575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MakeABookmarkChange(0); 358cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ASSERT_TRUE(AwaitProfilesMatch(0, 1)); 3595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(1U, GetAllProfiles(0).size()); 3605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 361a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) base::string16 exceeds_max_length_string( 362a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) AutofillTable::kMaxDataLength + 1, '.'); 3635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UpdateProfile(0, 3645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetAllProfiles(0)[0]->guid(), 365c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) AutofillType(autofill::NAME_FIRST), 3665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exceeds_max_length_string); 3675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UpdateProfile(0, 3685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetAllProfiles(0)[0]->guid(), 369c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) AutofillType(autofill::NAME_LAST), 3705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exceeds_max_length_string); 3715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UpdateProfile(0, 3725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetAllProfiles(0)[0]->guid(), 373c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) AutofillType(autofill::EMAIL_ADDRESS), 3745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exceeds_max_length_string); 3755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UpdateProfile(0, 3765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetAllProfiles(0)[0]->guid(), 377c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) AutofillType(autofill::ADDRESS_HOME_LINE1), 3785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exceeds_max_length_string); 3795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MakeABookmarkChange(0); 381cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ASSERT_TRUE(bookmarks_helper::AwaitAllModelsMatch()); 382cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) EXPECT_FALSE(ProfilesMatch(0, 1)); 3835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 3845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Test credit cards don't sync. 3865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(TwoClientAutofillSyncTest, NoCreditCardSync) { 3875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 3885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AddProfile(0, CreateAutofillProfile(PROFILE_HOMER)); 3905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CreditCard card; 392c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) card.SetRawInfo(autofill::CREDIT_CARD_NUMBER, 3935d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::ASCIIToUTF16("6011111111111117")); 3945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::vector<CreditCard> credit_cards; 3955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) credit_cards.push_back(card); 3965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SetCreditCards(0, &credit_cards); 3975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MakeABookmarkChange(0); 399cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ASSERT_TRUE(AwaitProfilesMatch(0, 1)); 4005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(1U, GetAllProfiles(0).size()); 4015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PersonalDataManager* pdm = GetPersonalDataManager(1); 403c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) ASSERT_EQ(0U, pdm->GetCreditCards().size()); 4045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 405