Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / sync / test / integration / two_client_preferences_sync_test.cc
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "base/values.h"
6 #include "chrome/browser/sync/test/integration/preferences_helper.h"
7 #include "chrome/browser/sync/test/integration/profile_sync_service_harness.h"
8 #include "chrome/browser/sync/test/integration/sync_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"
13
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;
26
27 class TwoClientPreferencesSyncTest : public SyncTest {
28  public:
29   TwoClientPreferencesSyncTest() : SyncTest(TWO_CLIENT) {}
30   virtual ~TwoClientPreferencesSyncTest() {}
31
32  private:
33   DISALLOW_COPY_AND_ASSIGN(TwoClientPreferencesSyncTest);
34 };
35
36 // TCM ID - 7306186.
37 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
38                        kHomePageIsNewTabPage) {
39   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
40   ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
41
42   ChangeBooleanPref(0, prefs::kHomePageIsNewTabPage);
43   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
44   ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
45 }
46
47 // TCM ID - 7260488.
48 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, Race) {
49   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
50   DisableVerifier();
51
52   ASSERT_TRUE(StringPrefMatches(prefs::kHomePage));
53
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));
58 }
59
60 // TCM ID - 3649278.
61 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
62                        kPasswordManagerEnabled) {
63   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
64   ASSERT_TRUE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
65
66   ChangeBooleanPref(0, prefs::kPasswordManagerEnabled);
67   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
68   ASSERT_TRUE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
69 }
70
71 // TCM ID - 3699293.
72 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
73                        kSyncKeepEverythingSynced) {
74   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
75   DisableVerifier();
76
77   ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncKeepEverythingSynced));
78   ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncThemes));
79
80   GetClient(0)->DisableSyncForDatatype(syncer::THEMES);
81   ASSERT_FALSE(BooleanPrefMatches(prefs::kSyncKeepEverythingSynced));
82 }
83
84 // TCM ID - 3661290.
85 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, DisablePreferences) {
86   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
87   DisableVerifier();
88
89   ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncPreferences));
90   ASSERT_TRUE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
91
92   GetClient(1)->DisableSyncForDatatype(syncer::PREFERENCES);
93   ChangeBooleanPref(0, prefs::kPasswordManagerEnabled);
94   ASSERT_TRUE(GetClient(0)->AwaitCommitActivityCompletion());
95   ASSERT_FALSE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
96
97   GetClient(1)->EnableSyncForDatatype(syncer::PREFERENCES);
98   ASSERT_TRUE(AwaitQuiescence());
99   ASSERT_TRUE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
100 }
101
102 // TCM ID - 3664292.
103 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, DisableSync) {
104   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
105   DisableVerifier();
106
107   ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncPreferences));
108   ASSERT_TRUE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
109   ASSERT_TRUE(BooleanPrefMatches(prefs::kShowHomeButton));
110
111   GetClient(1)->DisableSyncForAllDatatypes();
112   ChangeBooleanPref(0, prefs::kPasswordManagerEnabled);
113   ASSERT_TRUE(GetClient(0)->AwaitCommitActivityCompletion());
114   ASSERT_FALSE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
115
116   ChangeBooleanPref(1, prefs::kShowHomeButton);
117   ASSERT_FALSE(BooleanPrefMatches(prefs::kShowHomeButton));
118
119   GetClient(1)->EnableSyncForAllDatatypes();
120   ASSERT_TRUE(AwaitQuiescence());
121   ASSERT_TRUE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
122   ASSERT_TRUE(BooleanPrefMatches(prefs::kShowHomeButton));
123 }
124
125 // TCM ID - 3604297.
126 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, SignInDialog) {
127   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
128   DisableVerifier();
129
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));
136
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);
147
148   ASSERT_TRUE(AwaitQuiescence());
149
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));
156 }
157
158 // TCM ID - 3666296.
159 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kShowBookmarkBar) {
160   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
161   ASSERT_TRUE(BooleanPrefMatches(prefs::kShowBookmarkBar));
162
163   ChangeBooleanPref(0, prefs::kShowBookmarkBar);
164   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
165   ASSERT_TRUE(BooleanPrefMatches(prefs::kShowBookmarkBar));
166 }
167
168 // TCM ID - 3611311.
169 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kCheckDefaultBrowser) {
170   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
171   DisableVerifier();
172
173   ASSERT_TRUE(BooleanPrefMatches(prefs::kCheckDefaultBrowser));
174
175   ChangeBooleanPref(0, prefs::kCheckDefaultBrowser);
176   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
177   ASSERT_FALSE(BooleanPrefMatches(prefs::kCheckDefaultBrowser));
178 }
179
180 // TCM ID - 3628298.
181 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kHomePage) {
182   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
183   ASSERT_TRUE(StringPrefMatches(prefs::kHomePage));
184
185   ChangeStringPref(0, prefs::kHomePage, "http://news.google.com");
186   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
187   ASSERT_TRUE(StringPrefMatches(prefs::kHomePage));
188 }
189
190 // TCM ID - 7297269.
191 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kShowHomeButton) {
192   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
193   ASSERT_TRUE(BooleanPrefMatches(prefs::kShowHomeButton));
194
195   ChangeBooleanPref(0, prefs::kShowHomeButton);
196   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
197   ASSERT_TRUE(BooleanPrefMatches(prefs::kShowHomeButton));
198 }
199
200 // TCM ID - 3710285.
201 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kEnableTranslate) {
202   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
203   ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableTranslate));
204
205   ChangeBooleanPref(0, prefs::kEnableTranslate);
206   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
207   ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableTranslate));
208 }
209
210 // TCM ID - 3664293.
211 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kAutofillEnabled) {
212   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
213   ASSERT_TRUE(BooleanPrefMatches(autofill::prefs::kAutofillEnabled));
214
215   ChangeBooleanPref(0, autofill::prefs::kAutofillEnabled);
216   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
217   ASSERT_TRUE(BooleanPrefMatches(autofill::prefs::kAutofillEnabled));
218 }
219
220 // TCM ID - 3632259.
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));
226
227   ChangeIntegerPref(0, prefs::kRestoreOnStartup, 0);
228   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
229   ASSERT_TRUE(IntegerPrefMatches(prefs::kRestoreOnStartup));
230
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));
239 }
240
241 // TCM ID - 3684287.
242 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kRestoreOnStartup) {
243   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
244   ASSERT_TRUE(IntegerPrefMatches(prefs::kRestoreOnStartup));
245
246   ChangeIntegerPref(0, prefs::kRestoreOnStartup, 1);
247   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
248   ASSERT_TRUE(IntegerPrefMatches(prefs::kRestoreOnStartup));
249 }
250
251 // TCM ID - 3703314.
252 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, Privacy) {
253   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
254   DisableVerifier();
255
256   ASSERT_TRUE(BooleanPrefMatches(prefs::kAlternateErrorPagesEnabled));
257   ASSERT_TRUE(BooleanPrefMatches(prefs::kSearchSuggestEnabled));
258   ASSERT_TRUE(BooleanPrefMatches(prefs::kNetworkPredictionEnabled));
259   ASSERT_TRUE(BooleanPrefMatches(prefs::kSafeBrowsingEnabled));
260
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));
270 }
271
272 // TCM ID - 3649279.
273 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, ClearData) {
274   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
275   DisableVerifier();
276
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));
284
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));
300 }
301
302 // TCM ID - 3686300.
303 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
304                        kWebKitUsesUniversalDetector) {
305   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
306   ASSERT_TRUE(BooleanPrefMatches(prefs::kWebKitUsesUniversalDetector));
307
308   ChangeBooleanPref(0, prefs::kWebKitUsesUniversalDetector);
309   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
310   ASSERT_TRUE(BooleanPrefMatches(prefs::kWebKitUsesUniversalDetector));
311 }
312
313 // TCM ID - 3673298.
314 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kDefaultCharset) {
315   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
316   ASSERT_TRUE(StringPrefMatches(prefs::kDefaultCharset));
317
318   ChangeStringPref(0, prefs::kDefaultCharset, "Thai");
319   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
320   ASSERT_TRUE(StringPrefMatches(prefs::kDefaultCharset));
321 }
322
323 // TCM ID - 3653296.
324 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
325                        kBlockThirdPartyCookies) {
326   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
327   ASSERT_TRUE(BooleanPrefMatches(prefs::kBlockThirdPartyCookies));
328
329   ChangeBooleanPref(0, prefs::kBlockThirdPartyCookies);
330   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
331   ASSERT_TRUE(BooleanPrefMatches(prefs::kBlockThirdPartyCookies));
332 }
333
334 // TCM ID - 7297279.
335 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
336                        kClearSiteDataOnExit) {
337   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
338   ASSERT_TRUE(BooleanPrefMatches(prefs::kClearSiteDataOnExit));
339
340   ChangeBooleanPref(0, prefs::kClearSiteDataOnExit);
341   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
342   ASSERT_TRUE(BooleanPrefMatches(prefs::kClearSiteDataOnExit));
343 }
344
345 // TCM ID - 7306184.
346 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
347                        kSafeBrowsingEnabled) {
348   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
349   ASSERT_TRUE(BooleanPrefMatches(prefs::kSafeBrowsingEnabled));
350
351   ChangeBooleanPref(0, prefs::kSafeBrowsingEnabled);
352   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
353   ASSERT_TRUE(BooleanPrefMatches(prefs::kSafeBrowsingEnabled));
354 }
355
356 // TCM ID - 3624302.
357 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
358                        kAutofillAuxiliaryProfilesEnabled) {
359   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
360   DisableVerifier();
361
362   ASSERT_TRUE(
363       BooleanPrefMatches(autofill::prefs::kAutofillAuxiliaryProfilesEnabled));
364
365   ChangeBooleanPref(0, autofill::prefs::kAutofillAuxiliaryProfilesEnabled);
366   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
367
368   // kAutofillAuxiliaryProfilesEnabled is only synced on Mac.
369 #if defined(OS_MACOSX)
370   ASSERT_TRUE(
371       BooleanPrefMatches(autofill::prefs::kAutofillAuxiliaryProfilesEnabled));
372 #else
373   ASSERT_FALSE(
374       BooleanPrefMatches(autofill::prefs::kAutofillAuxiliaryProfilesEnabled));
375 #endif  // OS_MACOSX
376 }
377
378 // TCM ID - 3717298.
379 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kPromptForDownload) {
380   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
381   ASSERT_TRUE(BooleanPrefMatches(prefs::kPromptForDownload));
382
383   ChangeBooleanPref(0, prefs::kPromptForDownload);
384   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
385   ASSERT_TRUE(BooleanPrefMatches(prefs::kPromptForDownload));
386 }
387
388 // TCM ID - 3729263.
389 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
390                        kPrefTranslateLanguageBlacklist) {
391   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
392   ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableTranslate));
393
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"));
401
402   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
403   ASSERT_TRUE(translate_client1_prefs->IsBlockedLanguage("fr"));
404
405   translate_client0_prefs->UnblockLanguage("fr");
406   ASSERT_FALSE(translate_client0_prefs->IsBlockedLanguage("fr"));
407
408   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
409   ASSERT_FALSE(translate_client1_prefs->IsBlockedLanguage("fr"));
410 }
411
412 // TCM ID - 7307195.
413 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
414                        kPrefTranslateWhitelists) {
415   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
416   ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableTranslate));
417
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"));
425
426   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
427   ASSERT_TRUE(translate_client1_prefs->IsLanguagePairWhitelisted("en", "bg"));
428
429   translate_client0_prefs->RemoveLanguagePairFromWhitelist("en", "bg");
430   ASSERT_FALSE(translate_client0_prefs->IsLanguagePairWhitelisted("en", "bg"));
431
432   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
433   ASSERT_FALSE(translate_client1_prefs->IsLanguagePairWhitelisted("en", "bg"));
434 }
435
436 // TCM ID - 3625298.
437 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
438                        kPrefTranslateSiteBlacklist) {
439   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
440   ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableTranslate));
441
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));
451
452   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
453   ASSERT_TRUE(translate_client1_prefs->IsSiteBlacklisted(host));
454
455   translate_client0_prefs->RemoveSiteFromBlacklist(host);
456   ASSERT_FALSE(translate_client0_prefs->IsSiteBlacklisted(host));
457
458   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
459   ASSERT_FALSE(translate_client1_prefs->IsSiteBlacklisted(host));
460 }
461
462 // TCM ID - 6515252.
463 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
464                        kExtensionsUIDeveloperMode) {
465   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
466   ASSERT_TRUE(BooleanPrefMatches(prefs::kExtensionsUIDeveloperMode));
467
468   ChangeBooleanPref(0, prefs::kExtensionsUIDeveloperMode);
469   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
470   ASSERT_TRUE(BooleanPrefMatches(prefs::kExtensionsUIDeveloperMode));
471 }
472
473 // TCM ID - 7583816
474 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kAcceptLanguages) {
475   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
476   DisableVerifier();
477   ASSERT_TRUE(StringPrefMatches(prefs::kAcceptLanguages));
478
479   AppendStringPref(0, prefs::kAcceptLanguages, ",ar");
480   AppendStringPref(1, prefs::kAcceptLanguages, ",fr");
481   ASSERT_TRUE(AwaitQuiescence());
482   ASSERT_TRUE(StringPrefMatches(prefs::kAcceptLanguages));
483
484   ChangeStringPref(0, prefs::kAcceptLanguages, "en-US");
485   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
486   ASSERT_TRUE(StringPrefMatches(prefs::kAcceptLanguages));
487
488   ChangeStringPref(0, prefs::kAcceptLanguages, "ar,en-US");
489   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
490   ASSERT_TRUE(StringPrefMatches(prefs::kAcceptLanguages));
491 }
492
493 // TCM ID - 7590682
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));
498
499   ChangeBooleanPref(0, prefs::kUsesSystemTheme);
500   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
501   ASSERT_FALSE(BooleanPrefMatches(prefs::kUsesSystemTheme));
502 }
503 #endif  // TOOLKIT_GTK
504
505 // TCM ID - 6473347.
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));
510
511   ChangeBooleanPref(0, prefs::kTapToClickEnabled);
512   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
513   ASSERT_TRUE(BooleanPrefMatches(prefs::kTapToClickEnabled));
514
515   ChangeBooleanPref(1, prefs::kTapToClickEnabled);
516   ASSERT_TRUE(GetClient(1)->AwaitMutualSyncCycleCompletion(GetClient(0)));
517   ASSERT_TRUE(BooleanPrefMatches(prefs::kTapToClickEnabled));
518 }
519 #endif  // OS_CHROMEOS
520
521 // TCM ID - 6458824.
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));
526
527   ChangeBooleanPref(0, prefs::kEnableAutoScreenLock);
528   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
529   ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableAutoScreenLock));
530
531   ChangeBooleanPref(1, prefs::kEnableAutoScreenLock);
532   ASSERT_TRUE(GetClient(1)->AwaitMutualSyncCycleCompletion(GetClient(0)));
533   ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableAutoScreenLock));
534 }
535 #endif  // OS_CHROMEOS
536
537 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
538                        SingleClientEnabledEncryption) {
539   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
540
541   ASSERT_TRUE(EnableEncryption(0));
542   ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
543   ASSERT_TRUE(IsEncryptionComplete(0));
544   ASSERT_TRUE(IsEncryptionComplete(1));
545 }
546
547 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
548                        SingleClientEnabledEncryptionAndChanged) {
549   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
550   ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
551
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));
558 }
559
560 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
561                        BothClientsEnabledEncryption) {
562   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
563
564   ASSERT_TRUE(EnableEncryption(0));
565   ASSERT_TRUE(EnableEncryption(1));
566   ASSERT_TRUE(AwaitQuiescence());
567   ASSERT_TRUE(IsEncryptionComplete(0));
568   ASSERT_TRUE(IsEncryptionComplete(1));
569 }
570
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));
576
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));
586 }
587
588 IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
589                        SingleClientEnabledEncryptionAndChangedMultipleTimes) {
590   ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
591   ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
592
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));
599
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));
604 }