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