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/search_engines/template_url_service_factory.h" 75d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "chrome/browser/sync/test/integration/profile_sync_service_harness.h" 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/sync/test/integration/search_engines_helper.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/sync/test/integration/sync_datatype_helper.h" 10effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "chrome/browser/sync/test/integration/sync_integration_test_util.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/sync/test/integration/sync_test.h" 12116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "components/search_engines/template_url.h" 13116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "components/search_engines/template_url_service.h" 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)using base::ASCIIToUTF16; 16effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochusing sync_integration_test_util::AwaitCommitActivityCompletion; 175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class TwoClientSearchEnginesSyncTest : public SyncTest { 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TwoClientSearchEnginesSyncTest() : SyncTest(TWO_CLIENT) {} 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~TwoClientSearchEnginesSyncTest() {} 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(TwoClientSearchEnginesSyncTest); 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// TCM ID - 8898628. 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(TwoClientSearchEnginesSyncTest, Add) { 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(search_engines_helper::AllServicesMatch()); 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) search_engines_helper::AddSearchEngine(0, 0); 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(search_engines_helper::AllServicesMatch()); 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// TCM ID - 8912240. 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(TwoClientSearchEnginesSyncTest, AddMultiple) { 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(search_engines_helper::AllServicesMatch()); 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Add a few entries. 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for (int i = 0; i < 3; ++i) 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) search_engines_helper::AddSearchEngine(0, i); 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(search_engines_helper::AllServicesMatch()); 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// TCM ID - 9011135. 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(TwoClientSearchEnginesSyncTest, Duplicates) { 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(search_engines_helper::AllServicesMatch()); 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Add two entries with the same Name and URL (but different keywords). 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Note that we have to change the GUID of the duplicate. 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) search_engines_helper::AddSearchEngine(0, 0); 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Profile* profile = sync_datatype_helper::test()->GetProfile(0); 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TemplateURLServiceFactory::GetForProfile(profile)->Add( 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) search_engines_helper::CreateTestTemplateURL(profile, 0, 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASCIIToUTF16("somethingelse"), "newguid")); 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) search_engines_helper::GetVerifierService()->Add( 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) search_engines_helper::CreateTestTemplateURL(profile, 0, 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASCIIToUTF16("somethingelse"), "newguid")); 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(search_engines_helper::AllServicesMatch()); 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// TCM ID - 9004201. 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(TwoClientSearchEnginesSyncTest, UpdateKeyword) { 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(search_engines_helper::AllServicesMatch()); 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) search_engines_helper::AddSearchEngine(0, 0); 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Change the keyword. 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(search_engines_helper::AllServicesMatch()); 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) search_engines_helper::EditSearchEngine(0, ASCIIToUTF16("test0"), 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASCIIToUTF16("test0"), ASCIIToUTF16("newkeyword"), 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) "http://www.test0.com/"); 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(search_engines_helper::AllServicesMatch()); 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// TCM ID - 8894859. 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(TwoClientSearchEnginesSyncTest, UpdateUrl) { 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(search_engines_helper::AllServicesMatch()); 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) search_engines_helper::AddSearchEngine(0, 0); 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(search_engines_helper::AllServicesMatch()); 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Change the URL. 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) search_engines_helper::EditSearchEngine(0, ASCIIToUTF16("test0"), 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASCIIToUTF16("test0"), ASCIIToUTF16("test0"), 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) "http://www.wikipedia.org/q=%s"); 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(search_engines_helper::AllServicesMatch()); 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// TCM ID - 8910490. 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(TwoClientSearchEnginesSyncTest, UpdateName) { 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(search_engines_helper::AllServicesMatch()); 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) search_engines_helper::AddSearchEngine(0, 0); 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(search_engines_helper::AllServicesMatch()); 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Change the short name. 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) search_engines_helper::EditSearchEngine(0, ASCIIToUTF16("test0"), 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASCIIToUTF16("New Name"), ASCIIToUTF16("test0"), "http://www.test0.com/"); 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(search_engines_helper::AllServicesMatch()); 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// TCM ID - 8898660. 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(TwoClientSearchEnginesSyncTest, Delete) { 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(search_engines_helper::AllServicesMatch()); 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) search_engines_helper::AddSearchEngine(0, 0); 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(search_engines_helper::AllServicesMatch()); 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) search_engines_helper::DeleteSearchEngineBySeed(0, 0); 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(search_engines_helper::AllServicesMatch()); 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// TCM ID - 9004196. 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(TwoClientSearchEnginesSyncTest, ConflictKeyword) { 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DisableVerifier(); 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(search_engines_helper::AllServicesMatch()); 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Add a different search engine to each client, but make their keywords 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // conflict. 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) search_engines_helper::AddSearchEngine(0, 0); 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) search_engines_helper::AddSearchEngine(1, 1); 15290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) TemplateURLService* service = 15390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) search_engines_helper::GetServiceForBrowserContext(1); 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TemplateURL* turl = service->GetTemplateURLForKeyword(ASCIIToUTF16("test1")); 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(turl); 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) service->ResetTemplateURL(turl, turl->short_name(), ASCIIToUTF16("test0"), 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) turl->url()); 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(AwaitQuiescence()); 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(search_engines_helper::AllServicesMatch()); 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// TCM ID - 9004187. 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(TwoClientSearchEnginesSyncTest, MergeMultiple) { 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DisableVerifier(); 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(search_engines_helper::AllServicesMatch()); 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Set up some different search engines on each client, with some interesting 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // conflicts. 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // client0: { SE0, SE1, SE2 } 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for (int i = 0; i < 3; ++i) 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) search_engines_helper::AddSearchEngine(0, i); 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // client1: { SE0, SE2, SE3, SE0 + different URL } 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) search_engines_helper::AddSearchEngine(1, 0); 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) search_engines_helper::AddSearchEngine(1, 2); 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) search_engines_helper::AddSearchEngine(1, 3); 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Profile* profile = sync_datatype_helper::test()->GetProfile(1); 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TemplateURLServiceFactory::GetForProfile(profile)->Add( 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) search_engines_helper::CreateTestTemplateURL(profile, 0, 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASCIIToUTF16("somethingelse.com"), "http://www.somethingelse.com/", 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) "somethingelse")); 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(AwaitQuiescence()); 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(search_engines_helper::AllServicesMatch()); 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// TCM ID - 8906436. 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(TwoClientSearchEnginesSyncTest, DisableSync) { 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupSync()); 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(search_engines_helper::AllServicesMatch()); 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(GetClient(1)->DisableSyncForAllDatatypes()); 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) search_engines_helper::AddSearchEngine(0, 0); 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE( 197e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch AwaitCommitActivityCompletion(GetSyncService((0)))); 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(search_engines_helper::ServiceMatchesVerifier(0)); 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_FALSE(search_engines_helper::ServiceMatchesVerifier(1)); 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(GetClient(1)->EnableSyncForAllDatatypes()); 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(AwaitQuiescence()); 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(search_engines_helper::AllServicesMatch()); 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// TCM ID - 8891809. 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(TwoClientSearchEnginesSyncTest, SyncDefault) { 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(search_engines_helper::AllServicesMatch()); 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) search_engines_helper::AddSearchEngine(0, 0); 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Change the default to the new search engine, sync, and ensure that it 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // changed in the second client. AllServicesMatch does a default search 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // provider check. 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) search_engines_helper::ChangeDefaultSearchProvider(0, 0); 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(search_engines_helper::AllServicesMatch()); 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Ensure that we can change the search engine and immediately delete it 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// without putting the clients out of sync. 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(TwoClientSearchEnginesSyncTest, DeleteSyncedDefault) { 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(search_engines_helper::AllServicesMatch()); 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) search_engines_helper::AddSearchEngine(0, 0); 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) search_engines_helper::AddSearchEngine(0, 1); 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) search_engines_helper::ChangeDefaultSearchProvider(0, 0); 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(search_engines_helper::AllServicesMatch()); 2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Change the default on the first client and delete the old default. 2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) search_engines_helper::ChangeDefaultSearchProvider(0, 1); 2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) search_engines_helper::DeleteSearchEngineBySeed(0, 0); 2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(search_engines_helper::AllServicesMatch()); 2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 244