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