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_test.h"
9 #include "chrome/browser/translate/translate_tab_helper.h"
10 #include "chrome/common/pref_names.h"
11 #include "components/translate/core/browser/translate_prefs.h"
12 #include "components/translate/core/common/translate_pref_names.h"
14 using preferences_helper::AppendStringPref;
15 using preferences_helper::BooleanPrefMatches;
16 using preferences_helper::ChangeBooleanPref;
17 using preferences_helper::ChangeIntegerPref;
18 using preferences_helper::ChangeInt64Pref;
19 using preferences_helper::ChangeListPref;
20 using preferences_helper::ChangeStringPref;
21 using preferences_helper::GetPrefs;
22 using preferences_helper::IntegerPrefMatches;
23 using preferences_helper::Int64PrefMatches;
24 using preferences_helper::ListPrefMatches;
25 using preferences_helper::StringPrefMatches;
27 class TwoClientPreferencesSyncTest : public SyncTest {
29 TwoClientPreferencesSyncTest() : SyncTest(TWO_CLIENT) {}
30 virtual ~TwoClientPreferencesSyncTest() {}
33 DISALLOW_COPY_AND_ASSIGN(TwoClientPreferencesSyncTest);
37 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
38 kHomePageIsNewTabPage) {
39 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
40 ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
42 ChangeBooleanPref(0, prefs::kHomePageIsNewTabPage);
43 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
44 ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
48 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, Race) {
49 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
52 ASSERT_TRUE(StringPrefMatches(prefs::kHomePage));
54 ChangeStringPref(0, prefs::kHomePage, "http://www.google.com/0");
55 ChangeStringPref(1, prefs::kHomePage,"http://www.google.com/1");
56 ASSERT_TRUE(AwaitQuiescence());
57 ASSERT_TRUE(StringPrefMatches(prefs::kHomePage));
61 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
62 kPasswordManagerEnabled) {
63 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
64 ASSERT_TRUE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
66 ChangeBooleanPref(0, prefs::kPasswordManagerEnabled);
67 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
68 ASSERT_TRUE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
72 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
73 kSyncKeepEverythingSynced) {
74 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
77 ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncKeepEverythingSynced));
78 ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncThemes));
80 GetClient(0)->DisableSyncForDatatype(syncer::THEMES);
81 ASSERT_FALSE(BooleanPrefMatches(prefs::kSyncKeepEverythingSynced));
85 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, DisablePreferences) {
86 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
89 ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncPreferences));
90 ASSERT_TRUE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
92 GetClient(1)->DisableSyncForDatatype(syncer::PREFERENCES);
93 ChangeBooleanPref(0, prefs::kPasswordManagerEnabled);
94 ASSERT_TRUE(GetClient(0)->AwaitCommitActivityCompletion());
95 ASSERT_FALSE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
97 GetClient(1)->EnableSyncForDatatype(syncer::PREFERENCES);
98 ASSERT_TRUE(AwaitQuiescence());
99 ASSERT_TRUE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
103 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, DisableSync) {
104 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
107 ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncPreferences));
108 ASSERT_TRUE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
109 ASSERT_TRUE(BooleanPrefMatches(prefs::kShowHomeButton));
111 GetClient(1)->DisableSyncForAllDatatypes();
112 ChangeBooleanPref(0, prefs::kPasswordManagerEnabled);
113 ASSERT_TRUE(GetClient(0)->AwaitCommitActivityCompletion());
114 ASSERT_FALSE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
116 ChangeBooleanPref(1, prefs::kShowHomeButton);
117 ASSERT_FALSE(BooleanPrefMatches(prefs::kShowHomeButton));
119 GetClient(1)->EnableSyncForAllDatatypes();
120 ASSERT_TRUE(AwaitQuiescence());
121 ASSERT_TRUE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
122 ASSERT_TRUE(BooleanPrefMatches(prefs::kShowHomeButton));
126 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, SignInDialog) {
127 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
130 ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncPreferences));
131 ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncBookmarks));
132 ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncThemes));
133 ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncExtensions));
134 ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncAutofill));
135 ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncKeepEverythingSynced));
137 GetClient(0)->DisableSyncForDatatype(syncer::PREFERENCES);
138 GetClient(1)->EnableSyncForDatatype(syncer::PREFERENCES);
139 GetClient(0)->DisableSyncForDatatype(syncer::AUTOFILL);
140 GetClient(1)->EnableSyncForDatatype(syncer::AUTOFILL);
141 GetClient(0)->DisableSyncForDatatype(syncer::BOOKMARKS);
142 GetClient(1)->EnableSyncForDatatype(syncer::BOOKMARKS);
143 GetClient(0)->DisableSyncForDatatype(syncer::EXTENSIONS);
144 GetClient(1)->EnableSyncForDatatype(syncer::EXTENSIONS);
145 GetClient(0)->DisableSyncForDatatype(syncer::THEMES);
146 GetClient(1)->EnableSyncForDatatype(syncer::THEMES);
148 ASSERT_TRUE(AwaitQuiescence());
150 ASSERT_FALSE(BooleanPrefMatches(prefs::kSyncPreferences));
151 ASSERT_FALSE(BooleanPrefMatches(prefs::kSyncBookmarks));
152 ASSERT_FALSE(BooleanPrefMatches(prefs::kSyncThemes));
153 ASSERT_FALSE(BooleanPrefMatches(prefs::kSyncExtensions));
154 ASSERT_FALSE(BooleanPrefMatches(prefs::kSyncAutofill));
155 ASSERT_FALSE(BooleanPrefMatches(prefs::kSyncKeepEverythingSynced));
159 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kShowBookmarkBar) {
160 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
161 ASSERT_TRUE(BooleanPrefMatches(prefs::kShowBookmarkBar));
163 ChangeBooleanPref(0, prefs::kShowBookmarkBar);
164 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
165 ASSERT_TRUE(BooleanPrefMatches(prefs::kShowBookmarkBar));
169 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kCheckDefaultBrowser) {
170 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
173 ASSERT_TRUE(BooleanPrefMatches(prefs::kCheckDefaultBrowser));
175 ChangeBooleanPref(0, prefs::kCheckDefaultBrowser);
176 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
177 ASSERT_FALSE(BooleanPrefMatches(prefs::kCheckDefaultBrowser));
181 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kHomePage) {
182 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
183 ASSERT_TRUE(StringPrefMatches(prefs::kHomePage));
185 ChangeStringPref(0, prefs::kHomePage, "http://news.google.com");
186 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
187 ASSERT_TRUE(StringPrefMatches(prefs::kHomePage));
191 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kShowHomeButton) {
192 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
193 ASSERT_TRUE(BooleanPrefMatches(prefs::kShowHomeButton));
195 ChangeBooleanPref(0, prefs::kShowHomeButton);
196 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
197 ASSERT_TRUE(BooleanPrefMatches(prefs::kShowHomeButton));
201 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kEnableTranslate) {
202 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
203 ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableTranslate));
205 ChangeBooleanPref(0, prefs::kEnableTranslate);
206 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
207 ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableTranslate));
211 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kAutofillEnabled) {
212 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
213 ASSERT_TRUE(BooleanPrefMatches(autofill::prefs::kAutofillEnabled));
215 ChangeBooleanPref(0, autofill::prefs::kAutofillEnabled);
216 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
217 ASSERT_TRUE(BooleanPrefMatches(autofill::prefs::kAutofillEnabled));
221 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
222 kURLsToRestoreOnStartup) {
223 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
224 ASSERT_TRUE(IntegerPrefMatches(prefs::kRestoreOnStartup));
225 ASSERT_TRUE(ListPrefMatches(prefs::kURLsToRestoreOnStartup));
227 ChangeIntegerPref(0, prefs::kRestoreOnStartup, 0);
228 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
229 ASSERT_TRUE(IntegerPrefMatches(prefs::kRestoreOnStartup));
231 base::ListValue urls;
232 urls.Append(base::Value::CreateStringValue("http://www.google.com/"));
233 urls.Append(base::Value::CreateStringValue("http://www.flickr.com/"));
234 ChangeIntegerPref(0, prefs::kRestoreOnStartup, 4);
235 ChangeListPref(0, prefs::kURLsToRestoreOnStartup, urls);
236 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
237 ASSERT_TRUE(IntegerPrefMatches(prefs::kRestoreOnStartup));
238 ASSERT_TRUE(ListPrefMatches(prefs::kURLsToRestoreOnStartup));
242 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kRestoreOnStartup) {
243 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
244 ASSERT_TRUE(IntegerPrefMatches(prefs::kRestoreOnStartup));
246 ChangeIntegerPref(0, prefs::kRestoreOnStartup, 1);
247 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
248 ASSERT_TRUE(IntegerPrefMatches(prefs::kRestoreOnStartup));
252 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, Privacy) {
253 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
256 ASSERT_TRUE(BooleanPrefMatches(prefs::kAlternateErrorPagesEnabled));
257 ASSERT_TRUE(BooleanPrefMatches(prefs::kSearchSuggestEnabled));
258 ASSERT_TRUE(BooleanPrefMatches(prefs::kNetworkPredictionEnabled));
259 ASSERT_TRUE(BooleanPrefMatches(prefs::kSafeBrowsingEnabled));
261 ChangeBooleanPref(0, prefs::kAlternateErrorPagesEnabled);
262 ChangeBooleanPref(0, prefs::kSearchSuggestEnabled);
263 ChangeBooleanPref(0, prefs::kNetworkPredictionEnabled);
264 ChangeBooleanPref(0, prefs::kSafeBrowsingEnabled);
265 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
266 ASSERT_TRUE(BooleanPrefMatches(prefs::kAlternateErrorPagesEnabled));
267 ASSERT_TRUE(BooleanPrefMatches(prefs::kSearchSuggestEnabled));
268 ASSERT_TRUE(BooleanPrefMatches(prefs::kNetworkPredictionEnabled));
269 ASSERT_TRUE(BooleanPrefMatches(prefs::kSafeBrowsingEnabled));
273 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, ClearData) {
274 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
277 ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteBrowsingHistory));
278 ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteDownloadHistory));
279 ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteCache));
280 ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteCookies));
281 ASSERT_TRUE(BooleanPrefMatches(prefs::kDeletePasswords));
282 ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteFormData));
283 ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteHostedAppsData));
285 ChangeBooleanPref(0, prefs::kDeleteBrowsingHistory);
286 ChangeBooleanPref(0, prefs::kDeleteDownloadHistory);
287 ChangeBooleanPref(0, prefs::kDeleteCache);
288 ChangeBooleanPref(0, prefs::kDeleteCookies);
289 ChangeBooleanPref(0, prefs::kDeletePasswords);
290 ChangeBooleanPref(0, prefs::kDeleteFormData);
291 ChangeBooleanPref(0, prefs::kDeleteHostedAppsData);
292 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
293 ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteBrowsingHistory));
294 ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteDownloadHistory));
295 ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteCache));
296 ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteCookies));
297 ASSERT_TRUE(BooleanPrefMatches(prefs::kDeletePasswords));
298 ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteFormData));
299 ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteHostedAppsData));
303 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
304 kWebKitUsesUniversalDetector) {
305 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
306 ASSERT_TRUE(BooleanPrefMatches(prefs::kWebKitUsesUniversalDetector));
308 ChangeBooleanPref(0, prefs::kWebKitUsesUniversalDetector);
309 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
310 ASSERT_TRUE(BooleanPrefMatches(prefs::kWebKitUsesUniversalDetector));
314 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kDefaultCharset) {
315 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
316 ASSERT_TRUE(StringPrefMatches(prefs::kDefaultCharset));
318 ChangeStringPref(0, prefs::kDefaultCharset, "Thai");
319 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
320 ASSERT_TRUE(StringPrefMatches(prefs::kDefaultCharset));
324 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
325 kBlockThirdPartyCookies) {
326 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
327 ASSERT_TRUE(BooleanPrefMatches(prefs::kBlockThirdPartyCookies));
329 ChangeBooleanPref(0, prefs::kBlockThirdPartyCookies);
330 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
331 ASSERT_TRUE(BooleanPrefMatches(prefs::kBlockThirdPartyCookies));
335 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
336 kClearSiteDataOnExit) {
337 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
338 ASSERT_TRUE(BooleanPrefMatches(prefs::kClearSiteDataOnExit));
340 ChangeBooleanPref(0, prefs::kClearSiteDataOnExit);
341 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
342 ASSERT_TRUE(BooleanPrefMatches(prefs::kClearSiteDataOnExit));
346 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
347 kSafeBrowsingEnabled) {
348 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
349 ASSERT_TRUE(BooleanPrefMatches(prefs::kSafeBrowsingEnabled));
351 ChangeBooleanPref(0, prefs::kSafeBrowsingEnabled);
352 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
353 ASSERT_TRUE(BooleanPrefMatches(prefs::kSafeBrowsingEnabled));
357 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
358 kAutofillAuxiliaryProfilesEnabled) {
359 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
363 BooleanPrefMatches(autofill::prefs::kAutofillAuxiliaryProfilesEnabled));
365 ChangeBooleanPref(0, autofill::prefs::kAutofillAuxiliaryProfilesEnabled);
366 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
368 // kAutofillAuxiliaryProfilesEnabled is only synced on Mac.
369 #if defined(OS_MACOSX)
371 BooleanPrefMatches(autofill::prefs::kAutofillAuxiliaryProfilesEnabled));
374 BooleanPrefMatches(autofill::prefs::kAutofillAuxiliaryProfilesEnabled));
379 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kPromptForDownload) {
380 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
381 ASSERT_TRUE(BooleanPrefMatches(prefs::kPromptForDownload));
383 ChangeBooleanPref(0, prefs::kPromptForDownload);
384 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
385 ASSERT_TRUE(BooleanPrefMatches(prefs::kPromptForDownload));
389 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
390 kPrefTranslateLanguageBlacklist) {
391 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
392 ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableTranslate));
394 scoped_ptr<TranslatePrefs> translate_client0_prefs(
395 TranslateTabHelper::CreateTranslatePrefs(GetPrefs(0)));
396 scoped_ptr<TranslatePrefs> translate_client1_prefs(
397 TranslateTabHelper::CreateTranslatePrefs(GetPrefs(1)));
398 ASSERT_FALSE(translate_client0_prefs->IsBlockedLanguage("fr"));
399 translate_client0_prefs->BlockLanguage("fr");
400 ASSERT_TRUE(translate_client0_prefs->IsBlockedLanguage("fr"));
402 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
403 ASSERT_TRUE(translate_client1_prefs->IsBlockedLanguage("fr"));
405 translate_client0_prefs->UnblockLanguage("fr");
406 ASSERT_FALSE(translate_client0_prefs->IsBlockedLanguage("fr"));
408 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
409 ASSERT_FALSE(translate_client1_prefs->IsBlockedLanguage("fr"));
413 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
414 kPrefTranslateWhitelists) {
415 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
416 ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableTranslate));
418 scoped_ptr<TranslatePrefs> translate_client0_prefs(
419 TranslateTabHelper::CreateTranslatePrefs(GetPrefs(0)));
420 scoped_ptr<TranslatePrefs> translate_client1_prefs(
421 TranslateTabHelper::CreateTranslatePrefs(GetPrefs(1)));
422 ASSERT_FALSE(translate_client0_prefs->IsLanguagePairWhitelisted("en", "bg"));
423 translate_client0_prefs->WhitelistLanguagePair("en", "bg");
424 ASSERT_TRUE(translate_client0_prefs->IsLanguagePairWhitelisted("en", "bg"));
426 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
427 ASSERT_TRUE(translate_client1_prefs->IsLanguagePairWhitelisted("en", "bg"));
429 translate_client0_prefs->RemoveLanguagePairFromWhitelist("en", "bg");
430 ASSERT_FALSE(translate_client0_prefs->IsLanguagePairWhitelisted("en", "bg"));
432 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
433 ASSERT_FALSE(translate_client1_prefs->IsLanguagePairWhitelisted("en", "bg"));
437 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
438 kPrefTranslateSiteBlacklist) {
439 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
440 ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableTranslate));
442 GURL url("http://www.google.com");
443 std::string host(url.host());
444 scoped_ptr<TranslatePrefs> translate_client0_prefs(
445 TranslateTabHelper::CreateTranslatePrefs(GetPrefs(0)));
446 scoped_ptr<TranslatePrefs> translate_client1_prefs(
447 TranslateTabHelper::CreateTranslatePrefs(GetPrefs(1)));
448 ASSERT_FALSE(translate_client0_prefs->IsSiteBlacklisted(host));
449 translate_client0_prefs->BlacklistSite(host);
450 ASSERT_TRUE(translate_client0_prefs->IsSiteBlacklisted(host));
452 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
453 ASSERT_TRUE(translate_client1_prefs->IsSiteBlacklisted(host));
455 translate_client0_prefs->RemoveSiteFromBlacklist(host);
456 ASSERT_FALSE(translate_client0_prefs->IsSiteBlacklisted(host));
458 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
459 ASSERT_FALSE(translate_client1_prefs->IsSiteBlacklisted(host));
463 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
464 kExtensionsUIDeveloperMode) {
465 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
466 ASSERT_TRUE(BooleanPrefMatches(prefs::kExtensionsUIDeveloperMode));
468 ChangeBooleanPref(0, prefs::kExtensionsUIDeveloperMode);
469 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
470 ASSERT_TRUE(BooleanPrefMatches(prefs::kExtensionsUIDeveloperMode));
474 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kAcceptLanguages) {
475 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
477 ASSERT_TRUE(StringPrefMatches(prefs::kAcceptLanguages));
479 AppendStringPref(0, prefs::kAcceptLanguages, ",ar");
480 AppendStringPref(1, prefs::kAcceptLanguages, ",fr");
481 ASSERT_TRUE(AwaitQuiescence());
482 ASSERT_TRUE(StringPrefMatches(prefs::kAcceptLanguages));
484 ChangeStringPref(0, prefs::kAcceptLanguages, "en-US");
485 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
486 ASSERT_TRUE(StringPrefMatches(prefs::kAcceptLanguages));
488 ChangeStringPref(0, prefs::kAcceptLanguages, "ar,en-US");
489 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
490 ASSERT_TRUE(StringPrefMatches(prefs::kAcceptLanguages));
494 #if defined(TOOLKIT_GTK)
495 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kUsesSystemTheme) {
496 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
497 ASSERT_TRUE(BooleanPrefMatches(prefs::kUsesSystemTheme));
499 ChangeBooleanPref(0, prefs::kUsesSystemTheme);
500 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
501 ASSERT_FALSE(BooleanPrefMatches(prefs::kUsesSystemTheme));
503 #endif // TOOLKIT_GTK
506 #if defined(OS_CHROMEOS)
507 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kTapToClickEnabled) {
508 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
509 ASSERT_TRUE(BooleanPrefMatches(prefs::kTapToClickEnabled));
511 ChangeBooleanPref(0, prefs::kTapToClickEnabled);
512 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
513 ASSERT_TRUE(BooleanPrefMatches(prefs::kTapToClickEnabled));
515 ChangeBooleanPref(1, prefs::kTapToClickEnabled);
516 ASSERT_TRUE(GetClient(1)->AwaitMutualSyncCycleCompletion(GetClient(0)));
517 ASSERT_TRUE(BooleanPrefMatches(prefs::kTapToClickEnabled));
519 #endif // OS_CHROMEOS
522 #if defined(OS_CHROMEOS)
523 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kEnableAutoScreenLock) {
524 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
525 ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableAutoScreenLock));
527 ChangeBooleanPref(0, prefs::kEnableAutoScreenLock);
528 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
529 ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableAutoScreenLock));
531 ChangeBooleanPref(1, prefs::kEnableAutoScreenLock);
532 ASSERT_TRUE(GetClient(1)->AwaitMutualSyncCycleCompletion(GetClient(0)));
533 ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableAutoScreenLock));
535 #endif // OS_CHROMEOS
537 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
538 SingleClientEnabledEncryption) {
539 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
541 ASSERT_TRUE(EnableEncryption(0));
542 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
543 ASSERT_TRUE(IsEncryptionComplete(0));
544 ASSERT_TRUE(IsEncryptionComplete(1));
547 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
548 SingleClientEnabledEncryptionAndChanged) {
549 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
550 ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
552 ChangeBooleanPref(0, prefs::kHomePageIsNewTabPage);
553 ASSERT_TRUE(EnableEncryption(0));
554 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
555 ASSERT_TRUE(IsEncryptionComplete(0));
556 ASSERT_TRUE(IsEncryptionComplete(1));
557 ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
560 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
561 BothClientsEnabledEncryption) {
562 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
564 ASSERT_TRUE(EnableEncryption(0));
565 ASSERT_TRUE(EnableEncryption(1));
566 ASSERT_TRUE(AwaitQuiescence());
567 ASSERT_TRUE(IsEncryptionComplete(0));
568 ASSERT_TRUE(IsEncryptionComplete(1));
571 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
572 SingleClientEnabledEncryptionBothChanged) {
573 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
574 ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
575 ASSERT_TRUE(StringPrefMatches(prefs::kHomePage));
577 ASSERT_TRUE(EnableEncryption(0));
578 ChangeBooleanPref(0, prefs::kHomePageIsNewTabPage);
579 ChangeStringPref(1, prefs::kHomePage, "http://www.google.com/1");
580 ASSERT_TRUE(AwaitQuiescence());
581 ASSERT_TRUE(IsEncryptionComplete(0));
582 ASSERT_TRUE(IsEncryptionComplete(1));
583 ASSERT_TRUE(BooleanPrefMatches(
584 prefs::kHomePageIsNewTabPage));
585 ASSERT_TRUE(StringPrefMatches(prefs::kHomePage));
588 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
589 SingleClientEnabledEncryptionAndChangedMultipleTimes) {
590 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
591 ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
593 ChangeBooleanPref(0, prefs::kHomePageIsNewTabPage);
594 ASSERT_TRUE(EnableEncryption(0));
595 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
596 ASSERT_TRUE(IsEncryptionComplete(0));
597 ASSERT_TRUE(IsEncryptionComplete(1));
598 ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
600 ASSERT_TRUE(BooleanPrefMatches(prefs::kShowHomeButton));
601 ChangeBooleanPref(0, prefs::kShowHomeButton);
602 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
603 ASSERT_TRUE(BooleanPrefMatches(prefs::kShowHomeButton));