two_client_preferences_sync_test.cc revision c2e0dbddbe15c98d52c4786dac06cb8952a8ae6d
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 12using preferences_helper::AppendStringPref; 13using preferences_helper::BooleanPrefMatches; 14using preferences_helper::ChangeBooleanPref; 15using preferences_helper::ChangeIntegerPref; 16using preferences_helper::ChangeInt64Pref; 17using preferences_helper::ChangeListPref; 18using preferences_helper::ChangeStringPref; 19using preferences_helper::GetPrefs; 20using preferences_helper::IntegerPrefMatches; 21using preferences_helper::Int64PrefMatches; 22using preferences_helper::ListPrefMatches; 23using preferences_helper::StringPrefMatches; 24 25class 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. 35IN_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. 46IN_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. 59IN_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. 70IN_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. 83IN_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. 101IN_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. 124IN_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. 157IN_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 166IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kEnableInstant) { 167 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 168 ASSERT_TRUE(BooleanPrefMatches(prefs::kInstantEnabled)); 169 170 ChangeBooleanPref(0, prefs::kInstantEnabled); 171 172 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 173 ASSERT_TRUE(BooleanPrefMatches(prefs::kInstantEnabled)); 174} 175 176// TCM ID - 3611311. 177IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kCheckDefaultBrowser) { 178 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 179 DisableVerifier(); 180 181 ASSERT_TRUE(BooleanPrefMatches(prefs::kCheckDefaultBrowser)); 182 183 ChangeBooleanPref(0, prefs::kCheckDefaultBrowser); 184 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 185 ASSERT_FALSE(BooleanPrefMatches(prefs::kCheckDefaultBrowser)); 186} 187 188// TCM ID - 3628298. 189IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kHomePage) { 190 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 191 ASSERT_TRUE(StringPrefMatches(prefs::kHomePage)); 192 193 ChangeStringPref(0, prefs::kHomePage, "http://news.google.com"); 194 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 195 ASSERT_TRUE(StringPrefMatches(prefs::kHomePage)); 196} 197 198// TCM ID - 7297269. 199IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kShowHomeButton) { 200 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 201 ASSERT_TRUE(BooleanPrefMatches(prefs::kShowHomeButton)); 202 203 ChangeBooleanPref(0, prefs::kShowHomeButton); 204 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 205 ASSERT_TRUE(BooleanPrefMatches(prefs::kShowHomeButton)); 206} 207 208// TCM ID - 3710285. 209IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kEnableTranslate) { 210 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 211 ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableTranslate)); 212 213 ChangeBooleanPref(0, prefs::kEnableTranslate); 214 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 215 ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableTranslate)); 216} 217 218// TCM ID - 3664293. 219IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kAutofillEnabled) { 220 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 221 ASSERT_TRUE(BooleanPrefMatches(autofill::prefs::kAutofillEnabled)); 222 223 ChangeBooleanPref(0, autofill::prefs::kAutofillEnabled); 224 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 225 ASSERT_TRUE(BooleanPrefMatches(autofill::prefs::kAutofillEnabled)); 226} 227 228// TCM ID - 3632259. 229IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, 230 kURLsToRestoreOnStartup) { 231 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 232 ASSERT_TRUE(IntegerPrefMatches(prefs::kRestoreOnStartup)); 233 ASSERT_TRUE(ListPrefMatches(prefs::kURLsToRestoreOnStartup)); 234 235 ChangeIntegerPref(0, prefs::kRestoreOnStartup, 0); 236 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 237 ASSERT_TRUE(IntegerPrefMatches(prefs::kRestoreOnStartup)); 238 239 ListValue urls; 240 urls.Append(Value::CreateStringValue("http://www.google.com/")); 241 urls.Append(Value::CreateStringValue("http://www.flickr.com/")); 242 ChangeIntegerPref(0, prefs::kRestoreOnStartup, 4); 243 ChangeListPref(0, prefs::kURLsToRestoreOnStartup, urls); 244 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 245 ASSERT_TRUE(IntegerPrefMatches(prefs::kRestoreOnStartup)); 246 ASSERT_TRUE(ListPrefMatches(prefs::kURLsToRestoreOnStartup)); 247} 248 249// TCM ID - 3684287. 250IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kRestoreOnStartup) { 251 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 252 ASSERT_TRUE(IntegerPrefMatches(prefs::kRestoreOnStartup)); 253 254 ChangeIntegerPref(0, prefs::kRestoreOnStartup, 1); 255 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 256 ASSERT_TRUE(IntegerPrefMatches(prefs::kRestoreOnStartup)); 257} 258 259// TCM ID - 3703314. 260IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, Privacy) { 261 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 262 DisableVerifier(); 263 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 ChangeBooleanPref(0, prefs::kAlternateErrorPagesEnabled); 270 ChangeBooleanPref(0, prefs::kSearchSuggestEnabled); 271 ChangeBooleanPref(0, prefs::kNetworkPredictionEnabled); 272 ChangeBooleanPref(0, prefs::kSafeBrowsingEnabled); 273 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 274 ASSERT_TRUE(BooleanPrefMatches(prefs::kAlternateErrorPagesEnabled)); 275 ASSERT_TRUE(BooleanPrefMatches(prefs::kSearchSuggestEnabled)); 276 ASSERT_TRUE(BooleanPrefMatches(prefs::kNetworkPredictionEnabled)); 277 ASSERT_TRUE(BooleanPrefMatches(prefs::kSafeBrowsingEnabled)); 278} 279 280// TCM ID - 3649279. 281IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, ClearData) { 282 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 283 DisableVerifier(); 284 285 ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteBrowsingHistory)); 286 ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteDownloadHistory)); 287 ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteCache)); 288 ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteCookies)); 289 ASSERT_TRUE(BooleanPrefMatches(prefs::kDeletePasswords)); 290 ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteFormData)); 291 ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteHostedAppsData)); 292 293 ChangeBooleanPref(0, prefs::kDeleteBrowsingHistory); 294 ChangeBooleanPref(0, prefs::kDeleteDownloadHistory); 295 ChangeBooleanPref(0, prefs::kDeleteCache); 296 ChangeBooleanPref(0, prefs::kDeleteCookies); 297 ChangeBooleanPref(0, prefs::kDeletePasswords); 298 ChangeBooleanPref(0, prefs::kDeleteFormData); 299 ChangeBooleanPref(0, prefs::kDeleteHostedAppsData); 300 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 301 ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteBrowsingHistory)); 302 ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteDownloadHistory)); 303 ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteCache)); 304 ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteCookies)); 305 ASSERT_TRUE(BooleanPrefMatches(prefs::kDeletePasswords)); 306 ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteFormData)); 307 ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteHostedAppsData)); 308} 309 310// TCM ID - 3686300. 311IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, 312 kWebKitUsesUniversalDetector) { 313 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 314 ASSERT_TRUE(BooleanPrefMatches(prefs::kWebKitUsesUniversalDetector)); 315 316 ChangeBooleanPref(0, prefs::kWebKitUsesUniversalDetector); 317 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 318 ASSERT_TRUE(BooleanPrefMatches(prefs::kWebKitUsesUniversalDetector)); 319} 320 321// TCM ID - 3673298. 322IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kDefaultCharset) { 323 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 324 ASSERT_TRUE(StringPrefMatches(prefs::kDefaultCharset)); 325 326 ChangeStringPref(0, prefs::kDefaultCharset, "Thai"); 327 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 328 ASSERT_TRUE(StringPrefMatches(prefs::kDefaultCharset)); 329} 330 331// TCM ID - 3653296. 332IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, 333 kBlockThirdPartyCookies) { 334 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 335 ASSERT_TRUE(BooleanPrefMatches(prefs::kBlockThirdPartyCookies)); 336 337 ChangeBooleanPref(0, prefs::kBlockThirdPartyCookies); 338 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 339 ASSERT_TRUE(BooleanPrefMatches(prefs::kBlockThirdPartyCookies)); 340} 341 342// TCM ID - 7297279. 343IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, 344 kClearSiteDataOnExit) { 345 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 346 ASSERT_TRUE(BooleanPrefMatches(prefs::kClearSiteDataOnExit)); 347 348 ChangeBooleanPref(0, prefs::kClearSiteDataOnExit); 349 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 350 ASSERT_TRUE(BooleanPrefMatches(prefs::kClearSiteDataOnExit)); 351} 352 353// TCM ID - 7306184. 354IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, 355 kSafeBrowsingEnabled) { 356 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 357 ASSERT_TRUE(BooleanPrefMatches(prefs::kSafeBrowsingEnabled)); 358 359 ChangeBooleanPref(0, prefs::kSafeBrowsingEnabled); 360 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 361 ASSERT_TRUE(BooleanPrefMatches(prefs::kSafeBrowsingEnabled)); 362} 363 364// TCM ID - 3624302. 365IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, 366 kAutofillAuxiliaryProfilesEnabled) { 367 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 368 DisableVerifier(); 369 370 ASSERT_TRUE( 371 BooleanPrefMatches(autofill::prefs::kAutofillAuxiliaryProfilesEnabled)); 372 373 ChangeBooleanPref(0, autofill::prefs::kAutofillAuxiliaryProfilesEnabled); 374 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 375 376 // kAutofillAuxiliaryProfilesEnabled is only synced on Mac. 377#if defined(OS_MACOSX) 378 ASSERT_TRUE( 379 BooleanPrefMatches(autofill::prefs::kAutofillAuxiliaryProfilesEnabled)); 380#else 381 ASSERT_FALSE( 382 BooleanPrefMatches(autofill::prefs::kAutofillAuxiliaryProfilesEnabled)); 383#endif // OS_MACOSX 384} 385 386// TCM ID - 3717298. 387IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kPromptForDownload) { 388 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 389 ASSERT_TRUE(BooleanPrefMatches(prefs::kPromptForDownload)); 390 391 ChangeBooleanPref(0, prefs::kPromptForDownload); 392 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 393 ASSERT_TRUE(BooleanPrefMatches(prefs::kPromptForDownload)); 394} 395 396// TCM ID - 3729263. 397IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, 398 kPrefTranslateLanguageBlacklist) { 399 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 400 ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableTranslate)); 401 402 TranslatePrefs translate_client0_prefs(GetPrefs(0)); 403 TranslatePrefs translate_client1_prefs(GetPrefs(1)); 404 ASSERT_FALSE(translate_client0_prefs.IsLanguageBlacklisted("fr")); 405 translate_client0_prefs.BlacklistLanguage("fr"); 406 ASSERT_TRUE(translate_client0_prefs.IsLanguageBlacklisted("fr")); 407 408 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 409 ASSERT_TRUE(translate_client1_prefs.IsLanguageBlacklisted("fr")); 410 411 translate_client0_prefs.RemoveLanguageFromBlacklist("fr"); 412 ASSERT_FALSE(translate_client0_prefs.IsLanguageBlacklisted("fr")); 413 414 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 415 ASSERT_FALSE(translate_client1_prefs.IsLanguageBlacklisted("fr")); 416} 417 418// TCM ID - 7307195. 419IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, 420 kPrefTranslateWhitelists) { 421 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 422 ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableTranslate)); 423 424 TranslatePrefs translate_client0_prefs(GetPrefs(0)); 425 TranslatePrefs translate_client1_prefs(GetPrefs(1)); 426 ASSERT_FALSE(translate_client0_prefs.IsLanguagePairWhitelisted("en", "bg")); 427 translate_client0_prefs.WhitelistLanguagePair("en", "bg"); 428 ASSERT_TRUE(translate_client0_prefs.IsLanguagePairWhitelisted("en", "bg")); 429 430 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 431 ASSERT_TRUE(translate_client1_prefs.IsLanguagePairWhitelisted("en", "bg")); 432 433 translate_client0_prefs.RemoveLanguagePairFromWhitelist("en", "bg"); 434 ASSERT_FALSE(translate_client0_prefs.IsLanguagePairWhitelisted("en", "bg")); 435 436 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 437 ASSERT_FALSE(translate_client1_prefs.IsLanguagePairWhitelisted("en", "bg")); 438} 439 440// TCM ID - 3625298. 441IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, 442 kPrefTranslateSiteBlacklist) { 443 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 444 ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableTranslate)); 445 446 GURL url("http://www.google.com"); 447 std::string host(url.host()); 448 TranslatePrefs translate_client0_prefs(GetPrefs(0)); 449 TranslatePrefs translate_client1_prefs(GetPrefs(1)); 450 ASSERT_FALSE(translate_client0_prefs.IsSiteBlacklisted(host)); 451 translate_client0_prefs.BlacklistSite(host); 452 ASSERT_TRUE(translate_client0_prefs.IsSiteBlacklisted(host)); 453 454 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 455 ASSERT_TRUE(translate_client1_prefs.IsSiteBlacklisted(host)); 456 457 translate_client0_prefs.RemoveSiteFromBlacklist(host); 458 ASSERT_FALSE(translate_client0_prefs.IsSiteBlacklisted(host)); 459 460 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 461 ASSERT_FALSE(translate_client1_prefs.IsSiteBlacklisted(host)); 462} 463 464// TCM ID - 6515252. 465IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, 466 kExtensionsUIDeveloperMode) { 467 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 468 ASSERT_TRUE(BooleanPrefMatches(prefs::kExtensionsUIDeveloperMode)); 469 470 ChangeBooleanPref(0, prefs::kExtensionsUIDeveloperMode); 471 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 472 ASSERT_TRUE(BooleanPrefMatches(prefs::kExtensionsUIDeveloperMode)); 473} 474 475// TCM ID - 7583816 476IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kAcceptLanguages) { 477 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 478 DisableVerifier(); 479 ASSERT_TRUE(StringPrefMatches(prefs::kAcceptLanguages)); 480 481 AppendStringPref(0, prefs::kAcceptLanguages, ",ar"); 482 AppendStringPref(1, prefs::kAcceptLanguages, ",fr"); 483 ASSERT_TRUE(AwaitQuiescence()); 484 // kAcceptLanguages is not synced on Mac. 485#if !defined(OS_MACOSX) 486 ASSERT_TRUE(StringPrefMatches(prefs::kAcceptLanguages)); 487#else 488 ASSERT_FALSE(StringPrefMatches(prefs::kAcceptLanguages)); 489#endif // OS_MACOSX 490 491 ChangeStringPref(0, prefs::kAcceptLanguages, "en-US"); 492 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 493#if !defined(OS_MACOSX) 494 ASSERT_TRUE(StringPrefMatches(prefs::kAcceptLanguages)); 495#else 496 ASSERT_FALSE(StringPrefMatches(prefs::kAcceptLanguages)); 497#endif // OS_MACOSX 498 499 ChangeStringPref(0, prefs::kAcceptLanguages, "ar,en-US"); 500 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 501#if !defined(OS_MACOSX) 502 ASSERT_TRUE(StringPrefMatches(prefs::kAcceptLanguages)); 503#else 504 ASSERT_FALSE(StringPrefMatches(prefs::kAcceptLanguages)); 505#endif // OS_MACOSX 506} 507 508// TCM ID - 7590682 509#if defined(TOOLKIT_GTK) 510IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kUsesSystemTheme) { 511 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 512 ASSERT_TRUE(BooleanPrefMatches(prefs::kUsesSystemTheme)); 513 514 ChangeBooleanPref(0, prefs::kUsesSystemTheme); 515 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 516 ASSERT_FALSE(BooleanPrefMatches(prefs::kUsesSystemTheme)); 517} 518#endif // TOOLKIT_GTK 519 520// TCM ID - 6473347. 521#if defined(OS_CHROMEOS) 522IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, 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) 538IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kEnableScreenLock) { 539 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 540 ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableScreenLock)); 541 542 ChangeBooleanPref(0, prefs::kEnableScreenLock); 543 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 544 ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableScreenLock)); 545 546 ChangeBooleanPref(1, prefs::kEnableScreenLock); 547 ASSERT_TRUE(GetClient(1)->AwaitMutualSyncCycleCompletion(GetClient(0))); 548 ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableScreenLock)); 549} 550#endif // OS_CHROMEOS 551 552IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, 553 SingleClientEnabledEncryption) { 554 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 555 556 ASSERT_TRUE(EnableEncryption(0, syncer::PREFERENCES)); 557 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 558 ASSERT_TRUE(IsEncrypted(0, syncer::PREFERENCES)); 559 ASSERT_TRUE(IsEncrypted(1, syncer::PREFERENCES)); 560} 561 562IN_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, syncer::PREFERENCES)); 569 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 570 ASSERT_TRUE(IsEncrypted(0, syncer::PREFERENCES)); 571 ASSERT_TRUE(IsEncrypted(1, syncer::PREFERENCES)); 572 ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage)); 573} 574 575IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, 576 BothClientsEnabledEncryption) { 577 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 578 579 ASSERT_TRUE(EnableEncryption(0, syncer::PREFERENCES)); 580 ASSERT_TRUE(EnableEncryption(1, syncer::PREFERENCES)); 581 ASSERT_TRUE(AwaitQuiescence()); 582 ASSERT_TRUE(IsEncrypted(0, syncer::PREFERENCES)); 583 ASSERT_TRUE(IsEncrypted(1, syncer::PREFERENCES)); 584} 585 586IN_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, syncer::PREFERENCES)); 593 ChangeBooleanPref(0, prefs::kHomePageIsNewTabPage); 594 ChangeStringPref(1, prefs::kHomePage, "http://www.google.com/1"); 595 ASSERT_TRUE(AwaitQuiescence()); 596 ASSERT_TRUE(IsEncrypted(0, syncer::PREFERENCES)); 597 ASSERT_TRUE(IsEncrypted(1, syncer::PREFERENCES)); 598 ASSERT_TRUE(BooleanPrefMatches( 599 prefs::kHomePageIsNewTabPage)); 600 ASSERT_TRUE(StringPrefMatches(prefs::kHomePage)); 601} 602 603IN_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, syncer::PREFERENCES)); 610 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 611 ASSERT_TRUE(IsEncrypted(0, syncer::PREFERENCES)); 612 ASSERT_TRUE(IsEncrypted(1, syncer::PREFERENCES)); 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