Home | History | Annotate | Download | only in integration
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "base/values.h"
      6 #include "chrome/browser/sync/profile_sync_service_harness.h"
      7 #include "chrome/browser/sync/test/integration/preferences_helper.h"
      8 #include "chrome/browser/sync/test/integration/sync_test.h"
      9 #include "chrome/browser/translate/translate_prefs.h"
     10 #include "chrome/common/pref_names.h"
     11 
     12 using preferences_helper::AppendStringPref;
     13 using preferences_helper::BooleanPrefMatches;
     14 using preferences_helper::ChangeBooleanPref;
     15 using preferences_helper::ChangeIntegerPref;
     16 using preferences_helper::ChangeInt64Pref;
     17 using preferences_helper::ChangeListPref;
     18 using preferences_helper::ChangeStringPref;
     19 using preferences_helper::GetPrefs;
     20 using preferences_helper::IntegerPrefMatches;
     21 using preferences_helper::Int64PrefMatches;
     22 using preferences_helper::ListPrefMatches;
     23 using preferences_helper::StringPrefMatches;
     24 
     25 class TwoClientPreferencesSyncTest : public SyncTest {
     26  public:
     27   TwoClientPreferencesSyncTest() : SyncTest(TWO_CLIENT) {}
     28   virtual ~TwoClientPreferencesSyncTest() {}
     29 
     30  private:
     31   DISALLOW_COPY_AND_ASSIGN(TwoClientPreferencesSyncTest);
     32 };
     33 
     34 // TCM ID - 7306186.
     35 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
     36                        kHomePageIsNewTabPage) {
     37   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
     38   ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
     39 
     40   ChangeBooleanPref(0, prefs::kHomePageIsNewTabPage);
     41   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
     42   ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
     43 }
     44 
     45 // TCM ID - 7260488.
     46 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, Race) {
     47   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
     48   DisableVerifier();
     49 
     50   ASSERT_TRUE(StringPrefMatches(prefs::kHomePage));
     51 
     52   ChangeStringPref(0, prefs::kHomePage, "http://www.google.com/0");
     53   ChangeStringPref(1, prefs::kHomePage,"http://www.google.com/1");
     54   ASSERT_TRUE(AwaitQuiescence());
     55   ASSERT_TRUE(StringPrefMatches(prefs::kHomePage));
     56 }
     57 
     58 // TCM ID - 3649278.
     59 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
     60                        kPasswordManagerEnabled) {
     61   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
     62   ASSERT_TRUE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
     63 
     64   ChangeBooleanPref(0, prefs::kPasswordManagerEnabled);
     65   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
     66   ASSERT_TRUE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
     67 }
     68 
     69 // TCM ID - 3699293.
     70 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
     71                        kSyncKeepEverythingSynced) {
     72   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
     73   DisableVerifier();
     74 
     75   ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncKeepEverythingSynced));
     76   ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncThemes));
     77 
     78   GetClient(0)->DisableSyncForDatatype(syncer::THEMES);
     79   ASSERT_FALSE(BooleanPrefMatches(prefs::kSyncKeepEverythingSynced));
     80 }
     81 
     82 // TCM ID - 3661290.
     83 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, DisablePreferences) {
     84   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
     85   DisableVerifier();
     86 
     87   ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncPreferences));
     88   ASSERT_TRUE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
     89 
     90   GetClient(1)->DisableSyncForDatatype(syncer::PREFERENCES);
     91   ChangeBooleanPref(0, prefs::kPasswordManagerEnabled);
     92   ASSERT_TRUE(GetClient(0)->AwaitFullSyncCompletion("Changed a preference."));
     93   ASSERT_FALSE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
     94 
     95   GetClient(1)->EnableSyncForDatatype(syncer::PREFERENCES);
     96   ASSERT_TRUE(AwaitQuiescence());
     97   ASSERT_TRUE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
     98 }
     99 
    100 // TCM ID - 3664292.
    101 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, DisableSync) {
    102   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
    103   DisableVerifier();
    104 
    105   ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncPreferences));
    106   ASSERT_TRUE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
    107   ASSERT_TRUE(BooleanPrefMatches(prefs::kShowHomeButton));
    108 
    109   GetClient(1)->DisableSyncForAllDatatypes();
    110   ChangeBooleanPref(0, prefs::kPasswordManagerEnabled);
    111   ASSERT_TRUE(GetClient(0)->AwaitFullSyncCompletion("Changed a preference."));
    112   ASSERT_FALSE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
    113 
    114   ChangeBooleanPref(1, prefs::kShowHomeButton);
    115   ASSERT_FALSE(BooleanPrefMatches(prefs::kShowHomeButton));
    116 
    117   GetClient(1)->EnableSyncForAllDatatypes();
    118   ASSERT_TRUE(AwaitQuiescence());
    119   ASSERT_TRUE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
    120   ASSERT_TRUE(BooleanPrefMatches(prefs::kShowHomeButton));
    121 }
    122 
    123 // TCM ID - 3604297.
    124 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, SignInDialog) {
    125   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
    126   DisableVerifier();
    127 
    128   ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncPreferences));
    129   ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncBookmarks));
    130   ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncThemes));
    131   ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncExtensions));
    132   ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncAutofill));
    133   ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncKeepEverythingSynced));
    134 
    135   GetClient(0)->DisableSyncForDatatype(syncer::PREFERENCES);
    136   GetClient(1)->EnableSyncForDatatype(syncer::PREFERENCES);
    137   GetClient(0)->DisableSyncForDatatype(syncer::AUTOFILL);
    138   GetClient(1)->EnableSyncForDatatype(syncer::AUTOFILL);
    139   GetClient(0)->DisableSyncForDatatype(syncer::BOOKMARKS);
    140   GetClient(1)->EnableSyncForDatatype(syncer::BOOKMARKS);
    141   GetClient(0)->DisableSyncForDatatype(syncer::EXTENSIONS);
    142   GetClient(1)->EnableSyncForDatatype(syncer::EXTENSIONS);
    143   GetClient(0)->DisableSyncForDatatype(syncer::THEMES);
    144   GetClient(1)->EnableSyncForDatatype(syncer::THEMES);
    145 
    146   ASSERT_TRUE(AwaitQuiescence());
    147 
    148   ASSERT_FALSE(BooleanPrefMatches(prefs::kSyncPreferences));
    149   ASSERT_FALSE(BooleanPrefMatches(prefs::kSyncBookmarks));
    150   ASSERT_FALSE(BooleanPrefMatches(prefs::kSyncThemes));
    151   ASSERT_FALSE(BooleanPrefMatches(prefs::kSyncExtensions));
    152   ASSERT_FALSE(BooleanPrefMatches(prefs::kSyncAutofill));
    153   ASSERT_FALSE(BooleanPrefMatches(prefs::kSyncKeepEverythingSynced));
    154 }
    155 
    156 // TCM ID - 3666296.
    157 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kShowBookmarkBar) {
    158   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
    159   ASSERT_TRUE(BooleanPrefMatches(prefs::kShowBookmarkBar));
    160 
    161   ChangeBooleanPref(0, prefs::kShowBookmarkBar);
    162   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
    163   ASSERT_TRUE(BooleanPrefMatches(prefs::kShowBookmarkBar));
    164 }
    165 
    166 // TCM ID - 3611311.
    167 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kCheckDefaultBrowser) {
    168   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
    169   DisableVerifier();
    170 
    171   ASSERT_TRUE(BooleanPrefMatches(prefs::kCheckDefaultBrowser));
    172 
    173   ChangeBooleanPref(0, prefs::kCheckDefaultBrowser);
    174   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
    175   ASSERT_FALSE(BooleanPrefMatches(prefs::kCheckDefaultBrowser));
    176 }
    177 
    178 // TCM ID - 3628298.
    179 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kHomePage) {
    180   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
    181   ASSERT_TRUE(StringPrefMatches(prefs::kHomePage));
    182 
    183   ChangeStringPref(0, prefs::kHomePage, "http://news.google.com");
    184   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
    185   ASSERT_TRUE(StringPrefMatches(prefs::kHomePage));
    186 }
    187 
    188 // TCM ID - 7297269.
    189 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kShowHomeButton) {
    190   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
    191   ASSERT_TRUE(BooleanPrefMatches(prefs::kShowHomeButton));
    192 
    193   ChangeBooleanPref(0, prefs::kShowHomeButton);
    194   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
    195   ASSERT_TRUE(BooleanPrefMatches(prefs::kShowHomeButton));
    196 }
    197 
    198 // TCM ID - 3710285.
    199 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kEnableTranslate) {
    200   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
    201   ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableTranslate));
    202 
    203   ChangeBooleanPref(0, prefs::kEnableTranslate);
    204   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
    205   ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableTranslate));
    206 }
    207 
    208 // TCM ID - 3664293.
    209 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kAutofillEnabled) {
    210   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
    211   ASSERT_TRUE(BooleanPrefMatches(autofill::prefs::kAutofillEnabled));
    212 
    213   ChangeBooleanPref(0, autofill::prefs::kAutofillEnabled);
    214   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
    215   ASSERT_TRUE(BooleanPrefMatches(autofill::prefs::kAutofillEnabled));
    216 }
    217 
    218 // TCM ID - 3632259.
    219 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
    220                        kURLsToRestoreOnStartup) {
    221   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
    222   ASSERT_TRUE(IntegerPrefMatches(prefs::kRestoreOnStartup));
    223   ASSERT_TRUE(ListPrefMatches(prefs::kURLsToRestoreOnStartup));
    224 
    225   ChangeIntegerPref(0, prefs::kRestoreOnStartup, 0);
    226   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
    227   ASSERT_TRUE(IntegerPrefMatches(prefs::kRestoreOnStartup));
    228 
    229   ListValue urls;
    230   urls.Append(Value::CreateStringValue("http://www.google.com/"));
    231   urls.Append(Value::CreateStringValue("http://www.flickr.com/"));
    232   ChangeIntegerPref(0, prefs::kRestoreOnStartup, 4);
    233   ChangeListPref(0, prefs::kURLsToRestoreOnStartup, urls);
    234   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
    235   ASSERT_TRUE(IntegerPrefMatches(prefs::kRestoreOnStartup));
    236   ASSERT_TRUE(ListPrefMatches(prefs::kURLsToRestoreOnStartup));
    237 }
    238 
    239 // TCM ID - 3684287.
    240 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kRestoreOnStartup) {
    241   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
    242   ASSERT_TRUE(IntegerPrefMatches(prefs::kRestoreOnStartup));
    243 
    244   ChangeIntegerPref(0, prefs::kRestoreOnStartup, 1);
    245   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
    246   ASSERT_TRUE(IntegerPrefMatches(prefs::kRestoreOnStartup));
    247 }
    248 
    249 // TCM ID - 3703314.
    250 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, Privacy) {
    251   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
    252   DisableVerifier();
    253 
    254   ASSERT_TRUE(BooleanPrefMatches(prefs::kAlternateErrorPagesEnabled));
    255   ASSERT_TRUE(BooleanPrefMatches(prefs::kSearchSuggestEnabled));
    256   ASSERT_TRUE(BooleanPrefMatches(prefs::kNetworkPredictionEnabled));
    257   ASSERT_TRUE(BooleanPrefMatches(prefs::kSafeBrowsingEnabled));
    258 
    259   ChangeBooleanPref(0, prefs::kAlternateErrorPagesEnabled);
    260   ChangeBooleanPref(0, prefs::kSearchSuggestEnabled);
    261   ChangeBooleanPref(0, prefs::kNetworkPredictionEnabled);
    262   ChangeBooleanPref(0, prefs::kSafeBrowsingEnabled);
    263   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
    264   ASSERT_TRUE(BooleanPrefMatches(prefs::kAlternateErrorPagesEnabled));
    265   ASSERT_TRUE(BooleanPrefMatches(prefs::kSearchSuggestEnabled));
    266   ASSERT_TRUE(BooleanPrefMatches(prefs::kNetworkPredictionEnabled));
    267   ASSERT_TRUE(BooleanPrefMatches(prefs::kSafeBrowsingEnabled));
    268 }
    269 
    270 // TCM ID - 3649279.
    271 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, ClearData) {
    272   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
    273   DisableVerifier();
    274 
    275   ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteBrowsingHistory));
    276   ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteDownloadHistory));
    277   ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteCache));
    278   ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteCookies));
    279   ASSERT_TRUE(BooleanPrefMatches(prefs::kDeletePasswords));
    280   ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteFormData));
    281   ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteHostedAppsData));
    282 
    283   ChangeBooleanPref(0, prefs::kDeleteBrowsingHistory);
    284   ChangeBooleanPref(0, prefs::kDeleteDownloadHistory);
    285   ChangeBooleanPref(0, prefs::kDeleteCache);
    286   ChangeBooleanPref(0, prefs::kDeleteCookies);
    287   ChangeBooleanPref(0, prefs::kDeletePasswords);
    288   ChangeBooleanPref(0, prefs::kDeleteFormData);
    289   ChangeBooleanPref(0, prefs::kDeleteHostedAppsData);
    290   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
    291   ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteBrowsingHistory));
    292   ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteDownloadHistory));
    293   ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteCache));
    294   ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteCookies));
    295   ASSERT_TRUE(BooleanPrefMatches(prefs::kDeletePasswords));
    296   ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteFormData));
    297   ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteHostedAppsData));
    298 }
    299 
    300 // TCM ID - 3686300.
    301 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
    302                        kWebKitUsesUniversalDetector) {
    303   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
    304   ASSERT_TRUE(BooleanPrefMatches(prefs::kWebKitUsesUniversalDetector));
    305 
    306   ChangeBooleanPref(0, prefs::kWebKitUsesUniversalDetector);
    307   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
    308   ASSERT_TRUE(BooleanPrefMatches(prefs::kWebKitUsesUniversalDetector));
    309 }
    310 
    311 // TCM ID - 3673298.
    312 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kDefaultCharset) {
    313   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
    314   ASSERT_TRUE(StringPrefMatches(prefs::kDefaultCharset));
    315 
    316   ChangeStringPref(0, prefs::kDefaultCharset, "Thai");
    317   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
    318   ASSERT_TRUE(StringPrefMatches(prefs::kDefaultCharset));
    319 }
    320 
    321 // TCM ID - 3653296.
    322 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
    323                        kBlockThirdPartyCookies) {
    324   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
    325   ASSERT_TRUE(BooleanPrefMatches(prefs::kBlockThirdPartyCookies));
    326 
    327   ChangeBooleanPref(0, prefs::kBlockThirdPartyCookies);
    328   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
    329   ASSERT_TRUE(BooleanPrefMatches(prefs::kBlockThirdPartyCookies));
    330 }
    331 
    332 // TCM ID - 7297279.
    333 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
    334                        kClearSiteDataOnExit) {
    335   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
    336   ASSERT_TRUE(BooleanPrefMatches(prefs::kClearSiteDataOnExit));
    337 
    338   ChangeBooleanPref(0, prefs::kClearSiteDataOnExit);
    339   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
    340   ASSERT_TRUE(BooleanPrefMatches(prefs::kClearSiteDataOnExit));
    341 }
    342 
    343 // TCM ID - 7306184.
    344 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
    345                        kSafeBrowsingEnabled) {
    346   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
    347   ASSERT_TRUE(BooleanPrefMatches(prefs::kSafeBrowsingEnabled));
    348 
    349   ChangeBooleanPref(0, prefs::kSafeBrowsingEnabled);
    350   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
    351   ASSERT_TRUE(BooleanPrefMatches(prefs::kSafeBrowsingEnabled));
    352 }
    353 
    354 // TCM ID - 3624302.
    355 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
    356                        kAutofillAuxiliaryProfilesEnabled) {
    357   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
    358   DisableVerifier();
    359 
    360   ASSERT_TRUE(
    361       BooleanPrefMatches(autofill::prefs::kAutofillAuxiliaryProfilesEnabled));
    362 
    363   ChangeBooleanPref(0, autofill::prefs::kAutofillAuxiliaryProfilesEnabled);
    364   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
    365 
    366   // kAutofillAuxiliaryProfilesEnabled is only synced on Mac.
    367 #if defined(OS_MACOSX)
    368   ASSERT_TRUE(
    369       BooleanPrefMatches(autofill::prefs::kAutofillAuxiliaryProfilesEnabled));
    370 #else
    371   ASSERT_FALSE(
    372       BooleanPrefMatches(autofill::prefs::kAutofillAuxiliaryProfilesEnabled));
    373 #endif  // OS_MACOSX
    374 }
    375 
    376 // TCM ID - 3717298.
    377 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kPromptForDownload) {
    378   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
    379   ASSERT_TRUE(BooleanPrefMatches(prefs::kPromptForDownload));
    380 
    381   ChangeBooleanPref(0, prefs::kPromptForDownload);
    382   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
    383   ASSERT_TRUE(BooleanPrefMatches(prefs::kPromptForDownload));
    384 }
    385 
    386 // TCM ID - 3729263.
    387 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
    388                        kPrefTranslateLanguageBlacklist) {
    389   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
    390   ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableTranslate));
    391 
    392   TranslatePrefs translate_client0_prefs(GetPrefs(0));
    393   TranslatePrefs translate_client1_prefs(GetPrefs(1));
    394   ASSERT_FALSE(translate_client0_prefs.IsBlockedLanguage("fr"));
    395   translate_client0_prefs.BlockLanguage("fr");
    396   ASSERT_TRUE(translate_client0_prefs.IsBlockedLanguage("fr"));
    397 
    398   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
    399   ASSERT_TRUE(translate_client1_prefs.IsBlockedLanguage("fr"));
    400 
    401   translate_client0_prefs.UnblockLanguage("fr");
    402   ASSERT_FALSE(translate_client0_prefs.IsBlockedLanguage("fr"));
    403 
    404   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
    405   ASSERT_FALSE(translate_client1_prefs.IsBlockedLanguage("fr"));
    406 }
    407 
    408 // TCM ID - 7307195.
    409 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
    410                        kPrefTranslateWhitelists) {
    411   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
    412   ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableTranslate));
    413 
    414   TranslatePrefs translate_client0_prefs(GetPrefs(0));
    415   TranslatePrefs translate_client1_prefs(GetPrefs(1));
    416   ASSERT_FALSE(translate_client0_prefs.IsLanguagePairWhitelisted("en", "bg"));
    417   translate_client0_prefs.WhitelistLanguagePair("en", "bg");
    418   ASSERT_TRUE(translate_client0_prefs.IsLanguagePairWhitelisted("en", "bg"));
    419 
    420   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
    421   ASSERT_TRUE(translate_client1_prefs.IsLanguagePairWhitelisted("en", "bg"));
    422 
    423   translate_client0_prefs.RemoveLanguagePairFromWhitelist("en", "bg");
    424   ASSERT_FALSE(translate_client0_prefs.IsLanguagePairWhitelisted("en", "bg"));
    425 
    426   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
    427   ASSERT_FALSE(translate_client1_prefs.IsLanguagePairWhitelisted("en", "bg"));
    428 }
    429 
    430 // TCM ID - 3625298.
    431 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
    432                        kPrefTranslateSiteBlacklist) {
    433   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
    434   ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableTranslate));
    435 
    436   GURL url("http://www.google.com");
    437   std::string host(url.host());
    438   TranslatePrefs translate_client0_prefs(GetPrefs(0));
    439   TranslatePrefs translate_client1_prefs(GetPrefs(1));
    440   ASSERT_FALSE(translate_client0_prefs.IsSiteBlacklisted(host));
    441   translate_client0_prefs.BlacklistSite(host);
    442   ASSERT_TRUE(translate_client0_prefs.IsSiteBlacklisted(host));
    443 
    444   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
    445   ASSERT_TRUE(translate_client1_prefs.IsSiteBlacklisted(host));
    446 
    447   translate_client0_prefs.RemoveSiteFromBlacklist(host);
    448   ASSERT_FALSE(translate_client0_prefs.IsSiteBlacklisted(host));
    449 
    450   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
    451   ASSERT_FALSE(translate_client1_prefs.IsSiteBlacklisted(host));
    452 }
    453 
    454 // TCM ID - 6515252.
    455 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
    456                        kExtensionsUIDeveloperMode) {
    457   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
    458   ASSERT_TRUE(BooleanPrefMatches(prefs::kExtensionsUIDeveloperMode));
    459 
    460   ChangeBooleanPref(0, prefs::kExtensionsUIDeveloperMode);
    461   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
    462   ASSERT_TRUE(BooleanPrefMatches(prefs::kExtensionsUIDeveloperMode));
    463 }
    464 
    465 // TCM ID - 7583816
    466 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kAcceptLanguages) {
    467   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
    468   DisableVerifier();
    469   ASSERT_TRUE(StringPrefMatches(prefs::kAcceptLanguages));
    470 
    471   AppendStringPref(0, prefs::kAcceptLanguages, ",ar");
    472   AppendStringPref(1, prefs::kAcceptLanguages, ",fr");
    473   ASSERT_TRUE(AwaitQuiescence());
    474   ASSERT_TRUE(StringPrefMatches(prefs::kAcceptLanguages));
    475 
    476   ChangeStringPref(0, prefs::kAcceptLanguages, "en-US");
    477   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
    478   ASSERT_TRUE(StringPrefMatches(prefs::kAcceptLanguages));
    479 
    480   ChangeStringPref(0, prefs::kAcceptLanguages, "ar,en-US");
    481   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
    482   ASSERT_TRUE(StringPrefMatches(prefs::kAcceptLanguages));
    483 }
    484 
    485 // TCM ID - 7590682
    486 #if defined(TOOLKIT_GTK)
    487 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kUsesSystemTheme) {
    488   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
    489   ASSERT_TRUE(BooleanPrefMatches(prefs::kUsesSystemTheme));
    490 
    491   ChangeBooleanPref(0, prefs::kUsesSystemTheme);
    492   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
    493   ASSERT_FALSE(BooleanPrefMatches(prefs::kUsesSystemTheme));
    494 }
    495 #endif  // TOOLKIT_GTK
    496 
    497 // TCM ID - 6473347.
    498 #if defined(OS_CHROMEOS)
    499 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kTapToClickEnabled) {
    500   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
    501   ASSERT_TRUE(BooleanPrefMatches(prefs::kTapToClickEnabled));
    502 
    503   ChangeBooleanPref(0, prefs::kTapToClickEnabled);
    504   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
    505   ASSERT_TRUE(BooleanPrefMatches(prefs::kTapToClickEnabled));
    506 
    507   ChangeBooleanPref(1, prefs::kTapToClickEnabled);
    508   ASSERT_TRUE(GetClient(1)->AwaitMutualSyncCycleCompletion(GetClient(0)));
    509   ASSERT_TRUE(BooleanPrefMatches(prefs::kTapToClickEnabled));
    510 }
    511 #endif  // OS_CHROMEOS
    512 
    513 // TCM ID - 6458824.
    514 #if defined(OS_CHROMEOS)
    515 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kEnableScreenLock) {
    516   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
    517   ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableScreenLock));
    518 
    519   ChangeBooleanPref(0, prefs::kEnableScreenLock);
    520   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
    521   ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableScreenLock));
    522 
    523   ChangeBooleanPref(1, prefs::kEnableScreenLock);
    524   ASSERT_TRUE(GetClient(1)->AwaitMutualSyncCycleCompletion(GetClient(0)));
    525   ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableScreenLock));
    526 }
    527 #endif  // OS_CHROMEOS
    528 
    529 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
    530                        SingleClientEnabledEncryption) {
    531   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
    532 
    533   ASSERT_TRUE(EnableEncryption(0, syncer::PREFERENCES));
    534   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
    535   ASSERT_TRUE(IsEncrypted(0, syncer::PREFERENCES));
    536   ASSERT_TRUE(IsEncrypted(1, syncer::PREFERENCES));
    537 }
    538 
    539 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
    540                        SingleClientEnabledEncryptionAndChanged) {
    541   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
    542   ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
    543 
    544   ChangeBooleanPref(0, prefs::kHomePageIsNewTabPage);
    545   ASSERT_TRUE(EnableEncryption(0, syncer::PREFERENCES));
    546   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
    547   ASSERT_TRUE(IsEncrypted(0, syncer::PREFERENCES));
    548   ASSERT_TRUE(IsEncrypted(1, syncer::PREFERENCES));
    549   ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
    550 }
    551 
    552 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
    553                        BothClientsEnabledEncryption) {
    554   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
    555 
    556   ASSERT_TRUE(EnableEncryption(0, syncer::PREFERENCES));
    557   ASSERT_TRUE(EnableEncryption(1, syncer::PREFERENCES));
    558   ASSERT_TRUE(AwaitQuiescence());
    559   ASSERT_TRUE(IsEncrypted(0, syncer::PREFERENCES));
    560   ASSERT_TRUE(IsEncrypted(1, syncer::PREFERENCES));
    561 }
    562 
    563 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
    564                        SingleClientEnabledEncryptionBothChanged) {
    565   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
    566   ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
    567   ASSERT_TRUE(StringPrefMatches(prefs::kHomePage));
    568 
    569   ASSERT_TRUE(EnableEncryption(0, syncer::PREFERENCES));
    570   ChangeBooleanPref(0, prefs::kHomePageIsNewTabPage);
    571   ChangeStringPref(1, prefs::kHomePage, "http://www.google.com/1");
    572   ASSERT_TRUE(AwaitQuiescence());
    573   ASSERT_TRUE(IsEncrypted(0, syncer::PREFERENCES));
    574   ASSERT_TRUE(IsEncrypted(1, syncer::PREFERENCES));
    575   ASSERT_TRUE(BooleanPrefMatches(
    576       prefs::kHomePageIsNewTabPage));
    577   ASSERT_TRUE(StringPrefMatches(prefs::kHomePage));
    578 }
    579 
    580 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
    581                        SingleClientEnabledEncryptionAndChangedMultipleTimes) {
    582   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
    583   ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
    584 
    585   ChangeBooleanPref(0, prefs::kHomePageIsNewTabPage);
    586   ASSERT_TRUE(EnableEncryption(0, syncer::PREFERENCES));
    587   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
    588   ASSERT_TRUE(IsEncrypted(0, syncer::PREFERENCES));
    589   ASSERT_TRUE(IsEncrypted(1, syncer::PREFERENCES));
    590   ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
    591 
    592   ASSERT_TRUE(BooleanPrefMatches(prefs::kShowHomeButton));
    593   ChangeBooleanPref(0, prefs::kShowHomeButton);
    594   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
    595   ASSERT_TRUE(BooleanPrefMatches(prefs::kShowHomeButton));
    596 }
    597