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