two_client_preferences_sync_test.cc revision f8ee788a64d60abd8f2d742a5fdedde054ecd910
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 17using preferences_helper::AppendStringPref; 18using preferences_helper::BooleanPrefMatches; 19using preferences_helper::ChangeBooleanPref; 20using preferences_helper::ChangeIntegerPref; 21using preferences_helper::ChangeInt64Pref; 22using preferences_helper::ChangeListPref; 23using preferences_helper::ChangeStringPref; 24using preferences_helper::GetPrefs; 25using preferences_helper::IntegerPrefMatches; 26using preferences_helper::Int64PrefMatches; 27using preferences_helper::ListPrefMatches; 28using preferences_helper::StringPrefMatches; 29using sync_integration_test_util::AwaitCommitActivityCompletion; 30 31class TwoClientPreferencesSyncTest : public SyncTest { 32 public: 33 TwoClientPreferencesSyncTest() : SyncTest(TWO_CLIENT) {} 34 virtual ~TwoClientPreferencesSyncTest() {} 35 36 private: 37 DISALLOW_COPY_AND_ASSIGN(TwoClientPreferencesSyncTest); 38}; 39 40class 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. 50IN_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. 61IN_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. 74IN_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. 87IN_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. 102IN_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. 123IN_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. 149IN_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. 184IN_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. 194IN_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. 206IN_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. 216IN_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. 226IN_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. 236IN_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. 246IN_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. 267IN_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. 277IN_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. 298IN_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. 328IN_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. 339IN_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. 349IN_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. 360IN_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. 371IN_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. 382IN_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. 404IN_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. 414IN_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. 438IN_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. 462IN_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. 488IN_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 499IN_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 . 521IN_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) 538IN_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 552IN_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 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)); 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 575IN_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 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)); 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 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)); 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