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.
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/translate_tab_helper.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"
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;
31 class TwoClientPreferencesSyncTest : public SyncTest {
33 TwoClientPreferencesSyncTest() : SyncTest(TWO_CLIENT) {}
34 virtual ~TwoClientPreferencesSyncTest() {}
37 DISALLOW_COPY_AND_ASSIGN(TwoClientPreferencesSyncTest);
40 class LegacyTwoClientPreferencesSyncTest : public SyncTest {
42 LegacyTwoClientPreferencesSyncTest() : SyncTest(TWO_CLIENT_LEGACY) {}
43 virtual ~LegacyTwoClientPreferencesSyncTest() {}
46 DISALLOW_COPY_AND_ASSIGN(LegacyTwoClientPreferencesSyncTest);
50 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
51 kHomePageIsNewTabPage) {
52 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
53 ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
55 ChangeBooleanPref(0, prefs::kHomePageIsNewTabPage);
56 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
57 ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
61 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, Race) {
62 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
65 ASSERT_TRUE(StringPrefMatches(prefs::kHomePage));
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));
74 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
75 kPasswordManagerEnabled) {
76 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
78 BooleanPrefMatches(password_manager::prefs::kPasswordManagerEnabled));
80 ChangeBooleanPref(0, password_manager::prefs::kPasswordManagerEnabled);
81 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
83 BooleanPrefMatches(password_manager::prefs::kPasswordManagerEnabled));
87 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
88 kSyncKeepEverythingSynced) {
89 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
93 BooleanPrefMatches(sync_driver::prefs::kSyncKeepEverythingSynced));
94 ASSERT_TRUE(BooleanPrefMatches(sync_driver::prefs::kSyncThemes));
96 GetClient(0)->DisableSyncForDatatype(syncer::THEMES);
98 BooleanPrefMatches(sync_driver::prefs::kSyncKeepEverythingSynced));
102 IN_PROC_BROWSER_TEST_F(LegacyTwoClientPreferencesSyncTest, DisablePreferences) {
103 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
106 ASSERT_TRUE(BooleanPrefMatches(sync_driver::prefs::kSyncPreferences));
108 BooleanPrefMatches(password_manager::prefs::kPasswordManagerEnabled));
110 GetClient(1)->DisableSyncForDatatype(syncer::PREFERENCES);
111 ChangeBooleanPref(0, password_manager::prefs::kPasswordManagerEnabled);
112 ASSERT_TRUE(AwaitCommitActivityCompletion(GetSyncService((0))));
114 BooleanPrefMatches(password_manager::prefs::kPasswordManagerEnabled));
116 GetClient(1)->EnableSyncForDatatype(syncer::PREFERENCES);
117 ASSERT_TRUE(AwaitQuiescence());
119 BooleanPrefMatches(password_manager::prefs::kPasswordManagerEnabled));
123 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, DisableSync) {
124 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
127 ASSERT_TRUE(BooleanPrefMatches(sync_driver::prefs::kSyncPreferences));
129 BooleanPrefMatches(password_manager::prefs::kPasswordManagerEnabled));
130 ASSERT_TRUE(BooleanPrefMatches(prefs::kShowHomeButton));
132 GetClient(1)->DisableSyncForAllDatatypes();
133 ChangeBooleanPref(0, password_manager::prefs::kPasswordManagerEnabled);
134 ASSERT_TRUE(AwaitCommitActivityCompletion(GetSyncService((0))));
136 BooleanPrefMatches(password_manager::prefs::kPasswordManagerEnabled));
138 ChangeBooleanPref(1, prefs::kShowHomeButton);
139 ASSERT_FALSE(BooleanPrefMatches(prefs::kShowHomeButton));
141 GetClient(1)->EnableSyncForAllDatatypes();
142 ASSERT_TRUE(AwaitQuiescence());
144 BooleanPrefMatches(password_manager::prefs::kPasswordManagerEnabled));
145 ASSERT_TRUE(BooleanPrefMatches(prefs::kShowHomeButton));
149 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, SignInDialog) {
150 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
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));
159 BooleanPrefMatches(sync_driver::prefs::kSyncKeepEverythingSynced));
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);
172 ASSERT_TRUE(AwaitQuiescence());
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));
180 BooleanPrefMatches(sync_driver::prefs::kSyncKeepEverythingSynced));
184 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kShowBookmarkBar) {
185 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
186 ASSERT_TRUE(BooleanPrefMatches(prefs::kShowBookmarkBar));
188 ChangeBooleanPref(0, prefs::kShowBookmarkBar);
189 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
190 ASSERT_TRUE(BooleanPrefMatches(prefs::kShowBookmarkBar));
194 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kCheckDefaultBrowser) {
195 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
198 ASSERT_TRUE(BooleanPrefMatches(prefs::kCheckDefaultBrowser));
200 ChangeBooleanPref(0, prefs::kCheckDefaultBrowser);
201 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
202 ASSERT_FALSE(BooleanPrefMatches(prefs::kCheckDefaultBrowser));
206 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kHomePage) {
207 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
208 ASSERT_TRUE(StringPrefMatches(prefs::kHomePage));
210 ChangeStringPref(0, prefs::kHomePage, "http://news.google.com");
211 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
212 ASSERT_TRUE(StringPrefMatches(prefs::kHomePage));
216 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kShowHomeButton) {
217 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
218 ASSERT_TRUE(BooleanPrefMatches(prefs::kShowHomeButton));
220 ChangeBooleanPref(0, prefs::kShowHomeButton);
221 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
222 ASSERT_TRUE(BooleanPrefMatches(prefs::kShowHomeButton));
226 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kEnableTranslate) {
227 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
228 ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableTranslate));
230 ChangeBooleanPref(0, prefs::kEnableTranslate);
231 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
232 ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableTranslate));
236 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kAutofillEnabled) {
237 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
238 ASSERT_TRUE(BooleanPrefMatches(autofill::prefs::kAutofillEnabled));
240 ChangeBooleanPref(0, autofill::prefs::kAutofillEnabled);
241 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
242 ASSERT_TRUE(BooleanPrefMatches(autofill::prefs::kAutofillEnabled));
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));
252 ChangeIntegerPref(0, prefs::kRestoreOnStartup, 0);
253 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
254 ASSERT_TRUE(IntegerPrefMatches(prefs::kRestoreOnStartup));
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));
267 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kRestoreOnStartup) {
268 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
269 ASSERT_TRUE(IntegerPrefMatches(prefs::kRestoreOnStartup));
271 ChangeIntegerPref(0, prefs::kRestoreOnStartup, 1);
272 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
273 ASSERT_TRUE(IntegerPrefMatches(prefs::kRestoreOnStartup));
277 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, Privacy) {
278 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
281 ASSERT_TRUE(BooleanPrefMatches(prefs::kAlternateErrorPagesEnabled));
282 ASSERT_TRUE(BooleanPrefMatches(prefs::kSearchSuggestEnabled));
283 ASSERT_TRUE(BooleanPrefMatches(prefs::kNetworkPredictionEnabled));
284 ASSERT_TRUE(BooleanPrefMatches(prefs::kSafeBrowsingEnabled));
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));
298 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, ClearData) {
299 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
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));
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));
328 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
329 kWebKitUsesUniversalDetector) {
330 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
331 ASSERT_TRUE(BooleanPrefMatches(prefs::kWebKitUsesUniversalDetector));
333 ChangeBooleanPref(0, prefs::kWebKitUsesUniversalDetector);
334 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
335 ASSERT_TRUE(BooleanPrefMatches(prefs::kWebKitUsesUniversalDetector));
339 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kDefaultCharset) {
340 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
341 ASSERT_TRUE(StringPrefMatches(prefs::kDefaultCharset));
343 ChangeStringPref(0, prefs::kDefaultCharset, "Thai");
344 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
345 ASSERT_TRUE(StringPrefMatches(prefs::kDefaultCharset));
349 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
350 kBlockThirdPartyCookies) {
351 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
352 ASSERT_TRUE(BooleanPrefMatches(prefs::kBlockThirdPartyCookies));
354 ChangeBooleanPref(0, prefs::kBlockThirdPartyCookies);
355 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
356 ASSERT_TRUE(BooleanPrefMatches(prefs::kBlockThirdPartyCookies));
360 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
361 kClearSiteDataOnExit) {
362 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
363 ASSERT_TRUE(BooleanPrefMatches(prefs::kClearSiteDataOnExit));
365 ChangeBooleanPref(0, prefs::kClearSiteDataOnExit);
366 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
367 ASSERT_TRUE(BooleanPrefMatches(prefs::kClearSiteDataOnExit));
371 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
372 kSafeBrowsingEnabled) {
373 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
374 ASSERT_TRUE(BooleanPrefMatches(prefs::kSafeBrowsingEnabled));
376 ChangeBooleanPref(0, prefs::kSafeBrowsingEnabled);
377 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
378 ASSERT_TRUE(BooleanPrefMatches(prefs::kSafeBrowsingEnabled));
382 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
383 kAutofillAuxiliaryProfilesEnabled) {
384 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
388 BooleanPrefMatches(autofill::prefs::kAutofillAuxiliaryProfilesEnabled));
390 ChangeBooleanPref(0, autofill::prefs::kAutofillAuxiliaryProfilesEnabled);
391 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
393 // kAutofillAuxiliaryProfilesEnabled is only synced on Mac.
394 #if defined(OS_MACOSX)
396 BooleanPrefMatches(autofill::prefs::kAutofillAuxiliaryProfilesEnabled));
399 BooleanPrefMatches(autofill::prefs::kAutofillAuxiliaryProfilesEnabled));
404 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kPromptForDownload) {
405 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
406 ASSERT_TRUE(BooleanPrefMatches(prefs::kPromptForDownload));
408 ChangeBooleanPref(0, prefs::kPromptForDownload);
409 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
410 ASSERT_TRUE(BooleanPrefMatches(prefs::kPromptForDownload));
414 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
415 kPrefTranslateLanguageBlacklist) {
416 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
417 ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableTranslate));
419 scoped_ptr<TranslatePrefs> translate_client0_prefs(
420 TranslateTabHelper::CreateTranslatePrefs(GetPrefs(0)));
421 scoped_ptr<TranslatePrefs> translate_client1_prefs(
422 TranslateTabHelper::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"));
427 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
428 ASSERT_TRUE(translate_client1_prefs->IsBlockedLanguage("fr"));
430 translate_client0_prefs->UnblockLanguage("fr");
431 ASSERT_FALSE(translate_client0_prefs->IsBlockedLanguage("fr"));
433 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
434 ASSERT_FALSE(translate_client1_prefs->IsBlockedLanguage("fr"));
438 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
439 kPrefTranslateWhitelists) {
440 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
441 ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableTranslate));
443 scoped_ptr<TranslatePrefs> translate_client0_prefs(
444 TranslateTabHelper::CreateTranslatePrefs(GetPrefs(0)));
445 scoped_ptr<TranslatePrefs> translate_client1_prefs(
446 TranslateTabHelper::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"));
451 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
452 ASSERT_TRUE(translate_client1_prefs->IsLanguagePairWhitelisted("en", "bg"));
454 translate_client0_prefs->RemoveLanguagePairFromWhitelist("en", "bg");
455 ASSERT_FALSE(translate_client0_prefs->IsLanguagePairWhitelisted("en", "bg"));
457 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
458 ASSERT_FALSE(translate_client1_prefs->IsLanguagePairWhitelisted("en", "bg"));
462 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
463 kPrefTranslateSiteBlacklist) {
464 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
465 ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableTranslate));
467 GURL url("http://www.google.com");
468 std::string host(url.host());
469 scoped_ptr<TranslatePrefs> translate_client0_prefs(
470 TranslateTabHelper::CreateTranslatePrefs(GetPrefs(0)));
471 scoped_ptr<TranslatePrefs> translate_client1_prefs(
472 TranslateTabHelper::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));
477 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
478 ASSERT_TRUE(translate_client1_prefs->IsSiteBlacklisted(host));
480 translate_client0_prefs->RemoveSiteFromBlacklist(host);
481 ASSERT_FALSE(translate_client0_prefs->IsSiteBlacklisted(host));
483 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
484 ASSERT_FALSE(translate_client1_prefs->IsSiteBlacklisted(host));
488 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
489 kExtensionsUIDeveloperMode) {
490 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
491 ASSERT_TRUE(BooleanPrefMatches(prefs::kExtensionsUIDeveloperMode));
493 ChangeBooleanPref(0, prefs::kExtensionsUIDeveloperMode);
494 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
495 ASSERT_TRUE(BooleanPrefMatches(prefs::kExtensionsUIDeveloperMode));
499 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kAcceptLanguages) {
500 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
502 ASSERT_TRUE(StringPrefMatches(prefs::kAcceptLanguages));
504 AppendStringPref(0, prefs::kAcceptLanguages, ",ar");
505 AppendStringPref(1, prefs::kAcceptLanguages, ",fr");
506 ASSERT_TRUE(AwaitQuiescence());
507 ASSERT_TRUE(StringPrefMatches(prefs::kAcceptLanguages));
509 ChangeStringPref(0, prefs::kAcceptLanguages, "en-US");
510 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
511 ASSERT_TRUE(StringPrefMatches(prefs::kAcceptLanguages));
513 ChangeStringPref(0, prefs::kAcceptLanguages, "ar,en-US");
514 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
515 ASSERT_TRUE(StringPrefMatches(prefs::kAcceptLanguages));
519 #if defined(TOOLKIT_GTK)
520 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kUsesSystemTheme) {
521 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
522 ASSERT_TRUE(BooleanPrefMatches(prefs::kUsesSystemTheme));
524 ChangeBooleanPref(0, prefs::kUsesSystemTheme);
525 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
526 ASSERT_FALSE(BooleanPrefMatches(prefs::kUsesSystemTheme));
528 #endif // TOOLKIT_GTK
531 #if defined(OS_CHROMEOS)
532 // Disabled, http://crbug.com/351159 .
533 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, DISABLED_kTapToClickEnabled) {
534 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
535 ASSERT_TRUE(BooleanPrefMatches(prefs::kTapToClickEnabled));
537 ChangeBooleanPref(0, prefs::kTapToClickEnabled);
538 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
539 ASSERT_TRUE(BooleanPrefMatches(prefs::kTapToClickEnabled));
541 ChangeBooleanPref(1, prefs::kTapToClickEnabled);
542 ASSERT_TRUE(GetClient(1)->AwaitMutualSyncCycleCompletion(GetClient(0)));
543 ASSERT_TRUE(BooleanPrefMatches(prefs::kTapToClickEnabled));
545 #endif // OS_CHROMEOS
548 #if defined(OS_CHROMEOS)
549 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kEnableAutoScreenLock) {
550 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
551 ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableAutoScreenLock));
553 ChangeBooleanPref(0, prefs::kEnableAutoScreenLock);
554 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
555 ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableAutoScreenLock));
557 ChangeBooleanPref(1, prefs::kEnableAutoScreenLock);
558 ASSERT_TRUE(GetClient(1)->AwaitMutualSyncCycleCompletion(GetClient(0)));
559 ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableAutoScreenLock));
561 #endif // OS_CHROMEOS
563 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
564 SingleClientEnabledEncryption) {
565 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
567 ASSERT_TRUE(EnableEncryption(0));
568 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
569 ASSERT_TRUE(IsEncryptionComplete(0));
570 ASSERT_TRUE(IsEncryptionComplete(1));
573 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
574 SingleClientEnabledEncryptionAndChanged) {
575 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
576 ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
578 ChangeBooleanPref(0, prefs::kHomePageIsNewTabPage);
579 ASSERT_TRUE(EnableEncryption(0));
580 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
581 ASSERT_TRUE(IsEncryptionComplete(0));
582 ASSERT_TRUE(IsEncryptionComplete(1));
583 ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
586 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
587 BothClientsEnabledEncryption) {
588 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
590 ASSERT_TRUE(EnableEncryption(0));
591 ASSERT_TRUE(EnableEncryption(1));
592 ASSERT_TRUE(AwaitQuiescence());
593 ASSERT_TRUE(IsEncryptionComplete(0));
594 ASSERT_TRUE(IsEncryptionComplete(1));
597 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
598 SingleClientEnabledEncryptionBothChanged) {
599 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
600 ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
601 ASSERT_TRUE(StringPrefMatches(prefs::kHomePage));
603 ASSERT_TRUE(EnableEncryption(0));
604 ChangeBooleanPref(0, prefs::kHomePageIsNewTabPage);
605 ChangeStringPref(1, prefs::kHomePage, "http://www.google.com/1");
606 ASSERT_TRUE(AwaitQuiescence());
607 ASSERT_TRUE(IsEncryptionComplete(0));
608 ASSERT_TRUE(IsEncryptionComplete(1));
609 ASSERT_TRUE(BooleanPrefMatches(
610 prefs::kHomePageIsNewTabPage));
611 ASSERT_TRUE(StringPrefMatches(prefs::kHomePage));
614 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
615 SingleClientEnabledEncryptionAndChangedMultipleTimes) {
616 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
617 ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
619 ChangeBooleanPref(0, prefs::kHomePageIsNewTabPage);
620 ASSERT_TRUE(EnableEncryption(0));
621 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
622 ASSERT_TRUE(IsEncryptionComplete(0));
623 ASSERT_TRUE(IsEncryptionComplete(1));
624 ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
626 ASSERT_TRUE(BooleanPrefMatches(prefs::kShowHomeButton));
627 ChangeBooleanPref(0, prefs::kShowHomeButton);
628 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
629 ASSERT_TRUE(BooleanPrefMatches(prefs::kShowHomeButton));