two_client_preferences_sync_test.cc revision c2e0dbddbe15c98d52c4786dac06cb8952a8ae6d
1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "base/values.h"
6#include "chrome/browser/sync/profile_sync_service_harness.h"
7#include "chrome/browser/sync/test/integration/preferences_helper.h"
8#include "chrome/browser/sync/test/integration/sync_test.h"
9#include "chrome/browser/translate/translate_prefs.h"
10#include "chrome/common/pref_names.h"
11
12using preferences_helper::AppendStringPref;
13using preferences_helper::BooleanPrefMatches;
14using preferences_helper::ChangeBooleanPref;
15using preferences_helper::ChangeIntegerPref;
16using preferences_helper::ChangeInt64Pref;
17using preferences_helper::ChangeListPref;
18using preferences_helper::ChangeStringPref;
19using preferences_helper::GetPrefs;
20using preferences_helper::IntegerPrefMatches;
21using preferences_helper::Int64PrefMatches;
22using preferences_helper::ListPrefMatches;
23using preferences_helper::StringPrefMatches;
24
25class TwoClientPreferencesSyncTest : public SyncTest {
26 public:
27  TwoClientPreferencesSyncTest() : SyncTest(TWO_CLIENT) {}
28  virtual ~TwoClientPreferencesSyncTest() {}
29
30 private:
31  DISALLOW_COPY_AND_ASSIGN(TwoClientPreferencesSyncTest);
32};
33
34// TCM ID - 7306186.
35IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
36                       kHomePageIsNewTabPage) {
37  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
38  ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
39
40  ChangeBooleanPref(0, prefs::kHomePageIsNewTabPage);
41  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
42  ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
43}
44
45// TCM ID - 7260488.
46IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, Race) {
47  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
48  DisableVerifier();
49
50  ASSERT_TRUE(StringPrefMatches(prefs::kHomePage));
51
52  ChangeStringPref(0, prefs::kHomePage, "http://www.google.com/0");
53  ChangeStringPref(1, prefs::kHomePage,"http://www.google.com/1");
54  ASSERT_TRUE(AwaitQuiescence());
55  ASSERT_TRUE(StringPrefMatches(prefs::kHomePage));
56}
57
58// TCM ID - 3649278.
59IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
60                       kPasswordManagerEnabled) {
61  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
62  ASSERT_TRUE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
63
64  ChangeBooleanPref(0, prefs::kPasswordManagerEnabled);
65  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
66  ASSERT_TRUE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
67}
68
69// TCM ID - 3699293.
70IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
71                       kSyncKeepEverythingSynced) {
72  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
73  DisableVerifier();
74
75  ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncKeepEverythingSynced));
76  ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncThemes));
77
78  GetClient(0)->DisableSyncForDatatype(syncer::THEMES);
79  ASSERT_FALSE(BooleanPrefMatches(prefs::kSyncKeepEverythingSynced));
80}
81
82// TCM ID - 3661290.
83IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, DisablePreferences) {
84  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
85  DisableVerifier();
86
87  ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncPreferences));
88  ASSERT_TRUE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
89
90  GetClient(1)->DisableSyncForDatatype(syncer::PREFERENCES);
91  ChangeBooleanPref(0, prefs::kPasswordManagerEnabled);
92  ASSERT_TRUE(GetClient(0)->AwaitFullSyncCompletion("Changed a preference."));
93  ASSERT_FALSE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
94
95  GetClient(1)->EnableSyncForDatatype(syncer::PREFERENCES);
96  ASSERT_TRUE(AwaitQuiescence());
97  ASSERT_TRUE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
98}
99
100// TCM ID - 3664292.
101IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, DisableSync) {
102  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
103  DisableVerifier();
104
105  ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncPreferences));
106  ASSERT_TRUE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
107  ASSERT_TRUE(BooleanPrefMatches(prefs::kShowHomeButton));
108
109  GetClient(1)->DisableSyncForAllDatatypes();
110  ChangeBooleanPref(0, prefs::kPasswordManagerEnabled);
111  ASSERT_TRUE(GetClient(0)->AwaitFullSyncCompletion("Changed a preference."));
112  ASSERT_FALSE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
113
114  ChangeBooleanPref(1, prefs::kShowHomeButton);
115  ASSERT_FALSE(BooleanPrefMatches(prefs::kShowHomeButton));
116
117  GetClient(1)->EnableSyncForAllDatatypes();
118  ASSERT_TRUE(AwaitQuiescence());
119  ASSERT_TRUE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
120  ASSERT_TRUE(BooleanPrefMatches(prefs::kShowHomeButton));
121}
122
123// TCM ID - 3604297.
124IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, SignInDialog) {
125  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
126  DisableVerifier();
127
128  ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncPreferences));
129  ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncBookmarks));
130  ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncThemes));
131  ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncExtensions));
132  ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncAutofill));
133  ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncKeepEverythingSynced));
134
135  GetClient(0)->DisableSyncForDatatype(syncer::PREFERENCES);
136  GetClient(1)->EnableSyncForDatatype(syncer::PREFERENCES);
137  GetClient(0)->DisableSyncForDatatype(syncer::AUTOFILL);
138  GetClient(1)->EnableSyncForDatatype(syncer::AUTOFILL);
139  GetClient(0)->DisableSyncForDatatype(syncer::BOOKMARKS);
140  GetClient(1)->EnableSyncForDatatype(syncer::BOOKMARKS);
141  GetClient(0)->DisableSyncForDatatype(syncer::EXTENSIONS);
142  GetClient(1)->EnableSyncForDatatype(syncer::EXTENSIONS);
143  GetClient(0)->DisableSyncForDatatype(syncer::THEMES);
144  GetClient(1)->EnableSyncForDatatype(syncer::THEMES);
145
146  ASSERT_TRUE(AwaitQuiescence());
147
148  ASSERT_FALSE(BooleanPrefMatches(prefs::kSyncPreferences));
149  ASSERT_FALSE(BooleanPrefMatches(prefs::kSyncBookmarks));
150  ASSERT_FALSE(BooleanPrefMatches(prefs::kSyncThemes));
151  ASSERT_FALSE(BooleanPrefMatches(prefs::kSyncExtensions));
152  ASSERT_FALSE(BooleanPrefMatches(prefs::kSyncAutofill));
153  ASSERT_FALSE(BooleanPrefMatches(prefs::kSyncKeepEverythingSynced));
154}
155
156// TCM ID - 3666296.
157IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kShowBookmarkBar) {
158  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
159  ASSERT_TRUE(BooleanPrefMatches(prefs::kShowBookmarkBar));
160
161  ChangeBooleanPref(0, prefs::kShowBookmarkBar);
162  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
163  ASSERT_TRUE(BooleanPrefMatches(prefs::kShowBookmarkBar));
164}
165
166IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kEnableInstant) {
167  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
168  ASSERT_TRUE(BooleanPrefMatches(prefs::kInstantEnabled));
169
170  ChangeBooleanPref(0, prefs::kInstantEnabled);
171
172  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
173  ASSERT_TRUE(BooleanPrefMatches(prefs::kInstantEnabled));
174}
175
176// TCM ID - 3611311.
177IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kCheckDefaultBrowser) {
178  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
179  DisableVerifier();
180
181  ASSERT_TRUE(BooleanPrefMatches(prefs::kCheckDefaultBrowser));
182
183  ChangeBooleanPref(0, prefs::kCheckDefaultBrowser);
184  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
185  ASSERT_FALSE(BooleanPrefMatches(prefs::kCheckDefaultBrowser));
186}
187
188// TCM ID - 3628298.
189IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kHomePage) {
190  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
191  ASSERT_TRUE(StringPrefMatches(prefs::kHomePage));
192
193  ChangeStringPref(0, prefs::kHomePage, "http://news.google.com");
194  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
195  ASSERT_TRUE(StringPrefMatches(prefs::kHomePage));
196}
197
198// TCM ID - 7297269.
199IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kShowHomeButton) {
200  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
201  ASSERT_TRUE(BooleanPrefMatches(prefs::kShowHomeButton));
202
203  ChangeBooleanPref(0, prefs::kShowHomeButton);
204  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
205  ASSERT_TRUE(BooleanPrefMatches(prefs::kShowHomeButton));
206}
207
208// TCM ID - 3710285.
209IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kEnableTranslate) {
210  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
211  ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableTranslate));
212
213  ChangeBooleanPref(0, prefs::kEnableTranslate);
214  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
215  ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableTranslate));
216}
217
218// TCM ID - 3664293.
219IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kAutofillEnabled) {
220  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
221  ASSERT_TRUE(BooleanPrefMatches(autofill::prefs::kAutofillEnabled));
222
223  ChangeBooleanPref(0, autofill::prefs::kAutofillEnabled);
224  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
225  ASSERT_TRUE(BooleanPrefMatches(autofill::prefs::kAutofillEnabled));
226}
227
228// TCM ID - 3632259.
229IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
230                       kURLsToRestoreOnStartup) {
231  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
232  ASSERT_TRUE(IntegerPrefMatches(prefs::kRestoreOnStartup));
233  ASSERT_TRUE(ListPrefMatches(prefs::kURLsToRestoreOnStartup));
234
235  ChangeIntegerPref(0, prefs::kRestoreOnStartup, 0);
236  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
237  ASSERT_TRUE(IntegerPrefMatches(prefs::kRestoreOnStartup));
238
239  ListValue urls;
240  urls.Append(Value::CreateStringValue("http://www.google.com/"));
241  urls.Append(Value::CreateStringValue("http://www.flickr.com/"));
242  ChangeIntegerPref(0, prefs::kRestoreOnStartup, 4);
243  ChangeListPref(0, prefs::kURLsToRestoreOnStartup, urls);
244  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
245  ASSERT_TRUE(IntegerPrefMatches(prefs::kRestoreOnStartup));
246  ASSERT_TRUE(ListPrefMatches(prefs::kURLsToRestoreOnStartup));
247}
248
249// TCM ID - 3684287.
250IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kRestoreOnStartup) {
251  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
252  ASSERT_TRUE(IntegerPrefMatches(prefs::kRestoreOnStartup));
253
254  ChangeIntegerPref(0, prefs::kRestoreOnStartup, 1);
255  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
256  ASSERT_TRUE(IntegerPrefMatches(prefs::kRestoreOnStartup));
257}
258
259// TCM ID - 3703314.
260IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, Privacy) {
261  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
262  DisableVerifier();
263
264  ASSERT_TRUE(BooleanPrefMatches(prefs::kAlternateErrorPagesEnabled));
265  ASSERT_TRUE(BooleanPrefMatches(prefs::kSearchSuggestEnabled));
266  ASSERT_TRUE(BooleanPrefMatches(prefs::kNetworkPredictionEnabled));
267  ASSERT_TRUE(BooleanPrefMatches(prefs::kSafeBrowsingEnabled));
268
269  ChangeBooleanPref(0, prefs::kAlternateErrorPagesEnabled);
270  ChangeBooleanPref(0, prefs::kSearchSuggestEnabled);
271  ChangeBooleanPref(0, prefs::kNetworkPredictionEnabled);
272  ChangeBooleanPref(0, prefs::kSafeBrowsingEnabled);
273  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
274  ASSERT_TRUE(BooleanPrefMatches(prefs::kAlternateErrorPagesEnabled));
275  ASSERT_TRUE(BooleanPrefMatches(prefs::kSearchSuggestEnabled));
276  ASSERT_TRUE(BooleanPrefMatches(prefs::kNetworkPredictionEnabled));
277  ASSERT_TRUE(BooleanPrefMatches(prefs::kSafeBrowsingEnabled));
278}
279
280// TCM ID - 3649279.
281IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, ClearData) {
282  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
283  DisableVerifier();
284
285  ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteBrowsingHistory));
286  ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteDownloadHistory));
287  ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteCache));
288  ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteCookies));
289  ASSERT_TRUE(BooleanPrefMatches(prefs::kDeletePasswords));
290  ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteFormData));
291  ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteHostedAppsData));
292
293  ChangeBooleanPref(0, prefs::kDeleteBrowsingHistory);
294  ChangeBooleanPref(0, prefs::kDeleteDownloadHistory);
295  ChangeBooleanPref(0, prefs::kDeleteCache);
296  ChangeBooleanPref(0, prefs::kDeleteCookies);
297  ChangeBooleanPref(0, prefs::kDeletePasswords);
298  ChangeBooleanPref(0, prefs::kDeleteFormData);
299  ChangeBooleanPref(0, prefs::kDeleteHostedAppsData);
300  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
301  ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteBrowsingHistory));
302  ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteDownloadHistory));
303  ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteCache));
304  ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteCookies));
305  ASSERT_TRUE(BooleanPrefMatches(prefs::kDeletePasswords));
306  ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteFormData));
307  ASSERT_TRUE(BooleanPrefMatches(prefs::kDeleteHostedAppsData));
308}
309
310// TCM ID - 3686300.
311IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
312                       kWebKitUsesUniversalDetector) {
313  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
314  ASSERT_TRUE(BooleanPrefMatches(prefs::kWebKitUsesUniversalDetector));
315
316  ChangeBooleanPref(0, prefs::kWebKitUsesUniversalDetector);
317  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
318  ASSERT_TRUE(BooleanPrefMatches(prefs::kWebKitUsesUniversalDetector));
319}
320
321// TCM ID - 3673298.
322IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kDefaultCharset) {
323  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
324  ASSERT_TRUE(StringPrefMatches(prefs::kDefaultCharset));
325
326  ChangeStringPref(0, prefs::kDefaultCharset, "Thai");
327  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
328  ASSERT_TRUE(StringPrefMatches(prefs::kDefaultCharset));
329}
330
331// TCM ID - 3653296.
332IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
333                       kBlockThirdPartyCookies) {
334  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
335  ASSERT_TRUE(BooleanPrefMatches(prefs::kBlockThirdPartyCookies));
336
337  ChangeBooleanPref(0, prefs::kBlockThirdPartyCookies);
338  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
339  ASSERT_TRUE(BooleanPrefMatches(prefs::kBlockThirdPartyCookies));
340}
341
342// TCM ID - 7297279.
343IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
344                       kClearSiteDataOnExit) {
345  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
346  ASSERT_TRUE(BooleanPrefMatches(prefs::kClearSiteDataOnExit));
347
348  ChangeBooleanPref(0, prefs::kClearSiteDataOnExit);
349  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
350  ASSERT_TRUE(BooleanPrefMatches(prefs::kClearSiteDataOnExit));
351}
352
353// TCM ID - 7306184.
354IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
355                       kSafeBrowsingEnabled) {
356  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
357  ASSERT_TRUE(BooleanPrefMatches(prefs::kSafeBrowsingEnabled));
358
359  ChangeBooleanPref(0, prefs::kSafeBrowsingEnabled);
360  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
361  ASSERT_TRUE(BooleanPrefMatches(prefs::kSafeBrowsingEnabled));
362}
363
364// TCM ID - 3624302.
365IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
366                       kAutofillAuxiliaryProfilesEnabled) {
367  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
368  DisableVerifier();
369
370  ASSERT_TRUE(
371      BooleanPrefMatches(autofill::prefs::kAutofillAuxiliaryProfilesEnabled));
372
373  ChangeBooleanPref(0, autofill::prefs::kAutofillAuxiliaryProfilesEnabled);
374  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
375
376  // kAutofillAuxiliaryProfilesEnabled is only synced on Mac.
377#if defined(OS_MACOSX)
378  ASSERT_TRUE(
379      BooleanPrefMatches(autofill::prefs::kAutofillAuxiliaryProfilesEnabled));
380#else
381  ASSERT_FALSE(
382      BooleanPrefMatches(autofill::prefs::kAutofillAuxiliaryProfilesEnabled));
383#endif  // OS_MACOSX
384}
385
386// TCM ID - 3717298.
387IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kPromptForDownload) {
388  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
389  ASSERT_TRUE(BooleanPrefMatches(prefs::kPromptForDownload));
390
391  ChangeBooleanPref(0, prefs::kPromptForDownload);
392  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
393  ASSERT_TRUE(BooleanPrefMatches(prefs::kPromptForDownload));
394}
395
396// TCM ID - 3729263.
397IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
398                       kPrefTranslateLanguageBlacklist) {
399  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
400  ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableTranslate));
401
402  TranslatePrefs translate_client0_prefs(GetPrefs(0));
403  TranslatePrefs translate_client1_prefs(GetPrefs(1));
404  ASSERT_FALSE(translate_client0_prefs.IsLanguageBlacklisted("fr"));
405  translate_client0_prefs.BlacklistLanguage("fr");
406  ASSERT_TRUE(translate_client0_prefs.IsLanguageBlacklisted("fr"));
407
408  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
409  ASSERT_TRUE(translate_client1_prefs.IsLanguageBlacklisted("fr"));
410
411  translate_client0_prefs.RemoveLanguageFromBlacklist("fr");
412  ASSERT_FALSE(translate_client0_prefs.IsLanguageBlacklisted("fr"));
413
414  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
415  ASSERT_FALSE(translate_client1_prefs.IsLanguageBlacklisted("fr"));
416}
417
418// TCM ID - 7307195.
419IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
420                       kPrefTranslateWhitelists) {
421  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
422  ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableTranslate));
423
424  TranslatePrefs translate_client0_prefs(GetPrefs(0));
425  TranslatePrefs translate_client1_prefs(GetPrefs(1));
426  ASSERT_FALSE(translate_client0_prefs.IsLanguagePairWhitelisted("en", "bg"));
427  translate_client0_prefs.WhitelistLanguagePair("en", "bg");
428  ASSERT_TRUE(translate_client0_prefs.IsLanguagePairWhitelisted("en", "bg"));
429
430  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
431  ASSERT_TRUE(translate_client1_prefs.IsLanguagePairWhitelisted("en", "bg"));
432
433  translate_client0_prefs.RemoveLanguagePairFromWhitelist("en", "bg");
434  ASSERT_FALSE(translate_client0_prefs.IsLanguagePairWhitelisted("en", "bg"));
435
436  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
437  ASSERT_FALSE(translate_client1_prefs.IsLanguagePairWhitelisted("en", "bg"));
438}
439
440// TCM ID - 3625298.
441IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
442                       kPrefTranslateSiteBlacklist) {
443  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
444  ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableTranslate));
445
446  GURL url("http://www.google.com");
447  std::string host(url.host());
448  TranslatePrefs translate_client0_prefs(GetPrefs(0));
449  TranslatePrefs translate_client1_prefs(GetPrefs(1));
450  ASSERT_FALSE(translate_client0_prefs.IsSiteBlacklisted(host));
451  translate_client0_prefs.BlacklistSite(host);
452  ASSERT_TRUE(translate_client0_prefs.IsSiteBlacklisted(host));
453
454  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
455  ASSERT_TRUE(translate_client1_prefs.IsSiteBlacklisted(host));
456
457  translate_client0_prefs.RemoveSiteFromBlacklist(host);
458  ASSERT_FALSE(translate_client0_prefs.IsSiteBlacklisted(host));
459
460  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
461  ASSERT_FALSE(translate_client1_prefs.IsSiteBlacklisted(host));
462}
463
464// TCM ID - 6515252.
465IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
466                       kExtensionsUIDeveloperMode) {
467  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
468  ASSERT_TRUE(BooleanPrefMatches(prefs::kExtensionsUIDeveloperMode));
469
470  ChangeBooleanPref(0, prefs::kExtensionsUIDeveloperMode);
471  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
472  ASSERT_TRUE(BooleanPrefMatches(prefs::kExtensionsUIDeveloperMode));
473}
474
475// TCM ID - 7583816
476IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kAcceptLanguages) {
477  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
478  DisableVerifier();
479  ASSERT_TRUE(StringPrefMatches(prefs::kAcceptLanguages));
480
481  AppendStringPref(0, prefs::kAcceptLanguages, ",ar");
482  AppendStringPref(1, prefs::kAcceptLanguages, ",fr");
483  ASSERT_TRUE(AwaitQuiescence());
484  // kAcceptLanguages is not synced on Mac.
485#if !defined(OS_MACOSX)
486  ASSERT_TRUE(StringPrefMatches(prefs::kAcceptLanguages));
487#else
488  ASSERT_FALSE(StringPrefMatches(prefs::kAcceptLanguages));
489#endif  // OS_MACOSX
490
491  ChangeStringPref(0, prefs::kAcceptLanguages, "en-US");
492  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
493#if !defined(OS_MACOSX)
494  ASSERT_TRUE(StringPrefMatches(prefs::kAcceptLanguages));
495#else
496  ASSERT_FALSE(StringPrefMatches(prefs::kAcceptLanguages));
497#endif  // OS_MACOSX
498
499  ChangeStringPref(0, prefs::kAcceptLanguages, "ar,en-US");
500  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
501#if !defined(OS_MACOSX)
502  ASSERT_TRUE(StringPrefMatches(prefs::kAcceptLanguages));
503#else
504  ASSERT_FALSE(StringPrefMatches(prefs::kAcceptLanguages));
505#endif  // OS_MACOSX
506}
507
508// TCM ID - 7590682
509#if defined(TOOLKIT_GTK)
510IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kUsesSystemTheme) {
511  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
512  ASSERT_TRUE(BooleanPrefMatches(prefs::kUsesSystemTheme));
513
514  ChangeBooleanPref(0, prefs::kUsesSystemTheme);
515  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
516  ASSERT_FALSE(BooleanPrefMatches(prefs::kUsesSystemTheme));
517}
518#endif  // TOOLKIT_GTK
519
520// TCM ID - 6473347.
521#if defined(OS_CHROMEOS)
522IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kTapToClickEnabled) {
523  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
524  ASSERT_TRUE(BooleanPrefMatches(prefs::kTapToClickEnabled));
525
526  ChangeBooleanPref(0, prefs::kTapToClickEnabled);
527  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
528  ASSERT_TRUE(BooleanPrefMatches(prefs::kTapToClickEnabled));
529
530  ChangeBooleanPref(1, prefs::kTapToClickEnabled);
531  ASSERT_TRUE(GetClient(1)->AwaitMutualSyncCycleCompletion(GetClient(0)));
532  ASSERT_TRUE(BooleanPrefMatches(prefs::kTapToClickEnabled));
533}
534#endif  // OS_CHROMEOS
535
536// TCM ID - 6458824.
537#if defined(OS_CHROMEOS)
538IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kEnableScreenLock) {
539  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
540  ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableScreenLock));
541
542  ChangeBooleanPref(0, prefs::kEnableScreenLock);
543  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
544  ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableScreenLock));
545
546  ChangeBooleanPref(1, prefs::kEnableScreenLock);
547  ASSERT_TRUE(GetClient(1)->AwaitMutualSyncCycleCompletion(GetClient(0)));
548  ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableScreenLock));
549}
550#endif  // OS_CHROMEOS
551
552IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
553                       SingleClientEnabledEncryption) {
554  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
555
556  ASSERT_TRUE(EnableEncryption(0, syncer::PREFERENCES));
557  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
558  ASSERT_TRUE(IsEncrypted(0, syncer::PREFERENCES));
559  ASSERT_TRUE(IsEncrypted(1, syncer::PREFERENCES));
560}
561
562IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
563                       SingleClientEnabledEncryptionAndChanged) {
564  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
565  ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
566
567  ChangeBooleanPref(0, prefs::kHomePageIsNewTabPage);
568  ASSERT_TRUE(EnableEncryption(0, syncer::PREFERENCES));
569  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
570  ASSERT_TRUE(IsEncrypted(0, syncer::PREFERENCES));
571  ASSERT_TRUE(IsEncrypted(1, syncer::PREFERENCES));
572  ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
573}
574
575IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
576                       BothClientsEnabledEncryption) {
577  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
578
579  ASSERT_TRUE(EnableEncryption(0, syncer::PREFERENCES));
580  ASSERT_TRUE(EnableEncryption(1, syncer::PREFERENCES));
581  ASSERT_TRUE(AwaitQuiescence());
582  ASSERT_TRUE(IsEncrypted(0, syncer::PREFERENCES));
583  ASSERT_TRUE(IsEncrypted(1, syncer::PREFERENCES));
584}
585
586IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
587                       SingleClientEnabledEncryptionBothChanged) {
588  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
589  ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
590  ASSERT_TRUE(StringPrefMatches(prefs::kHomePage));
591
592  ASSERT_TRUE(EnableEncryption(0, syncer::PREFERENCES));
593  ChangeBooleanPref(0, prefs::kHomePageIsNewTabPage);
594  ChangeStringPref(1, prefs::kHomePage, "http://www.google.com/1");
595  ASSERT_TRUE(AwaitQuiescence());
596  ASSERT_TRUE(IsEncrypted(0, syncer::PREFERENCES));
597  ASSERT_TRUE(IsEncrypted(1, syncer::PREFERENCES));
598  ASSERT_TRUE(BooleanPrefMatches(
599      prefs::kHomePageIsNewTabPage));
600  ASSERT_TRUE(StringPrefMatches(prefs::kHomePage));
601}
602
603IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
604                       SingleClientEnabledEncryptionAndChangedMultipleTimes) {
605  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
606  ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
607
608  ChangeBooleanPref(0, prefs::kHomePageIsNewTabPage);
609  ASSERT_TRUE(EnableEncryption(0, syncer::PREFERENCES));
610  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
611  ASSERT_TRUE(IsEncrypted(0, syncer::PREFERENCES));
612  ASSERT_TRUE(IsEncrypted(1, syncer::PREFERENCES));
613  ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
614
615  ASSERT_TRUE(BooleanPrefMatches(prefs::kShowHomeButton));
616  ChangeBooleanPref(0, prefs::kShowHomeButton);
617  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
618  ASSERT_TRUE(BooleanPrefMatches(prefs::kShowHomeButton));
619}
620