two_client_extensions_sync_test.cc revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
14a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project// Copyright (c) 2012 The Chromium Authors. All rights reserved. 24a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project// Use of this source code is governed by a BSD-style license that can be 34a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project// found in the LICENSE file. 44a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 54a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "base/basictypes.h" 64a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "chrome/browser/sync/test/integration/extensions_helper.h" 74a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "chrome/browser/sync/test/integration/profile_sync_service_harness.h" 84a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "chrome/browser/sync/test/integration/sync_test.h" 94a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectusing extensions_helper::AllProfilesHaveSameExtensionsAsVerifier; 114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectusing extensions_helper::DisableExtension; 124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectusing extensions_helper::EnableExtension; 134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectusing extensions_helper::HasSameExtensionsAsVerifier; 144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectusing extensions_helper::IncognitoDisableExtension; 154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectusing extensions_helper::IncognitoEnableExtension; 164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectusing extensions_helper::InstallExtension; 174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectusing extensions_helper::InstallExtensionsPendingForSync; 184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectusing extensions_helper::UninstallExtension; 194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectclass TwoClientExtensionsSyncTest : public SyncTest { 214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project public: 224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project TwoClientExtensionsSyncTest() : SyncTest(TWO_CLIENT) {} 234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project virtual ~TwoClientExtensionsSyncTest() {} 254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project private: 274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project DISALLOW_COPY_AND_ASSIGN(TwoClientExtensionsSyncTest); 284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project}; 294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectIN_PROC_BROWSER_TEST_F(TwoClientExtensionsSyncTest, StartWithNoExtensions) { 314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(SetupSync()); 324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); 344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project} 354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectIN_PROC_BROWSER_TEST_F(TwoClientExtensionsSyncTest, StartWithSameExtensions) { 374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(SetupClients()); 384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project const int kNumExtensions = 5; 404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project for (int i = 0; i < kNumExtensions; ++i) { 414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(GetProfile(0), i); 424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(GetProfile(1), i); 434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(verifier(), i); 444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(SetupSync()); 474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AwaitQuiescence()); 494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); 514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project} 524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectIN_PROC_BROWSER_TEST_F(TwoClientExtensionsSyncTest, 544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project StartWithDifferentExtensions) { 554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(SetupClients()); 564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int i = 0; 584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project const int kNumCommonExtensions = 5; 604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project for (int j = 0; j < kNumCommonExtensions; ++i, ++j) { 614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(GetProfile(0), i); 6273018b4a1d088cdda0e7bd059fddf1f308a8195aIan Rogers InstallExtension(GetProfile(1), i); 634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(verifier(), i); 644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project const int kNumProfile0Extensions = 10; 674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project for (int j = 0; j < kNumProfile0Extensions; ++i, ++j) { 684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(GetProfile(0), i); 694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(verifier(), i); 704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project const int kNumProfile1Extensions = 10; 734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project for (int j = 0; j < kNumProfile1Extensions; ++i, ++j) { 744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(GetProfile(1), i); 754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(verifier(), i); 764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(SetupSync()); 794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AwaitQuiescence()); 814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtensionsPendingForSync(GetProfile(0)); 834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtensionsPendingForSync(GetProfile(1)); 844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); 864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project} 874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectIN_PROC_BROWSER_TEST_F(TwoClientExtensionsSyncTest, 894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallDifferentExtensions) { 904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(SetupClients()); 914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int i = 0; 934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project const int kNumCommonExtensions = 5; 954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project for (int j = 0; j < kNumCommonExtensions; ++i, ++j) { 964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(GetProfile(0), i); 974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(GetProfile(1), i); 984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(verifier(), i); 994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 1004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(SetupSync()); 1024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AwaitQuiescence()); 1044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project const int kNumProfile0Extensions = 10; 1064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project for (int j = 0; j < kNumProfile0Extensions; ++i, ++j) { 1074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(GetProfile(0), i); 1084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(verifier(), i); 1094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 1104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project const int kNumProfile1Extensions = 10; 1124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project for (int j = 0; j < kNumProfile1Extensions; ++i, ++j) { 1134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(GetProfile(1), i); 1144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(verifier(), i); 1154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project } 1164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AwaitQuiescence()); 1184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtensionsPendingForSync(GetProfile(0)); 1204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtensionsPendingForSync(GetProfile(1)); 1214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); 1234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project} 1244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project// TCM ID - 3637311. 1264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectIN_PROC_BROWSER_TEST_F(TwoClientExtensionsSyncTest, Add) { 1274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(SetupSync()); 1284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); 1294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(GetProfile(0), 0); 1314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(verifier(), 0); 1324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AwaitQuiescence()); 1334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtensionsPendingForSync(GetProfile(0)); 1354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtensionsPendingForSync(GetProfile(1)); 1364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); 1374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project} 1384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project// TCM ID - 3724281. 1404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectIN_PROC_BROWSER_TEST_F(TwoClientExtensionsSyncTest, Uninstall) { 1414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(SetupSync()); 1424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); 1434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(GetProfile(0), 0); 1454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(verifier(), 0); 1464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AwaitQuiescence()); 1474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtensionsPendingForSync(GetProfile(0)); 1494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtensionsPendingForSync(GetProfile(1)); 1504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); 1514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project UninstallExtension(GetProfile(0), 0); 1534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project UninstallExtension(verifier(), 0); 1544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AwaitQuiescence()); 1554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); 1564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project} 1574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project// TCM ID - 3635304. 1594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectIN_PROC_BROWSER_TEST_F(TwoClientExtensionsSyncTest, Merge) { 1604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(SetupSync()); 1614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); 1624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(GetProfile(0), 0); 1644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(GetProfile(1), 0); 1654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AwaitQuiescence()); 1664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project UninstallExtension(GetProfile(0), 0); 1684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(GetProfile(0), 1); 1694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(verifier(), 1); 1704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(GetProfile(0), 2); 1724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(GetProfile(1), 2); 1734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(verifier(), 2); 1744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(GetProfile(1), 3); 1764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(verifier(), 3); 1774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AwaitQuiescence()); 1794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtensionsPendingForSync(GetProfile(0)); 1804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtensionsPendingForSync(GetProfile(1)); 1814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); 1824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project} 1834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project// TCM ID - 3605300. 1854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectIN_PROC_BROWSER_TEST_F(TwoClientExtensionsSyncTest, 1864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project UpdateEnableDisableExtension) { 1874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(SetupSync()); 1884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); 1894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(GetProfile(0), 0); 1914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(GetProfile(1), 0); 1924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(verifier(), 0); 1934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AwaitQuiescence()); 1944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); 1954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project DisableExtension(GetProfile(0), 0); 1974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project DisableExtension(verifier(), 0); 1984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(HasSameExtensionsAsVerifier(0)); 1994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_FALSE(HasSameExtensionsAsVerifier(1)); 2004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AwaitQuiescence()); 2024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); 2034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project EnableExtension(GetProfile(1), 0); 2054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project EnableExtension(verifier(), 0); 2064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(HasSameExtensionsAsVerifier(1)); 2074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_FALSE(HasSameExtensionsAsVerifier(0)); 2084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AwaitQuiescence()); 2104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); 2114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project} 2124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project// TCM ID - 3728322. 2144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectIN_PROC_BROWSER_TEST_F(TwoClientExtensionsSyncTest, 2154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project UpdateIncognitoEnableDisable) { 2164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(SetupSync()); 2174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); 2184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(GetProfile(0), 0); 2204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(GetProfile(1), 0); 2214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(verifier(), 0); 2224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AwaitQuiescence()); 2234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); 2244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project IncognitoEnableExtension(GetProfile(0), 0); 2264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project IncognitoEnableExtension(verifier(), 0); 2274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(HasSameExtensionsAsVerifier(0)); 2284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_FALSE(HasSameExtensionsAsVerifier(1)); 2294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AwaitQuiescence()); 2314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); 2324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project IncognitoDisableExtension(GetProfile(1), 0); 2344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project IncognitoDisableExtension(verifier(), 0); 2354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(HasSameExtensionsAsVerifier(1)); 2364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_FALSE(HasSameExtensionsAsVerifier(0)); 2374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AwaitQuiescence()); 2394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); 2404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project} 2414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project// TCM ID - 3732278. 2434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectIN_PROC_BROWSER_TEST_F(TwoClientExtensionsSyncTest, DisableExtensions) { 2444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(SetupSync()); 2454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); 2464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(GetClient(1)->DisableSyncForDatatype(syncer::EXTENSIONS)); 2484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(GetProfile(0), 1); 2494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(verifier(), 1); 2504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE( 2514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project GetClient(0)->AwaitCommitActivityCompletion()); 2524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_FALSE(AllProfilesHaveSameExtensionsAsVerifier()); 2534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(GetClient(1)->EnableSyncForDatatype(syncer::EXTENSIONS)); 2554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AwaitQuiescence()); 2564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtensionsPendingForSync(GetProfile(0)); 2574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtensionsPendingForSync(GetProfile(1)); 2584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtensionsPendingForSync(verifier()); 2594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); 2604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project} 2614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project// TCM ID - 3606290. 2634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectIN_PROC_BROWSER_TEST_F(TwoClientExtensionsSyncTest, DisableSync) { 2644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(SetupSync()); 2654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); 2664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(GetClient(1)->DisableSyncForAllDatatypes()); 2684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(GetProfile(0), 0); 2694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(verifier(), 0); 2704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE( 2714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project GetClient(0)->AwaitCommitActivityCompletion()); 2724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(HasSameExtensionsAsVerifier(0)); 2734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_FALSE(HasSameExtensionsAsVerifier(1)); 2744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(GetClient(1)->EnableSyncForAllDatatypes()); 2764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AwaitQuiescence()); 2774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtensionsPendingForSync(GetProfile(0)); 2784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtensionsPendingForSync(GetProfile(1)); 2794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtensionsPendingForSync(verifier()); 2804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); 2814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project} 2824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project// Regression test for bug 104399: ensure that an extension installed prior to 2844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project// setting up sync, when uninstalled, is also uninstalled from sync. 2854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectIN_PROC_BROWSER_TEST_F(TwoClientExtensionsSyncTest, 2864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project UninstallPreinstalledExtensions) { 2874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(SetupClients()); 2884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); 2894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(GetProfile(0), 0); 2914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtension(verifier(), 0); 2924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(SetupSync()); 2944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtensionsPendingForSync(GetProfile(0)); 2964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project InstallExtensionsPendingForSync(GetProfile(1)); 2974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AwaitQuiescence()); 2984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); 2994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 3004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project UninstallExtension(GetProfile(0), 0); 3014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project UninstallExtension(verifier(), 0); 3024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 3034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AwaitQuiescence()); 3044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); 3054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project} 3064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 3074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project// TODO(akalin): Add tests exercising: 3084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project// - Offline installation/uninstallation behavior 3094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project