two_client_preferences_sync_test.cc revision eb525c5499e34cc9c4b825d6d9e75bb07cc06ace
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/values.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/sync/profile_sync_service_harness.h"
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/sync/test/integration/preferences_helper.h"
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/sync/test/integration/sync_test.h"
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/browser/translate/translate_prefs.h"
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/common/pref_names.h"
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
127d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)using preferences_helper::AppendStringPref;
132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)using preferences_helper::BooleanPrefMatches;
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)using preferences_helper::ChangeBooleanPref;
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using preferences_helper::ChangeIntegerPref;
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)using preferences_helper::ChangeInt64Pref;
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using preferences_helper::ChangeListPref;
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)using preferences_helper::ChangeStringPref;
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)using preferences_helper::GetPrefs;
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)using preferences_helper::IntegerPrefMatches;
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)using preferences_helper::Int64PrefMatches;
22c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochusing preferences_helper::ListPrefMatches;
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)using preferences_helper::StringPrefMatches;
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class TwoClientPreferencesSyncTest : public SyncTest {
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public:
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  TwoClientPreferencesSyncTest() : SyncTest(TWO_CLIENT) {}
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual ~TwoClientPreferencesSyncTest() {}
29010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private:
312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(TwoClientPreferencesSyncTest);
322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
340529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// TCM ID - 7306186.
350529e5d033099cbfc42635f6f6183833b09dff6eBen MurdochIN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                       kHomePageIsNewTabPage) {
370529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  ChangeBooleanPref(0, prefs::kHomePageIsNewTabPage);
41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}
445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// TCM ID - 7260488.
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, Race) {
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DisableVerifier();
495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  ASSERT_TRUE(StringPrefMatches(prefs::kHomePage));
515d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  ChangeStringPref(0, prefs::kHomePage, "http://www.google.com/0");
535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  ChangeStringPref(1, prefs::kHomePage,"http://www.google.com/1");
545d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  ASSERT_TRUE(AwaitQuiescence());
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(StringPrefMatches(prefs::kHomePage));
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
58cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// TCM ID - 3649278.
59cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
60116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                       kPasswordManagerEnabled) {
61cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
62cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  ASSERT_TRUE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
63cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
64cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  ChangeBooleanPref(0, prefs::kPasswordManagerEnabled);
65116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
66cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  ASSERT_TRUE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
67cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// TCM ID - 3699293.
702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                       kSyncKeepEverythingSynced) {
722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  DisableVerifier();
745f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
755f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncKeepEverythingSynced));
76c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncThemes));
775c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
785c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  GetClient(0)->DisableSyncForDatatype(syncer::THEMES);
795c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  ASSERT_FALSE(BooleanPrefMatches(prefs::kSyncKeepEverythingSynced));
80010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)}
815c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
825c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// TCM ID - 3661290.
835c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo LiuIN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, DisablePreferences) {
84a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
850529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  DisableVerifier();
86a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
87a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncPreferences));
88a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  ASSERT_TRUE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  GetClient(1)->DisableSyncForDatatype(syncer::PREFERENCES);
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ChangeBooleanPref(0, prefs::kPasswordManagerEnabled);
922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ASSERT_TRUE(GetClient(0)->AwaitFullSyncCompletion("Changed a preference."));
932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ASSERT_FALSE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  GetClient(1)->EnableSyncForDatatype(syncer::PREFERENCES);
962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ASSERT_TRUE(AwaitQuiescence());
972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ASSERT_TRUE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// TCM ID - 3664292.
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, DisableSync) {
1020529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
103a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  DisableVerifier();
104a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
105a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncPreferences));
106a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  ASSERT_TRUE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
107a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  ASSERT_TRUE(BooleanPrefMatches(prefs::kShowHomeButton));
108a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
109a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  GetClient(1)->DisableSyncForAllDatatypes();
110c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  ChangeBooleanPref(0, prefs::kPasswordManagerEnabled);
111c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  ASSERT_TRUE(GetClient(0)->AwaitFullSyncCompletion("Changed a preference."));
1122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ASSERT_FALSE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
1132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ChangeBooleanPref(1, prefs::kShowHomeButton);
1152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ASSERT_FALSE(BooleanPrefMatches(prefs::kShowHomeButton));
1162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  GetClient(1)->EnableSyncForAllDatatypes();
1182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ASSERT_TRUE(AwaitQuiescence());
119c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  ASSERT_TRUE(BooleanPrefMatches(prefs::kPasswordManagerEnabled));
120c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  ASSERT_TRUE(BooleanPrefMatches(prefs::kShowHomeButton));
1212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
1222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// TCM ID - 3604297.
124c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, SignInDialog) {
1252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
1262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  DisableVerifier();
1272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncPreferences));
1292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncBookmarks));
1302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncThemes));
1312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncExtensions));
132010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncAutofill));
1332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ASSERT_TRUE(BooleanPrefMatches(prefs::kSyncKeepEverythingSynced));
1342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  GetClient(0)->DisableSyncForDatatype(syncer::PREFERENCES);
1362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  GetClient(1)->EnableSyncForDatatype(syncer::PREFERENCES);
1372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  GetClient(0)->DisableSyncForDatatype(syncer::AUTOFILL);
1382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  GetClient(1)->EnableSyncForDatatype(syncer::AUTOFILL);
1392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  GetClient(0)->DisableSyncForDatatype(syncer::BOOKMARKS);
1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  GetClient(1)->EnableSyncForDatatype(syncer::BOOKMARKS);
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  GetClient(0)->DisableSyncForDatatype(syncer::EXTENSIONS);
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  GetClient(1)->EnableSyncForDatatype(syncer::EXTENSIONS);
1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  GetClient(0)->DisableSyncForDatatype(syncer::THEMES);
1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  GetClient(1)->EnableSyncForDatatype(syncer::THEMES);
1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(AwaitQuiescence());
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_FALSE(BooleanPrefMatches(prefs::kSyncPreferences));
1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  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::kSearchInstantEnabled));
169
170  ChangeBooleanPref(0, prefs::kSearchInstantEnabled);
171
172  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
173  ASSERT_TRUE(BooleanPrefMatches(prefs::kSearchInstantEnabled));
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.IsBlockedLanguage("fr"));
405  translate_client0_prefs.BlockLanguage("fr");
406  ASSERT_TRUE(translate_client0_prefs.IsBlockedLanguage("fr"));
407
408  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
409  ASSERT_TRUE(translate_client1_prefs.IsBlockedLanguage("fr"));
410
411  translate_client0_prefs.UnblockLanguage("fr");
412  ASSERT_FALSE(translate_client0_prefs.IsBlockedLanguage("fr"));
413
414  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
415  ASSERT_FALSE(translate_client1_prefs.IsBlockedLanguage("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  ASSERT_TRUE(StringPrefMatches(prefs::kAcceptLanguages));
485
486  ChangeStringPref(0, prefs::kAcceptLanguages, "en-US");
487  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
488  ASSERT_TRUE(StringPrefMatches(prefs::kAcceptLanguages));
489
490  ChangeStringPref(0, prefs::kAcceptLanguages, "ar,en-US");
491  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
492  ASSERT_TRUE(StringPrefMatches(prefs::kAcceptLanguages));
493}
494
495// TCM ID - 7590682
496#if defined(TOOLKIT_GTK)
497IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kUsesSystemTheme) {
498  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
499  ASSERT_TRUE(BooleanPrefMatches(prefs::kUsesSystemTheme));
500
501  ChangeBooleanPref(0, prefs::kUsesSystemTheme);
502  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
503  ASSERT_FALSE(BooleanPrefMatches(prefs::kUsesSystemTheme));
504}
505#endif  // TOOLKIT_GTK
506
507// TCM ID - 6473347.
508#if defined(OS_CHROMEOS)
509IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kTapToClickEnabled) {
510  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
511  ASSERT_TRUE(BooleanPrefMatches(prefs::kTapToClickEnabled));
512
513  ChangeBooleanPref(0, prefs::kTapToClickEnabled);
514  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
515  ASSERT_TRUE(BooleanPrefMatches(prefs::kTapToClickEnabled));
516
517  ChangeBooleanPref(1, prefs::kTapToClickEnabled);
518  ASSERT_TRUE(GetClient(1)->AwaitMutualSyncCycleCompletion(GetClient(0)));
519  ASSERT_TRUE(BooleanPrefMatches(prefs::kTapToClickEnabled));
520}
521#endif  // OS_CHROMEOS
522
523// TCM ID - 6458824.
524#if defined(OS_CHROMEOS)
525IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest, kEnableScreenLock) {
526  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
527  ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableScreenLock));
528
529  ChangeBooleanPref(0, prefs::kEnableScreenLock);
530  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
531  ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableScreenLock));
532
533  ChangeBooleanPref(1, prefs::kEnableScreenLock);
534  ASSERT_TRUE(GetClient(1)->AwaitMutualSyncCycleCompletion(GetClient(0)));
535  ASSERT_TRUE(BooleanPrefMatches(prefs::kEnableScreenLock));
536}
537#endif  // OS_CHROMEOS
538
539IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
540                       SingleClientEnabledEncryption) {
541  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
542
543  ASSERT_TRUE(EnableEncryption(0, syncer::PREFERENCES));
544  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
545  ASSERT_TRUE(IsEncrypted(0, syncer::PREFERENCES));
546  ASSERT_TRUE(IsEncrypted(1, syncer::PREFERENCES));
547}
548
549IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
550                       SingleClientEnabledEncryptionAndChanged) {
551  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
552  ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
553
554  ChangeBooleanPref(0, prefs::kHomePageIsNewTabPage);
555  ASSERT_TRUE(EnableEncryption(0, syncer::PREFERENCES));
556  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
557  ASSERT_TRUE(IsEncrypted(0, syncer::PREFERENCES));
558  ASSERT_TRUE(IsEncrypted(1, syncer::PREFERENCES));
559  ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
560}
561
562IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
563                       BothClientsEnabledEncryption) {
564  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
565
566  ASSERT_TRUE(EnableEncryption(0, syncer::PREFERENCES));
567  ASSERT_TRUE(EnableEncryption(1, syncer::PREFERENCES));
568  ASSERT_TRUE(AwaitQuiescence());
569  ASSERT_TRUE(IsEncrypted(0, syncer::PREFERENCES));
570  ASSERT_TRUE(IsEncrypted(1, syncer::PREFERENCES));
571}
572
573IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
574                       SingleClientEnabledEncryptionBothChanged) {
575  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
576  ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
577  ASSERT_TRUE(StringPrefMatches(prefs::kHomePage));
578
579  ASSERT_TRUE(EnableEncryption(0, syncer::PREFERENCES));
580  ChangeBooleanPref(0, prefs::kHomePageIsNewTabPage);
581  ChangeStringPref(1, prefs::kHomePage, "http://www.google.com/1");
582  ASSERT_TRUE(AwaitQuiescence());
583  ASSERT_TRUE(IsEncrypted(0, syncer::PREFERENCES));
584  ASSERT_TRUE(IsEncrypted(1, syncer::PREFERENCES));
585  ASSERT_TRUE(BooleanPrefMatches(
586      prefs::kHomePageIsNewTabPage));
587  ASSERT_TRUE(StringPrefMatches(prefs::kHomePage));
588}
589
590IN_PROC_BROWSER_TEST_F(TwoClientPreferencesSyncTest,
591                       SingleClientEnabledEncryptionAndChangedMultipleTimes) {
592  ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
593  ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
594
595  ChangeBooleanPref(0, prefs::kHomePageIsNewTabPage);
596  ASSERT_TRUE(EnableEncryption(0, syncer::PREFERENCES));
597  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
598  ASSERT_TRUE(IsEncrypted(0, syncer::PREFERENCES));
599  ASSERT_TRUE(IsEncrypted(1, syncer::PREFERENCES));
600  ASSERT_TRUE(BooleanPrefMatches(prefs::kHomePageIsNewTabPage));
601
602  ASSERT_TRUE(BooleanPrefMatches(prefs::kShowHomeButton));
603  ChangeBooleanPref(0, prefs::kShowHomeButton);
604  ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
605  ASSERT_TRUE(BooleanPrefMatches(prefs::kShowHomeButton));
606}
607