Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(382)

Side by Side Diff: chrome/browser/sync/test/integration/two_client_bookmarks_sync_test.cc

Issue 474273003: sync: Refactor bookmarks integration tests Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Use RunLoop for favicon wait Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/sync/test/integration/sync_test.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/rand_util.h" 5 #include "base/rand_util.h"
6 #include "chrome/browser/profiles/profile.h" 6 #include "chrome/browser/profiles/profile.h"
7 #include "chrome/browser/sync/test/integration/bookmarks_helper.h" 7 #include "chrome/browser/sync/test/integration/bookmarks_helper.h"
8 #include "chrome/browser/sync/test/integration/passwords_helper.h" 8 #include "chrome/browser/sync/test/integration/passwords_helper.h"
9 #include "chrome/browser/sync/test/integration/profile_sync_service_harness.h" 9 #include "chrome/browser/sync/test/integration/profile_sync_service_harness.h"
10 #include "chrome/browser/sync/test/integration/sync_integration_test_util.h" 10 #include "chrome/browser/sync/test/integration/sync_integration_test_util.h"
11 #include "chrome/browser/sync/test/integration/sync_test.h" 11 #include "chrome/browser/sync/test/integration/sync_test.h"
12 #include "sync/internal_api/public/sessions/sync_session_snapshot.h" 12 #include "sync/internal_api/public/sessions/sync_session_snapshot.h"
13 #include "sync/test/fake_server/bookmark_entity_builder.h"
14 #include "sync/test/fake_server/entity_builder_factory.h"
13 #include "ui/base/layout.h" 15 #include "ui/base/layout.h"
14 16
15 using bookmarks_helper::AddFolder; 17 using bookmarks_helper::AddFolder;
16 using bookmarks_helper::AddURL; 18 using bookmarks_helper::AddURL;
17 using bookmarks_helper::AllModelsMatch; 19 using bookmarks_helper::AllModelsMatch;
18 using bookmarks_helper::AllModelsMatchVerifier; 20 using bookmarks_helper::AllModelsMatchVerifier;
19 using bookmarks_helper::ContainsDuplicateBookmarks; 21 using bookmarks_helper::ContainsDuplicateBookmarks;
20 using bookmarks_helper::CountBookmarksWithTitlesMatching; 22 using bookmarks_helper::CountBookmarksWithTitlesMatching;
21 using bookmarks_helper::CreateFavicon; 23 using bookmarks_helper::CreateFavicon;
22 using bookmarks_helper::GetBookmarkBarNode; 24 using bookmarks_helper::GetBookmarkBarNode;
23 using bookmarks_helper::GetOtherNode; 25 using bookmarks_helper::GetOtherNode;
24 using bookmarks_helper::GetSyncedBookmarksNode; 26 using bookmarks_helper::GetSyncedBookmarksNode;
25 using bookmarks_helper::GetUniqueNodeByURL; 27 using bookmarks_helper::GetUniqueNodeByURL;
26 using bookmarks_helper::HasNodeWithURL; 28 using bookmarks_helper::HasNodeWithURL;
27 using bookmarks_helper::IndexedFolderName; 29 using bookmarks_helper::IndexedFolderName;
28 using bookmarks_helper::IndexedSubfolderName; 30 using bookmarks_helper::IndexedSubfolderName;
29 using bookmarks_helper::IndexedSubsubfolderName; 31 using bookmarks_helper::IndexedSubsubfolderName;
30 using bookmarks_helper::IndexedURL; 32 using bookmarks_helper::IndexedURL;
31 using bookmarks_helper::IndexedURLTitle; 33 using bookmarks_helper::IndexedURLTitle;
32 using bookmarks_helper::Move; 34 using bookmarks_helper::Move;
33 using bookmarks_helper::Remove; 35 using bookmarks_helper::Remove;
34 using bookmarks_helper::RemoveAll; 36 using bookmarks_helper::RemoveAll;
35 using bookmarks_helper::ReverseChildOrder; 37 using bookmarks_helper::ReverseChildOrder;
36 using bookmarks_helper::SetFavicon; 38 using bookmarks_helper::SetFavicon;
37 using bookmarks_helper::SetTitle; 39 using bookmarks_helper::SetTitle;
38 using bookmarks_helper::SetURL; 40 using bookmarks_helper::SetURL;
39 using bookmarks_helper::SortChildren; 41 using bookmarks_helper::SortChildren;
40 using passwords_helper::SetDecryptionPassphrase; 42 using passwords_helper::SetDecryptionPassphrase;
41 using passwords_helper::SetEncryptionPassphrase; 43 using passwords_helper::SetEncryptionPassphrase;
42 using sync_integration_test_util::AwaitCommitActivityCompletion;
43 using sync_integration_test_util::AwaitPassphraseAccepted; 44 using sync_integration_test_util::AwaitPassphraseAccepted;
44 using sync_integration_test_util::AwaitPassphraseRequired; 45 using sync_integration_test_util::AwaitPassphraseRequired;
45 46
47 using bookmarks_helper::AwaitAllModelsMatch;
48 using bookmarks_helper::AwaitAllModelsMatchVerifier;
49
46 const std::string kGenericURL = "http://www.host.ext:1234/path/filename"; 50 const std::string kGenericURL = "http://www.host.ext:1234/path/filename";
47 const std::string kGenericURLTitle = "URL Title"; 51 const std::string kGenericURLTitle = "URL Title";
48 const std::string kGenericFolderName = "Folder Name"; 52 const std::string kGenericFolderName = "Folder Name";
49 const std::string kGenericSubfolderName = "Subfolder Name"; 53 const std::string kGenericSubfolderName = "Subfolder Name";
50 const std::string kGenericSubsubfolderName = "Subsubfolder Name"; 54 const std::string kGenericSubsubfolderName = "Subsubfolder Name";
51 const char* kValidPassphrase = "passphrase!"; 55 const char* kValidPassphrase = "passphrase!";
52 56
53 class TwoClientBookmarksSyncTest : public SyncTest { 57 class TwoClientBookmarksSyncTest : public SyncTest {
54 public: 58 public:
55 TwoClientBookmarksSyncTest() : SyncTest(TWO_CLIENT) {} 59 TwoClientBookmarksSyncTest() : SyncTest(TWO_CLIENT) {}
56 virtual ~TwoClientBookmarksSyncTest() {} 60 virtual ~TwoClientBookmarksSyncTest() {}
57 61
62 virtual bool TestUsesSelfNotifications() OVERRIDE { return false; }
63
58 private: 64 private:
59 DISALLOW_COPY_AND_ASSIGN(TwoClientBookmarksSyncTest); 65 DISALLOW_COPY_AND_ASSIGN(TwoClientBookmarksSyncTest);
60 }; 66 };
61 67
62 class LegacyTwoClientBookmarksSyncTest : public SyncTest {
63 public:
64 LegacyTwoClientBookmarksSyncTest() : SyncTest(TWO_CLIENT_LEGACY) {}
65 virtual ~LegacyTwoClientBookmarksSyncTest() {}
66
67 private:
68 DISALLOW_COPY_AND_ASSIGN(LegacyTwoClientBookmarksSyncTest);
69 };
70
71 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, Sanity) { 68 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, Sanity) {
72 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 69 ASSERT_TRUE(SetupSync());
73 ASSERT_TRUE(AllModelsMatchVerifier()); 70 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
74 71
75 GURL google_url("http://www.google.com"); 72 GURL google_url("http://www.google.com");
76 ASSERT_TRUE(AddURL(0, "Google", google_url) != NULL); 73 ASSERT_TRUE(AddURL(0, "Google", google_url) != NULL);
77 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 74 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
78 ASSERT_TRUE(AddURL(1, "Yahoo", GURL("http://www.yahoo.com")) != NULL); 75 ASSERT_TRUE(AddURL(1, "Yahoo", GURL("http://www.yahoo.com")) != NULL);
79 ASSERT_TRUE(GetClient(1)->AwaitMutualSyncCycleCompletion(GetClient(0))); 76 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
80 ASSERT_TRUE(AllModelsMatchVerifier());
81 77
82 const BookmarkNode* new_folder = AddFolder(0, 2, "New Folder"); 78 const BookmarkNode* new_folder = AddFolder(0, 2, "New Folder");
83 Move(0, GetUniqueNodeByURL(0, google_url), new_folder, 0); 79 Move(0, GetUniqueNodeByURL(0, google_url), new_folder, 0);
84 SetTitle(0, GetBookmarkBarNode(0)->GetChild(0), "Yahoo!!"); 80 SetTitle(0, GetBookmarkBarNode(0)->GetChild(0), "Yahoo!!");
85 ASSERT_TRUE(AddURL(0, GetBookmarkBarNode(0), 1, "CNN", 81 ASSERT_TRUE(AddURL(0, GetBookmarkBarNode(0), 1, "CNN",
86 GURL("http://www.cnn.com")) != NULL); 82 GURL("http://www.cnn.com")) != NULL);
87 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 83 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
88 ASSERT_TRUE(AllModelsMatchVerifier());
89 84
90 ASSERT_TRUE(AddURL(1, "Facebook", GURL("http://www.facebook.com")) != NULL); 85 ASSERT_TRUE(AddURL(1, "Facebook", GURL("http://www.facebook.com")) != NULL);
91 ASSERT_TRUE(GetClient(1)->AwaitMutualSyncCycleCompletion(GetClient(0))); 86 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
92 ASSERT_TRUE(AllModelsMatchVerifier());
93 87
94 SortChildren(1, GetBookmarkBarNode(1)); 88 SortChildren(1, GetBookmarkBarNode(1));
95 ASSERT_TRUE(GetClient(1)->AwaitMutualSyncCycleCompletion(GetClient(0))); 89 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
96 ASSERT_TRUE(AllModelsMatchVerifier());
97 90
98 DisableVerifier(); 91 DisableVerifier();
99 SetTitle(0, GetUniqueNodeByURL(0, google_url), "Google++"); 92 SetTitle(0, GetUniqueNodeByURL(0, google_url), "Google++");
100 SetTitle(1, GetUniqueNodeByURL(1, google_url), "Google--"); 93 SetTitle(1, GetUniqueNodeByURL(1, google_url), "Google--");
101 ASSERT_TRUE(AwaitQuiescence()); 94 ASSERT_TRUE(AwaitAllModelsMatch());
102 ASSERT_TRUE(AllModelsMatch());
103 } 95 }
104 96
105 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, SimultaneousURLChanges) { 97 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, SimultaneousURLChanges) {
106 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 98 ASSERT_TRUE(SetupSync());
107 ASSERT_TRUE(AllModelsMatchVerifier()); 99 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
108 100
109 GURL initial_url("http://www.google.com"); 101 GURL initial_url("http://www.google.com");
110 GURL second_url("http://www.google.com/abc"); 102 GURL second_url("http://www.google.com/abc");
111 GURL third_url("http://www.google.com/def"); 103 GURL third_url("http://www.google.com/def");
112 std::string title = "Google"; 104 std::string title = "Google";
113 105
114 ASSERT_TRUE(AddURL(0, title, initial_url) != NULL); 106 ASSERT_TRUE(AddURL(0, title, initial_url) != NULL);
115 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 107 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
116 108
117 DisableVerifier(); 109 DisableVerifier();
118 ASSERT_TRUE(SetURL( 110 ASSERT_TRUE(SetURL(
119 0, GetUniqueNodeByURL(0, initial_url), second_url) != NULL); 111 0, GetUniqueNodeByURL(0, initial_url), second_url) != NULL);
120 ASSERT_TRUE(SetURL( 112 ASSERT_TRUE(SetURL(
121 1, GetUniqueNodeByURL(1, initial_url), third_url) != NULL); 113 1, GetUniqueNodeByURL(1, initial_url), third_url) != NULL);
122 ASSERT_TRUE(AwaitQuiescence()); 114 ASSERT_TRUE(AwaitAllModelsMatch());
123 ASSERT_TRUE(AllModelsMatch());
124 115
125 SetTitle(0, GetBookmarkBarNode(0)->GetChild(0), "Google1"); 116 SetTitle(0, GetBookmarkBarNode(0)->GetChild(0), "Google1");
126 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 117 ASSERT_TRUE(AwaitAllModelsMatch());
127 ASSERT_TRUE(AllModelsMatch());
128 } 118 }
129 119
130 // Test Scribe ID - 370558. 120 // Test Scribe ID - 370558.
131 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, SC_AddFirstFolder) { 121 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, SC_AddFirstFolder) {
132 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 122 ASSERT_TRUE(SetupSync());
133 ASSERT_TRUE(AllModelsMatchVerifier()); 123 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
134 124
135 ASSERT_TRUE(AddFolder(0, kGenericFolderName) != NULL); 125 ASSERT_TRUE(AddFolder(0, kGenericFolderName) != NULL);
136 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 126 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
137 ASSERT_TRUE(AllModelsMatchVerifier());
138 } 127 }
139 128
140 // Test Scribe ID - 370559. 129 // Test Scribe ID - 370559.
141 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 130 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
142 SC_AddFirstBMWithoutFavicon) { 131 SC_AddFirstBMWithoutFavicon) {
143 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 132 ASSERT_TRUE(SetupSync());
144 ASSERT_TRUE(AllModelsMatchVerifier()); 133 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
145 134
146 ASSERT_TRUE(AddURL(0, kGenericURLTitle, GURL(kGenericURL)) != NULL); 135 ASSERT_TRUE(AddURL(0, kGenericURLTitle, GURL(kGenericURL)) != NULL);
147 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 136 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
148 ASSERT_TRUE(AllModelsMatchVerifier());
149 } 137 }
150 138
151 // Test Scribe ID - 370489. 139 // Test Scribe ID - 370489.
152 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, SC_AddFirstBMWithFavicon) { 140 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, SC_AddFirstBMWithFavicon) {
153 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 141 ASSERT_TRUE(SetupSync());
154 ASSERT_TRUE(AllModelsMatchVerifier()); 142 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
155 143
156 const GURL page_url(kGenericURL); 144 const GURL page_url(kGenericURL);
157 const GURL icon_url("http://www.google.com/favicon.ico"); 145 const GURL icon_url("http://www.google.com/favicon.ico");
158 146
159 const BookmarkNode* bookmark = AddURL(0, kGenericURLTitle, page_url); 147 const BookmarkNode* bookmark = AddURL(0, kGenericURLTitle, page_url);
160 148
161 ASSERT_TRUE(bookmark != NULL); 149 ASSERT_TRUE(bookmark != NULL);
162 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 150 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
163 SetFavicon(0, bookmark, icon_url, CreateFavicon(SK_ColorWHITE), 151 SetFavicon(0, bookmark, icon_url, CreateFavicon(SK_ColorWHITE),
164 bookmarks_helper::FROM_UI); 152 bookmarks_helper::FROM_UI);
165 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 153 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
166 ASSERT_TRUE(AllModelsMatchVerifier());
167 } 154 }
168 155
169 // Test that the history service logic for not losing the hidpi versions of 156 // Test that the history service logic for not losing the hidpi versions of
170 // favicons as a result of sync does not result in dropping sync updates. 157 // favicons as a result of sync does not result in dropping sync updates.
171 // In particular, the synced 16x16 favicon bitmap should overwrite 16x16 158 // In particular, the synced 16x16 favicon bitmap should overwrite 16x16
172 // favicon bitmaps on all clients. (Though non-16x16 favicon bitmaps 159 // favicon bitmaps on all clients. (Though non-16x16 favicon bitmaps
173 // are unchanged). 160 // are unchanged).
174 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, SC_SetFaviconHiDPI) { 161 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, SC_SetFaviconHiDPI) {
175 // Set the supported scale factors to include 2x such that CreateFavicon() 162 // Set the supported scale factors to include 2x such that CreateFavicon()
176 // creates a favicon with hidpi representations and that methods in the 163 // creates a favicon with hidpi representations and that methods in the
177 // FaviconService request hidpi favicons. 164 // FaviconService request hidpi favicons.
178 std::vector<ui::ScaleFactor> supported_scale_factors; 165 std::vector<ui::ScaleFactor> supported_scale_factors;
179 supported_scale_factors.push_back(ui::SCALE_FACTOR_100P); 166 supported_scale_factors.push_back(ui::SCALE_FACTOR_100P);
180 supported_scale_factors.push_back(ui::SCALE_FACTOR_200P); 167 supported_scale_factors.push_back(ui::SCALE_FACTOR_200P);
181 ui::SetSupportedScaleFactors(supported_scale_factors); 168 ui::SetSupportedScaleFactors(supported_scale_factors);
182 169
183 const GURL page_url(kGenericURL); 170 const GURL page_url(kGenericURL);
184 const GURL icon_url1("http://www.google.com/favicon1.ico"); 171 const GURL icon_url1("http://www.google.com/favicon1.ico");
185 const GURL icon_url2("http://www.google.com/favicon2.ico"); 172 const GURL icon_url2("http://www.google.com/favicon2.ico");
186 173
187 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 174 ASSERT_TRUE(SetupSync());
188 ASSERT_TRUE(AllModelsMatchVerifier()); 175 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
189 176
190 const BookmarkNode* bookmark0 = AddURL(0, kGenericURLTitle, page_url); 177 const BookmarkNode* bookmark0 = AddURL(0, kGenericURLTitle, page_url);
191 ASSERT_TRUE(bookmark0 != NULL); 178 ASSERT_TRUE(bookmark0 != NULL);
192 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 179 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
193 SetFavicon(0, bookmark0, icon_url1, CreateFavicon(SK_ColorWHITE), 180 SetFavicon(0, bookmark0, icon_url1, CreateFavicon(SK_ColorWHITE),
194 bookmarks_helper::FROM_UI); 181 bookmarks_helper::FROM_UI);
195 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 182 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
196 ASSERT_TRUE(AllModelsMatchVerifier());
197 183
198 const BookmarkNode* bookmark1 = GetUniqueNodeByURL(1, page_url); 184 const BookmarkNode* bookmark1 = GetUniqueNodeByURL(1, page_url);
199 SetFavicon(1, bookmark1, icon_url1, CreateFavicon(SK_ColorBLUE), 185 SetFavicon(1, bookmark1, icon_url1, CreateFavicon(SK_ColorBLUE),
200 bookmarks_helper::FROM_UI); 186 bookmarks_helper::FROM_UI);
201 ASSERT_TRUE(GetClient(1)->AwaitMutualSyncCycleCompletion(GetClient(0))); 187 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
202 ASSERT_TRUE(AllModelsMatchVerifier());
203 188
204 SetFavicon(0, bookmark0, icon_url2, CreateFavicon(SK_ColorGREEN), 189 SetFavicon(0, bookmark0, icon_url2, CreateFavicon(SK_ColorGREEN),
205 bookmarks_helper::FROM_UI); 190 bookmarks_helper::FROM_UI);
206 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 191 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
207 ASSERT_TRUE(AllModelsMatchVerifier());
208 } 192 }
209 193
210 // Test Scribe ID - 370560. 194 // Test Scribe ID - 370560.
211 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, SC_AddNonHTTPBMs) { 195 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, SC_AddNonHTTPBMs) {
212 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 196 ASSERT_TRUE(SetupSync());
213 ASSERT_TRUE(AllModelsMatchVerifier()); 197 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
214 198
215 ASSERT_TRUE(AddURL( 199 ASSERT_TRUE(AddURL(
216 0, "FTP UR", GURL("ftp://user:password@host:1234/path")) != NULL); 200 0, "FTP UR", GURL("ftp://user:password@host:1234/path")) != NULL);
217 ASSERT_TRUE(AddURL(0, "File UR", GURL("file://host/path")) != NULL); 201 ASSERT_TRUE(AddURL(0, "File UR", GURL("file://host/path")) != NULL);
218 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 202 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
219 ASSERT_TRUE(AllModelsMatchVerifier());
220 } 203 }
221 204
222 // Test Scribe ID - 370561. 205 // Test Scribe ID - 370561.
223 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 206 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
224 SC_AddFirstBMUnderFolder) { 207 SC_AddFirstBMUnderFolder) {
225 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 208 ASSERT_TRUE(SetupSync());
226 ASSERT_TRUE(AllModelsMatchVerifier()); 209 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
227 210
228 const BookmarkNode* folder = AddFolder(0, kGenericFolderName); 211 const BookmarkNode* folder = AddFolder(0, kGenericFolderName);
229 ASSERT_TRUE(folder != NULL); 212 ASSERT_TRUE(folder != NULL);
230 ASSERT_TRUE(AddURL( 213 ASSERT_TRUE(AddURL(
231 0, folder, 0, kGenericURLTitle, GURL(kGenericURL)) != NULL); 214 0, folder, 0, kGenericURLTitle, GURL(kGenericURL)) != NULL);
232 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 215 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
233 ASSERT_TRUE(AllModelsMatchVerifier());
234 } 216 }
235 217
236 // Test Scribe ID - 370562. 218 // Test Scribe ID - 370562.
237 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 219 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
238 SC_AddSeveralBMsUnderBMBarAndOtherBM) { 220 SC_AddSeveralBMsUnderBMBarAndOtherBM) {
239 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 221 ASSERT_TRUE(SetupSync());
240 ASSERT_TRUE(AllModelsMatchVerifier()); 222 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
241 223
242 for (int i = 0; i < 20; ++i) { 224 for (int i = 0; i < 20; ++i) {
243 std::string title = IndexedURLTitle(i); 225 std::string title = IndexedURLTitle(i);
244 GURL url = GURL(IndexedURL(i)); 226 GURL url = GURL(IndexedURL(i));
245 ASSERT_TRUE(AddURL(0, i, title, url) != NULL); 227 ASSERT_TRUE(AddURL(0, i, title, url) != NULL);
246 ASSERT_TRUE(AddURL( 228 ASSERT_TRUE(AddURL(
247 0, GetOtherNode(0), i, title, url) != NULL); 229 0, GetOtherNode(0), i, title, url) != NULL);
248 } 230 }
249 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 231 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
250 ASSERT_TRUE(AllModelsMatchVerifier());
251 } 232 }
252 233
253 // Test Scribe ID - 370563. 234 // Test Scribe ID - 370563.
254 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 235 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
255 SC_AddSeveralBMsAndFolders) { 236 SC_AddSeveralBMsAndFolders) {
256 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 237 ASSERT_TRUE(SetupSync());
257 ASSERT_TRUE(AllModelsMatchVerifier()); 238 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
258 239
259 for (int i = 0; i < 15; ++i) { 240 for (int i = 0; i < 15; ++i) {
260 if (base::RandDouble() > 0.6) { 241 if (base::RandDouble() > 0.6) {
261 std::string title = IndexedURLTitle(i); 242 std::string title = IndexedURLTitle(i);
262 GURL url = GURL(IndexedURL(i)); 243 GURL url = GURL(IndexedURL(i));
263 ASSERT_TRUE(AddURL(0, i, title, url) != NULL); 244 ASSERT_TRUE(AddURL(0, i, title, url) != NULL);
264 } else { 245 } else {
265 std::string title = IndexedFolderName(i); 246 std::string title = IndexedFolderName(i);
266 const BookmarkNode* folder = AddFolder(0, i, title); 247 const BookmarkNode* folder = AddFolder(0, i, title);
267 ASSERT_TRUE(folder != NULL); 248 ASSERT_TRUE(folder != NULL);
268 if (base::RandDouble() > 0.4) { 249 if (base::RandDouble() > 0.4) {
269 for (int i = 0; i < 20; ++i) { 250 for (int i = 0; i < 20; ++i) {
270 std::string title = IndexedURLTitle(i); 251 std::string title = IndexedURLTitle(i);
271 GURL url = GURL(IndexedURL(i)); 252 GURL url = GURL(IndexedURL(i));
272 ASSERT_TRUE( 253 ASSERT_TRUE(
273 AddURL(0, folder, i, title, url) != NULL); 254 AddURL(0, folder, i, title, url) != NULL);
274 } 255 }
275 } 256 }
276 } 257 }
277 } 258 }
278 for (int i = 0; i < 10; i++) { 259 for (int i = 0; i < 10; i++) {
279 std::string title = IndexedURLTitle(i); 260 std::string title = IndexedURLTitle(i);
280 GURL url = GURL(IndexedURL(i)); 261 GURL url = GURL(IndexedURL(i));
281 ASSERT_TRUE(AddURL(0, GetOtherNode(0), i, title, url) != NULL); 262 ASSERT_TRUE(AddURL(0, GetOtherNode(0), i, title, url) != NULL);
282 } 263 }
283 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 264 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
284 ASSERT_TRUE(AllModelsMatchVerifier());
285 } 265 }
286 266
287 // Test Scribe ID - 370641. 267 // Test Scribe ID - 370641.
288 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 268 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
289 SC_DuplicateBMWithDifferentURLSameName) { 269 SC_DuplicateBMWithDifferentURLSameName) {
290 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 270 ASSERT_TRUE(SetupSync());
291 ASSERT_TRUE(AllModelsMatchVerifier()); 271 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
292 272
293 GURL url0 = GURL(IndexedURL(0)); 273 GURL url0 = GURL(IndexedURL(0));
294 GURL url1 = GURL(IndexedURL(1)); 274 GURL url1 = GURL(IndexedURL(1));
295 ASSERT_TRUE(AddURL(0, kGenericURLTitle, url0) != NULL); 275 ASSERT_TRUE(AddURL(0, kGenericURLTitle, url0) != NULL);
296 ASSERT_TRUE(AddURL(0, kGenericURLTitle, url1) != NULL); 276 ASSERT_TRUE(AddURL(0, kGenericURLTitle, url1) != NULL);
297 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 277 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
298 ASSERT_TRUE(AllModelsMatchVerifier());
299 } 278 }
300 279
301 // Test Scribe ID - 370639 - Add bookmarks with different name and same URL. 280 // Test Scribe ID - 370639 - Add bookmarks with different name and same URL.
302 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 281 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
303 SC_DuplicateBookmarksWithSameURL) { 282 SC_DuplicateBookmarksWithSameURL) {
304 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 283 ASSERT_TRUE(SetupSync());
305 ASSERT_TRUE(AllModelsMatchVerifier()); 284 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
306 285
307 std::string title0 = IndexedURLTitle(0); 286 std::string title0 = IndexedURLTitle(0);
308 std::string title1 = IndexedURLTitle(1); 287 std::string title1 = IndexedURLTitle(1);
309 ASSERT_TRUE(AddURL(0, title0, GURL(kGenericURL)) != NULL); 288 ASSERT_TRUE(AddURL(0, title0, GURL(kGenericURL)) != NULL);
310 ASSERT_TRUE(AddURL(0, title1, GURL(kGenericURL)) != NULL); 289 ASSERT_TRUE(AddURL(0, title1, GURL(kGenericURL)) != NULL);
311 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 290 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
312 ASSERT_TRUE(AllModelsMatchVerifier());
313 } 291 }
314 292
315 // Test Scribe ID - 371817. 293 // Test Scribe ID - 371817.
316 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, SC_RenameBMName) { 294 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, SC_RenameBMName) {
317 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 295 ASSERT_TRUE(SetupSync());
318 ASSERT_TRUE(AllModelsMatchVerifier()); 296 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
319 297
320 std::string title = IndexedURLTitle(1); 298 std::string title = IndexedURLTitle(1);
321 const BookmarkNode* bookmark = AddURL(0, title, GURL(kGenericURL)); 299 const BookmarkNode* bookmark = AddURL(0, title, GURL(kGenericURL));
322 ASSERT_TRUE(bookmark != NULL); 300 ASSERT_TRUE(bookmark != NULL);
323 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 301 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
324 ASSERT_TRUE(AllModelsMatchVerifier());
325 302
326 std::string new_title = IndexedURLTitle(2); 303 std::string new_title = IndexedURLTitle(2);
327 SetTitle(0, bookmark, new_title); 304 SetTitle(0, bookmark, new_title);
328 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 305 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
329 ASSERT_TRUE(AllModelsMatchVerifier());
330 } 306 }
331 307
332 // Test Scribe ID - 371822. 308 // Test Scribe ID - 371822.
333 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, SC_RenameBMURL) { 309 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, SC_RenameBMURL) {
334 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 310 ASSERT_TRUE(SetupSync());
335 ASSERT_TRUE(AllModelsMatchVerifier()); 311 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
336 312
337 GURL url = GURL(IndexedURL(1)); 313 GURL url = GURL(IndexedURL(1));
338 const BookmarkNode* bookmark = AddURL(0, kGenericURLTitle, url); 314 const BookmarkNode* bookmark = AddURL(0, kGenericURLTitle, url);
339 ASSERT_TRUE(bookmark != NULL); 315 ASSERT_TRUE(bookmark != NULL);
340 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 316 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
341 ASSERT_TRUE(AllModelsMatchVerifier());
342 317
343 GURL new_url = GURL(IndexedURL(2)); 318 GURL new_url = GURL(IndexedURL(2));
344 ASSERT_TRUE(SetURL(0, bookmark, new_url) != NULL); 319 ASSERT_TRUE(SetURL(0, bookmark, new_url) != NULL);
345 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 320 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
346 ASSERT_TRUE(AllModelsMatchVerifier());
347 } 321 }
348 322
349 323
350 // Test Scribe ID - 371818 - Renaming the same bookmark name twice. 324 // Test Scribe ID - 371818 - Renaming the same bookmark name twice.
351 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 325 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
352 SC_TwiceRenamingBookmarkName) { 326 SC_TwiceRenamingBookmarkName) {
353 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 327 ASSERT_TRUE(SetupSync());
354 ASSERT_TRUE(AllModelsMatchVerifier()); 328 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
355 329
356 std::string title = IndexedURLTitle(1); 330 std::string title = IndexedURLTitle(1);
357 const BookmarkNode* bookmark = AddURL(0, title, GURL(kGenericURL)); 331 const BookmarkNode* bookmark = AddURL(0, title, GURL(kGenericURL));
358 ASSERT_TRUE(bookmark != NULL); 332 ASSERT_TRUE(bookmark != NULL);
359 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 333 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
360 ASSERT_TRUE(AllModelsMatchVerifier());
361 334
362 std::string new_title = IndexedURLTitle(2); 335 std::string new_title = IndexedURLTitle(2);
363 SetTitle(0, bookmark, new_title); 336 SetTitle(0, bookmark, new_title);
364 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 337 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
365 ASSERT_TRUE(AllModelsMatchVerifier());
366 338
367 SetTitle(0, bookmark, title); 339 SetTitle(0, bookmark, title);
368 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 340 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
369 ASSERT_TRUE(AllModelsMatchVerifier());
370 } 341 }
371 342
372 // Test Scribe ID - 371823 - Renaming the same bookmark URL twice. 343 // Test Scribe ID - 371823 - Renaming the same bookmark URL twice.
373 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 344 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
374 SC_TwiceRenamingBookmarkURL) { 345 SC_TwiceRenamingBookmarkURL) {
375 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 346 ASSERT_TRUE(SetupSync());
376 ASSERT_TRUE(AllModelsMatchVerifier()); 347 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
377 348
378 GURL url = GURL(IndexedURL(1)); 349 GURL url = GURL(IndexedURL(1));
379 const BookmarkNode* bookmark = AddURL(0, kGenericURLTitle, url); 350 const BookmarkNode* bookmark = AddURL(0, kGenericURLTitle, url);
380 ASSERT_TRUE(bookmark != NULL); 351 ASSERT_TRUE(bookmark != NULL);
381 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 352 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
382 ASSERT_TRUE(AllModelsMatchVerifier());
383 353
384 GURL new_url = GURL(IndexedURL(2)); 354 GURL new_url = GURL(IndexedURL(2));
385 ASSERT_TRUE(SetURL(0, bookmark, new_url) != NULL); 355 ASSERT_TRUE(SetURL(0, bookmark, new_url) != NULL);
386 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 356 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
387 ASSERT_TRUE(AllModelsMatchVerifier());
388 357
389 ASSERT_TRUE(SetURL(0, bookmark, url) != NULL); 358 ASSERT_TRUE(SetURL(0, bookmark, url) != NULL);
390 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 359 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
391 ASSERT_TRUE(AllModelsMatchVerifier());
392 } 360 }
393 361
394 // Test Scribe ID - 371824. 362 // Test Scribe ID - 371824.
395 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, SC_RenameBMFolder) { 363 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, SC_RenameBMFolder) {
396 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 364 ASSERT_TRUE(SetupSync());
397 ASSERT_TRUE(AllModelsMatchVerifier()); 365 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
398 366
399 std::string title = IndexedFolderName(1); 367 std::string title = IndexedFolderName(1);
400 const BookmarkNode* folder = AddFolder(0, title); 368 const BookmarkNode* folder = AddFolder(0, title);
401 ASSERT_TRUE(AddURL( 369 ASSERT_TRUE(AddURL(
402 0, folder, 0, kGenericURLTitle, GURL(kGenericURL)) != NULL); 370 0, folder, 0, kGenericURLTitle, GURL(kGenericURL)) != NULL);
403 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 371 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
404 ASSERT_TRUE(AllModelsMatchVerifier());
405 372
406 std::string new_title = IndexedFolderName(2); 373 std::string new_title = IndexedFolderName(2);
407 SetTitle(0, folder, new_title); 374 SetTitle(0, folder, new_title);
408 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 375 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
409 ASSERT_TRUE(AllModelsMatchVerifier());
410 } 376 }
411 377
412 // Test Scribe ID - 371825. 378 // Test Scribe ID - 371825.
413 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, SC_RenameEmptyBMFolder) { 379 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, SC_RenameEmptyBMFolder) {
414 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 380 ASSERT_TRUE(SetupSync());
415 ASSERT_TRUE(AllModelsMatchVerifier()); 381 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
416 382
417 std::string title = IndexedFolderName(1); 383 std::string title = IndexedFolderName(1);
418 const BookmarkNode* folder = AddFolder(0, title); 384 const BookmarkNode* folder = AddFolder(0, title);
419 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 385 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
420 ASSERT_TRUE(AllModelsMatchVerifier());
421 386
422 std::string new_title = IndexedFolderName(2); 387 std::string new_title = IndexedFolderName(2);
423 SetTitle(0, folder, new_title); 388 SetTitle(0, folder, new_title);
424 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 389 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
425 ASSERT_TRUE(AllModelsMatchVerifier());
426 } 390 }
427 391
428 // Test Scribe ID - 371826. 392 // Test Scribe ID - 371826.
429 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 393 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
430 SC_RenameBMFolderWithLongHierarchy) { 394 SC_RenameBMFolderWithLongHierarchy) {
431 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 395 ASSERT_TRUE(SetupSync());
432 ASSERT_TRUE(AllModelsMatchVerifier()); 396 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
433 397
434 std::string title = IndexedFolderName(1); 398 std::string title = IndexedFolderName(1);
435 const BookmarkNode* folder = AddFolder(0, title); 399 const BookmarkNode* folder = AddFolder(0, title);
436 ASSERT_TRUE(folder != NULL); 400 ASSERT_TRUE(folder != NULL);
437 for (int i = 0; i < 120; ++i) { 401 for (int i = 0; i < 120; ++i) {
438 if (base::RandDouble() > 0.15) { 402 if (base::RandDouble() > 0.15) {
439 std::string title = IndexedURLTitle(i); 403 std::string title = IndexedURLTitle(i);
440 GURL url = GURL(IndexedURL(i)); 404 GURL url = GURL(IndexedURL(i));
441 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL); 405 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL);
442 } else { 406 } else {
443 std::string title = IndexedSubfolderName(i); 407 std::string title = IndexedSubfolderName(i);
444 ASSERT_TRUE(AddFolder(0, folder, i, title) != NULL); 408 ASSERT_TRUE(AddFolder(0, folder, i, title) != NULL);
445 } 409 }
446 } 410 }
447 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 411 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
448 ASSERT_TRUE(AllModelsMatchVerifier());
449 412
450 std::string new_title = IndexedFolderName(2); 413 std::string new_title = IndexedFolderName(2);
451 SetTitle(0, folder, new_title); 414 SetTitle(0, folder, new_title);
452 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 415 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
453 ASSERT_TRUE(AllModelsMatchVerifier());
454 } 416 }
455 417
456 // Test Scribe ID - 371827. 418 // Test Scribe ID - 371827.
457 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 419 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
458 SC_RenameBMFolderThatHasParentAndChildren) { 420 SC_RenameBMFolderThatHasParentAndChildren) {
459 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 421 ASSERT_TRUE(SetupSync());
460 ASSERT_TRUE(AllModelsMatchVerifier()); 422 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
461 423
462 const BookmarkNode* folder = AddFolder(0, kGenericFolderName); 424 const BookmarkNode* folder = AddFolder(0, kGenericFolderName);
463 ASSERT_TRUE(folder != NULL); 425 ASSERT_TRUE(folder != NULL);
464 for (int i = 1; i < 15; ++i) { 426 for (int i = 1; i < 15; ++i) {
465 std::string title = IndexedURLTitle(i); 427 std::string title = IndexedURLTitle(i);
466 GURL url = GURL(IndexedURL(i)); 428 GURL url = GURL(IndexedURL(i));
467 ASSERT_TRUE(AddURL(0, i, title, url) != NULL); 429 ASSERT_TRUE(AddURL(0, i, title, url) != NULL);
468 } 430 }
469 std::string title = IndexedSubfolderName(1); 431 std::string title = IndexedSubfolderName(1);
470 const BookmarkNode* subfolder = AddFolder(0, folder, 0, title); 432 const BookmarkNode* subfolder = AddFolder(0, folder, 0, title);
471 for (int i = 0; i < 120; ++i) { 433 for (int i = 0; i < 120; ++i) {
472 if (base::RandDouble() > 0.15) { 434 if (base::RandDouble() > 0.15) {
473 std::string title = IndexedURLTitle(i); 435 std::string title = IndexedURLTitle(i);
474 GURL url = GURL(IndexedURL(i)); 436 GURL url = GURL(IndexedURL(i));
475 ASSERT_TRUE(AddURL(0, subfolder, i, title, url) != NULL); 437 ASSERT_TRUE(AddURL(0, subfolder, i, title, url) != NULL);
476 } else { 438 } else {
477 std::string title = IndexedSubsubfolderName(i); 439 std::string title = IndexedSubsubfolderName(i);
478 ASSERT_TRUE(AddFolder(0, subfolder, i, title) != NULL); 440 ASSERT_TRUE(AddFolder(0, subfolder, i, title) != NULL);
479 } 441 }
480 } 442 }
481 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 443 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
482 ASSERT_TRUE(AllModelsMatchVerifier());
483 444
484 std::string new_title = IndexedSubfolderName(2); 445 std::string new_title = IndexedSubfolderName(2);
485 SetTitle(0, subfolder, new_title); 446 SetTitle(0, subfolder, new_title);
486 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 447 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
487 ASSERT_TRUE(AllModelsMatchVerifier());
488 } 448 }
489 449
490 // Test Scribe ID - 371828. 450 // Test Scribe ID - 371828.
491 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, SC_RenameBMNameAndURL) { 451 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, SC_RenameBMNameAndURL) {
492 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 452 ASSERT_TRUE(SetupSync());
493 ASSERT_TRUE(AllModelsMatchVerifier()); 453 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
494 454
495 GURL url = GURL(IndexedURL(1)); 455 GURL url = GURL(IndexedURL(1));
496 std::string title = IndexedURLTitle(1); 456 std::string title = IndexedURLTitle(1);
497 const BookmarkNode* bookmark = AddURL(0, title, url); 457 const BookmarkNode* bookmark = AddURL(0, title, url);
498 ASSERT_TRUE(bookmark != NULL); 458 ASSERT_TRUE(bookmark != NULL);
499 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 459 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
500 ASSERT_TRUE(AllModelsMatchVerifier());
501 460
502 GURL new_url = GURL(IndexedURL(2)); 461 GURL new_url = GURL(IndexedURL(2));
503 std::string new_title = IndexedURLTitle(2); 462 std::string new_title = IndexedURLTitle(2);
504 bookmark = SetURL(0, bookmark, new_url); 463 bookmark = SetURL(0, bookmark, new_url);
505 ASSERT_TRUE(bookmark != NULL); 464 ASSERT_TRUE(bookmark != NULL);
506 SetTitle(0, bookmark, new_title); 465 SetTitle(0, bookmark, new_title);
507 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 466 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
508 ASSERT_TRUE(AllModelsMatchVerifier());
509 } 467 }
510 468
511 // Test Scribe ID - 371832. 469 // Test Scribe ID - 371832.
512 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 470 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
513 SC_DeleteBMEmptyAccountAfterwards) { 471 SC_DeleteBMEmptyAccountAfterwards) {
514 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 472 ASSERT_TRUE(SetupSync());
515 ASSERT_TRUE(AllModelsMatchVerifier()); 473 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
516 474
517 ASSERT_TRUE(AddURL( 475 ASSERT_TRUE(AddURL(
518 0, kGenericURLTitle, GURL(kGenericURL)) != NULL); 476 0, kGenericURLTitle, GURL(kGenericURL)) != NULL);
519 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 477 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
520 ASSERT_TRUE(AllModelsMatchVerifier());
521 478
522 Remove(0, GetBookmarkBarNode(0), 0); 479 Remove(0, GetBookmarkBarNode(0), 0);
523 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 480 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
524 ASSERT_TRUE(AllModelsMatchVerifier());
525 } 481 }
526 482
527 // Test Scribe ID - 371833. 483 // Test Scribe ID - 371833.
528 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 484 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
529 SC_DelBMNonEmptyAccountAfterwards) { 485 SC_DelBMNonEmptyAccountAfterwards) {
530 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 486 ASSERT_TRUE(SetupSync());
531 ASSERT_TRUE(AllModelsMatchVerifier()); 487 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
532 488
533 for (int i = 0; i < 20; ++i) { 489 for (int i = 0; i < 20; ++i) {
534 std::string title = IndexedURLTitle(i); 490 std::string title = IndexedURLTitle(i);
535 GURL url = GURL(IndexedURL(i)); 491 GURL url = GURL(IndexedURL(i));
536 ASSERT_TRUE(AddURL(0, i, title, url) != NULL); 492 ASSERT_TRUE(AddURL(0, i, title, url) != NULL);
537 } 493 }
538 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 494 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
539 ASSERT_TRUE(AllModelsMatchVerifier());
540 495
541 Remove(0, GetBookmarkBarNode(0), 0); 496 Remove(0, GetBookmarkBarNode(0), 0);
542 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 497 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
543 ASSERT_TRUE(AllModelsMatchVerifier());
544 } 498 }
545 499
546 // Test Scribe ID - 371835. 500 // Test Scribe ID - 371835.
547 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 501 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
548 SC_DelFirstBMUnderBMFoldNonEmptyFoldAfterwards) { 502 SC_DelFirstBMUnderBMFoldNonEmptyFoldAfterwards) {
549 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 503 ASSERT_TRUE(SetupSync());
550 ASSERT_TRUE(AllModelsMatchVerifier()); 504 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
551 505
552 const BookmarkNode* folder = AddFolder(0, kGenericFolderName); 506 const BookmarkNode* folder = AddFolder(0, kGenericFolderName);
553 ASSERT_TRUE(folder != NULL); 507 ASSERT_TRUE(folder != NULL);
554 for (int i = 0; i < 10; ++i) { 508 for (int i = 0; i < 10; ++i) {
555 std::string title = IndexedURLTitle(i); 509 std::string title = IndexedURLTitle(i);
556 GURL url = GURL(IndexedURL(i)); 510 GURL url = GURL(IndexedURL(i));
557 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL); 511 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL);
558 } 512 }
559 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 513 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
560 ASSERT_TRUE(AllModelsMatchVerifier());
561 514
562 Remove(0, folder, 0); 515 Remove(0, folder, 0);
563 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 516 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
564 ASSERT_TRUE(AllModelsMatchVerifier());
565 } 517 }
566 518
567 // Test Scribe ID - 371836. 519 // Test Scribe ID - 371836.
568 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 520 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
569 SC_DelLastBMUnderBMFoldNonEmptyFoldAfterwards) { 521 SC_DelLastBMUnderBMFoldNonEmptyFoldAfterwards) {
570 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 522 ASSERT_TRUE(SetupSync());
571 ASSERT_TRUE(AllModelsMatchVerifier()); 523 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
572 524
573 const BookmarkNode* folder = AddFolder(0, kGenericFolderName); 525 const BookmarkNode* folder = AddFolder(0, kGenericFolderName);
574 ASSERT_TRUE(folder != NULL); 526 ASSERT_TRUE(folder != NULL);
575 for (int i = 0; i < 10; ++i) { 527 for (int i = 0; i < 10; ++i) {
576 std::string title = IndexedURLTitle(i); 528 std::string title = IndexedURLTitle(i);
577 GURL url = GURL(IndexedURL(i)); 529 GURL url = GURL(IndexedURL(i));
578 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL); 530 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL);
579 } 531 }
580 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 532 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
581 ASSERT_TRUE(AllModelsMatchVerifier());
582 533
583 Remove(0, folder, folder->child_count() - 1); 534 Remove(0, folder, folder->child_count() - 1);
584 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 535 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
585 ASSERT_TRUE(AllModelsMatchVerifier());
586 } 536 }
587 537
588 // Test Scribe ID - 371856. 538 // Test Scribe ID - 371856.
589 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 539 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
590 SC_DelMiddleBMUnderBMFoldNonEmptyFoldAfterwards) { 540 SC_DelMiddleBMUnderBMFoldNonEmptyFoldAfterwards) {
591 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 541 ASSERT_TRUE(SetupSync());
592 ASSERT_TRUE(AllModelsMatchVerifier()); 542 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
593 543
594 const BookmarkNode* folder = AddFolder(0, kGenericFolderName); 544 const BookmarkNode* folder = AddFolder(0, kGenericFolderName);
595 ASSERT_TRUE(folder != NULL); 545 ASSERT_TRUE(folder != NULL);
596 for (int i = 0; i < 10; ++i) { 546 for (int i = 0; i < 10; ++i) {
597 std::string title = IndexedURLTitle(i); 547 std::string title = IndexedURLTitle(i);
598 GURL url = GURL(IndexedURL(i)); 548 GURL url = GURL(IndexedURL(i));
599 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL); 549 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL);
600 } 550 }
601 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 551 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
602 ASSERT_TRUE(AllModelsMatchVerifier());
603 552
604 Remove(0, folder, 4); 553 Remove(0, folder, 4);
605 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 554 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
606 ASSERT_TRUE(AllModelsMatchVerifier());
607 } 555 }
608 556
609 // Test Scribe ID - 371857. 557 // Test Scribe ID - 371857.
610 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 558 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
611 SC_DelBMsUnderBMFoldEmptyFolderAfterwards) { 559 SC_DelBMsUnderBMFoldEmptyFolderAfterwards) {
612 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 560 ASSERT_TRUE(SetupSync());
613 ASSERT_TRUE(AllModelsMatchVerifier()); 561 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
614 562
615 const BookmarkNode* folder = AddFolder(0, kGenericFolderName); 563 const BookmarkNode* folder = AddFolder(0, kGenericFolderName);
616 ASSERT_TRUE(folder != NULL); 564 ASSERT_TRUE(folder != NULL);
617 for (int i = 0; i < 10; ++i) { 565 for (int i = 0; i < 10; ++i) {
618 std::string title = IndexedURLTitle(i); 566 std::string title = IndexedURLTitle(i);
619 GURL url = GURL(IndexedURL(i)); 567 GURL url = GURL(IndexedURL(i));
620 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL); 568 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL);
621 } 569 }
622 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 570 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
623 ASSERT_TRUE(AllModelsMatchVerifier());
624 571
625 int child_count = folder->child_count(); 572 int child_count = folder->child_count();
626 for (int i = 0; i < child_count; ++i) { 573 for (int i = 0; i < child_count; ++i) {
627 Remove(0, folder, 0); 574 Remove(0, folder, 0);
628 } 575 }
629 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 576 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
630 ASSERT_TRUE(AllModelsMatchVerifier());
631 } 577 }
632 578
633 // Test Scribe ID - 371858. 579 // Test Scribe ID - 371858.
634 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 580 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
635 SC_DelEmptyBMFoldEmptyAccountAfterwards) { 581 SC_DelEmptyBMFoldEmptyAccountAfterwards) {
636 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 582 ASSERT_TRUE(SetupSync());
637 ASSERT_TRUE(AllModelsMatchVerifier()); 583 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
638 584
639 ASSERT_TRUE(AddFolder(0, kGenericFolderName) != NULL); 585 ASSERT_TRUE(AddFolder(0, kGenericFolderName) != NULL);
640 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 586 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
641 ASSERT_TRUE(AllModelsMatchVerifier());
642 587
643 Remove(0, GetBookmarkBarNode(0), 0); 588 Remove(0, GetBookmarkBarNode(0), 0);
644 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 589 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
645 ASSERT_TRUE(AllModelsMatchVerifier());
646 } 590 }
647 591
648 // Test Scribe ID - 371869. 592 // Test Scribe ID - 371869.
649 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 593 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
650 SC_DelEmptyBMFoldNonEmptyAccountAfterwards) { 594 SC_DelEmptyBMFoldNonEmptyAccountAfterwards) {
651 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 595 ASSERT_TRUE(SetupSync());
652 ASSERT_TRUE(AllModelsMatchVerifier()); 596 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
653 597
654 ASSERT_TRUE(AddFolder(0, kGenericFolderName) != NULL); 598 ASSERT_TRUE(AddFolder(0, kGenericFolderName) != NULL);
655 for (int i = 1; i < 15; ++i) { 599 for (int i = 1; i < 15; ++i) {
656 if (base::RandDouble() > 0.6) { 600 if (base::RandDouble() > 0.6) {
657 std::string title = IndexedURLTitle(i); 601 std::string title = IndexedURLTitle(i);
658 GURL url = GURL(IndexedURL(i)); 602 GURL url = GURL(IndexedURL(i));
659 ASSERT_TRUE(AddURL(0, i, title, url) != NULL); 603 ASSERT_TRUE(AddURL(0, i, title, url) != NULL);
660 } else { 604 } else {
661 std::string title = IndexedFolderName(i); 605 std::string title = IndexedFolderName(i);
662 ASSERT_TRUE(AddFolder(0, i, title) != NULL); 606 ASSERT_TRUE(AddFolder(0, i, title) != NULL);
663 } 607 }
664 } 608 }
665 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 609 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
666 ASSERT_TRUE(AllModelsMatchVerifier());
667 610
668 Remove(0, GetBookmarkBarNode(0), 0); 611 Remove(0, GetBookmarkBarNode(0), 0);
669 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 612 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
670 ASSERT_TRUE(AllModelsMatchVerifier());
671 } 613 }
672 614
673 // Test Scribe ID - 371879. 615 // Test Scribe ID - 371879.
674 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 616 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
675 SC_DelBMFoldWithBMsNonEmptyAccountAfterwards) { 617 SC_DelBMFoldWithBMsNonEmptyAccountAfterwards) {
676 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 618 ASSERT_TRUE(SetupSync());
677 ASSERT_TRUE(AllModelsMatchVerifier()); 619 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
678 620
679 ASSERT_TRUE(AddURL(0, kGenericURLTitle, GURL(kGenericURL)) != NULL); 621 ASSERT_TRUE(AddURL(0, kGenericURLTitle, GURL(kGenericURL)) != NULL);
680 const BookmarkNode* folder = AddFolder(0, 1, kGenericFolderName); 622 const BookmarkNode* folder = AddFolder(0, 1, kGenericFolderName);
681 ASSERT_TRUE(folder != NULL); 623 ASSERT_TRUE(folder != NULL);
682 for (int i = 2; i < 10; ++i) { 624 for (int i = 2; i < 10; ++i) {
683 if (base::RandDouble() > 0.6) { 625 if (base::RandDouble() > 0.6) {
684 std::string title = IndexedURLTitle(i); 626 std::string title = IndexedURLTitle(i);
685 GURL url = GURL(IndexedURL(i)); 627 GURL url = GURL(IndexedURL(i));
686 ASSERT_TRUE(AddURL(0, i, title, url) != NULL); 628 ASSERT_TRUE(AddURL(0, i, title, url) != NULL);
687 } else { 629 } else {
688 std::string title = IndexedFolderName(i); 630 std::string title = IndexedFolderName(i);
689 ASSERT_TRUE(AddFolder(0, i, title) != NULL); 631 ASSERT_TRUE(AddFolder(0, i, title) != NULL);
690 } 632 }
691 } 633 }
692 for (int i = 0; i < 15; ++i) { 634 for (int i = 0; i < 15; ++i) {
693 std::string title = IndexedURLTitle(i); 635 std::string title = IndexedURLTitle(i);
694 GURL url = GURL(IndexedURL(i)); 636 GURL url = GURL(IndexedURL(i));
695 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL); 637 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL);
696 } 638 }
697 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 639 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
698 ASSERT_TRUE(AllModelsMatchVerifier());
699 640
700 Remove(0, GetBookmarkBarNode(0), 1); 641 Remove(0, GetBookmarkBarNode(0), 1);
701 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 642 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
702 ASSERT_TRUE(AllModelsMatchVerifier());
703 } 643 }
704 644
705 // Test Scribe ID - 371880. 645 // Test Scribe ID - 371880.
706 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 646 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
707 SC_DelBMFoldWithBMsAndBMFoldsNonEmptyACAfterwards) { 647 SC_DelBMFoldWithBMsAndBMFoldsNonEmptyACAfterwards) {
708 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 648 ASSERT_TRUE(SetupSync());
709 ASSERT_TRUE(AllModelsMatchVerifier()); 649 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
710 650
711 ASSERT_TRUE(AddURL(0, kGenericURLTitle, GURL(kGenericURL)) != NULL); 651 ASSERT_TRUE(AddURL(0, kGenericURLTitle, GURL(kGenericURL)) != NULL);
712 const BookmarkNode* folder = AddFolder(0, 1, kGenericFolderName); 652 const BookmarkNode* folder = AddFolder(0, 1, kGenericFolderName);
713 ASSERT_TRUE(folder != NULL); 653 ASSERT_TRUE(folder != NULL);
714 for (int i = 2; i < 10; ++i) { 654 for (int i = 2; i < 10; ++i) {
715 if (base::RandDouble() > 0.6) { 655 if (base::RandDouble() > 0.6) {
716 std::string title = IndexedURLTitle(i); 656 std::string title = IndexedURLTitle(i);
717 GURL url = GURL(IndexedURL(i)); 657 GURL url = GURL(IndexedURL(i));
718 ASSERT_TRUE(AddURL(0, i, title, url) != NULL); 658 ASSERT_TRUE(AddURL(0, i, title, url) != NULL);
719 } else { 659 } else {
(...skipping 20 matching lines...) Expand all
740 0, subfolder, j, title, url) != NULL); 680 0, subfolder, j, title, url) != NULL);
741 } else { 681 } else {
742 std::string title = IndexedSubsubfolderName(j); 682 std::string title = IndexedSubsubfolderName(j);
743 ASSERT_TRUE(AddFolder( 683 ASSERT_TRUE(AddFolder(
744 0, subfolder, j, title) != NULL); 684 0, subfolder, j, title) != NULL);
745 } 685 }
746 } 686 }
747 } 687 }
748 } 688 }
749 } 689 }
750 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 690 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
751 ASSERT_TRUE(AllModelsMatchVerifier());
752 691
753 Remove(0, GetBookmarkBarNode(0), 1); 692 Remove(0, GetBookmarkBarNode(0), 1);
754 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 693 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
755 ASSERT_TRUE(AllModelsMatchVerifier());
756 } 694 }
757 695
758 // Test Scribe ID - 371882. 696 // Test Scribe ID - 371882.
759 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 697 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
760 SC_DelBMFoldWithParentAndChildrenBMsAndBMFolds) { 698 SC_DelBMFoldWithParentAndChildrenBMsAndBMFolds) {
761 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 699 ASSERT_TRUE(SetupSync());
762 ASSERT_TRUE(AllModelsMatchVerifier()); 700 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
763 701
764 const BookmarkNode* folder = AddFolder(0, kGenericFolderName); 702 const BookmarkNode* folder = AddFolder(0, kGenericFolderName);
765 ASSERT_TRUE(folder != NULL); 703 ASSERT_TRUE(folder != NULL);
766 for (int i = 1; i < 11; ++i) { 704 for (int i = 1; i < 11; ++i) {
767 std::string title = IndexedURLTitle(i); 705 std::string title = IndexedURLTitle(i);
768 GURL url = GURL(IndexedURL(i)); 706 GURL url = GURL(IndexedURL(i));
769 ASSERT_TRUE(AddURL(0, i, title, url) != NULL); 707 ASSERT_TRUE(AddURL(0, i, title, url) != NULL);
770 } 708 }
771 const BookmarkNode* subfolder = 709 const BookmarkNode* subfolder =
772 AddFolder(0, folder, 0, kGenericSubfolderName); 710 AddFolder(0, folder, 0, kGenericSubfolderName);
773 ASSERT_TRUE(subfolder != NULL); 711 ASSERT_TRUE(subfolder != NULL);
774 for (int i = 0; i < 30; ++i) { 712 for (int i = 0; i < 30; ++i) {
775 if (base::RandDouble() > 0.2) { 713 if (base::RandDouble() > 0.2) {
776 std::string title = IndexedURLTitle(i); 714 std::string title = IndexedURLTitle(i);
777 GURL url = GURL(IndexedURL(i)); 715 GURL url = GURL(IndexedURL(i));
778 ASSERT_TRUE(AddURL(0, subfolder, i, title, url) != NULL); 716 ASSERT_TRUE(AddURL(0, subfolder, i, title, url) != NULL);
779 } else { 717 } else {
780 std::string title = IndexedSubsubfolderName(i); 718 std::string title = IndexedSubsubfolderName(i);
781 ASSERT_TRUE(AddFolder(0, subfolder, i, title) != NULL); 719 ASSERT_TRUE(AddFolder(0, subfolder, i, title) != NULL);
782 } 720 }
783 } 721 }
784 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 722 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
785 ASSERT_TRUE(AllModelsMatchVerifier());
786 723
787 Remove(0, folder, 0); 724 Remove(0, folder, 0);
788 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 725 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
789 ASSERT_TRUE(AllModelsMatchVerifier());
790 } 726 }
791 727
792 // Test Scribe ID - 371931. 728 // Test Scribe ID - 371931.
793 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 729 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
794 SC_ReverseTheOrderOfTwoBMs) { 730 SC_ReverseTheOrderOfTwoBMs) {
795 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 731 ASSERT_TRUE(SetupSync());
796 ASSERT_TRUE(AllModelsMatchVerifier()); 732 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
797 733
798 GURL url0 = GURL(IndexedURL(0)); 734 GURL url0 = GURL(IndexedURL(0));
799 GURL url1 = GURL(IndexedURL(1)); 735 GURL url1 = GURL(IndexedURL(1));
800 std::string title0 = IndexedURLTitle(0); 736 std::string title0 = IndexedURLTitle(0);
801 std::string title1 = IndexedURLTitle(1); 737 std::string title1 = IndexedURLTitle(1);
802 const BookmarkNode* bookmark0 = AddURL(0, 0, title0, url0); 738 const BookmarkNode* bookmark0 = AddURL(0, 0, title0, url0);
803 const BookmarkNode* bookmark1 = AddURL(0, 1, title1, url1); 739 const BookmarkNode* bookmark1 = AddURL(0, 1, title1, url1);
804 ASSERT_TRUE(bookmark0 != NULL); 740 ASSERT_TRUE(bookmark0 != NULL);
805 ASSERT_TRUE(bookmark1 != NULL); 741 ASSERT_TRUE(bookmark1 != NULL);
806 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 742 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
807 ASSERT_TRUE(AllModelsMatchVerifier());
808 743
809 Move(0, bookmark0, GetBookmarkBarNode(0), 2); 744 Move(0, bookmark0, GetBookmarkBarNode(0), 2);
810 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 745 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
811 ASSERT_TRUE(AllModelsMatchVerifier());
812 } 746 }
813 747
814 // Test Scribe ID - 371933. 748 // Test Scribe ID - 371933.
815 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, SC_ReverseTheOrderOf10BMs) { 749 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, SC_ReverseTheOrderOf10BMs) {
816 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 750 ASSERT_TRUE(SetupSync());
817 ASSERT_TRUE(AllModelsMatchVerifier()); 751 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
818 752
819 for (int i = 0; i < 10; ++i) { 753 for (int i = 0; i < 10; ++i) {
820 std::string title = IndexedURLTitle(i); 754 std::string title = IndexedURLTitle(i);
821 GURL url = GURL(IndexedURL(i)); 755 GURL url = GURL(IndexedURL(i));
822 ASSERT_TRUE(AddURL(0, i, title, url) != NULL); 756 ASSERT_TRUE(AddURL(0, i, title, url) != NULL);
823 } 757 }
824 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 758 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
825 ASSERT_TRUE(AllModelsMatchVerifier());
826 759
827 ReverseChildOrder(0, GetBookmarkBarNode(0)); 760 ReverseChildOrder(0, GetBookmarkBarNode(0));
828 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 761 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
829 ASSERT_TRUE(AllModelsMatchVerifier());
830 } 762 }
831 763
832 // Test Scribe ID - 371954. 764 // Test Scribe ID - 371954.
833 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 765 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
834 SC_MovingBMsFromBMBarToBMFolder) { 766 SC_MovingBMsFromBMBarToBMFolder) {
835 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 767 ASSERT_TRUE(SetupSync());
836 ASSERT_TRUE(AllModelsMatchVerifier()); 768 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
837 769
838 ASSERT_TRUE(AddURL(0, kGenericURLTitle, GURL(kGenericURL)) != NULL); 770 ASSERT_TRUE(AddURL(0, kGenericURLTitle, GURL(kGenericURL)) != NULL);
839 const BookmarkNode* folder = AddFolder(0, 1, kGenericFolderName); 771 const BookmarkNode* folder = AddFolder(0, 1, kGenericFolderName);
840 ASSERT_TRUE(folder != NULL); 772 ASSERT_TRUE(folder != NULL);
841 for (int i = 2; i < 10; ++i) { 773 for (int i = 2; i < 10; ++i) {
842 std::string title = IndexedURLTitle(i); 774 std::string title = IndexedURLTitle(i);
843 GURL url = GURL(IndexedURL(i)); 775 GURL url = GURL(IndexedURL(i));
844 ASSERT_TRUE(AddURL(0, i, title, url) != NULL); 776 ASSERT_TRUE(AddURL(0, i, title, url) != NULL);
845 } 777 }
846 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 778 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
847 ASSERT_TRUE(AllModelsMatchVerifier());
848 779
849 int num_bookmarks_to_move = 780 int num_bookmarks_to_move =
850 GetBookmarkBarNode(0)->child_count() - 2; 781 GetBookmarkBarNode(0)->child_count() - 2;
851 for (int i = 0; i < num_bookmarks_to_move; ++i) { 782 for (int i = 0; i < num_bookmarks_to_move; ++i) {
852 Move( 783 Move(
853 0, GetBookmarkBarNode(0)->GetChild(2), folder, i); 784 0, GetBookmarkBarNode(0)->GetChild(2), folder, i);
854 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 785 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
855 ASSERT_TRUE(AllModelsMatchVerifier());
856 } 786 }
857 } 787 }
858 788
859 // Test Scribe ID - 371957. 789 // Test Scribe ID - 371957.
860 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 790 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
861 SC_MovingBMsFromBMFoldToBMBar) { 791 SC_MovingBMsFromBMFoldToBMBar) {
862 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 792 ASSERT_TRUE(SetupSync());
863 ASSERT_TRUE(AllModelsMatchVerifier()); 793 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
864 794
865 ASSERT_TRUE(AddURL(0, kGenericURLTitle, GURL(kGenericURL)) != NULL); 795 ASSERT_TRUE(AddURL(0, kGenericURLTitle, GURL(kGenericURL)) != NULL);
866 const BookmarkNode* folder = AddFolder(0, 1, kGenericFolderName); 796 const BookmarkNode* folder = AddFolder(0, 1, kGenericFolderName);
867 ASSERT_TRUE(folder != NULL); 797 ASSERT_TRUE(folder != NULL);
868 for (int i = 0; i < 10; ++i) { 798 for (int i = 0; i < 10; ++i) {
869 std::string title = IndexedURLTitle(i); 799 std::string title = IndexedURLTitle(i);
870 GURL url = GURL(IndexedURL(i)); 800 GURL url = GURL(IndexedURL(i));
871 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL); 801 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL);
872 } 802 }
873 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 803 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
874 ASSERT_TRUE(AllModelsMatchVerifier());
875 804
876 int num_bookmarks_to_move = folder->child_count() - 2; 805 int num_bookmarks_to_move = folder->child_count() - 2;
877 for (int i = 0; i < num_bookmarks_to_move; ++i) { 806 for (int i = 0; i < num_bookmarks_to_move; ++i) {
878 Move(0, folder->GetChild(0), GetBookmarkBarNode(0), i); 807 Move(0, folder->GetChild(0), GetBookmarkBarNode(0), i);
879 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 808 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
880 ASSERT_TRUE(AllModelsMatchVerifier());
881 } 809 }
882 } 810 }
883 811
884 // Test Scribe ID - 371961. 812 // Test Scribe ID - 371961.
885 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 813 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
886 SC_MovingBMsFromParentBMFoldToChildBMFold) { 814 SC_MovingBMsFromParentBMFoldToChildBMFold) {
887 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 815 ASSERT_TRUE(SetupSync());
888 ASSERT_TRUE(AllModelsMatchVerifier()); 816 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
889 817
890 const BookmarkNode* folder = AddFolder(0, kGenericFolderName); 818 const BookmarkNode* folder = AddFolder(0, kGenericFolderName);
891 ASSERT_TRUE(folder != NULL); 819 ASSERT_TRUE(folder != NULL);
892 for (int i = 0; i < 3; ++i) { 820 for (int i = 0; i < 3; ++i) {
893 std::string title = IndexedURLTitle(i); 821 std::string title = IndexedURLTitle(i);
894 GURL url = GURL(IndexedURL(i)); 822 GURL url = GURL(IndexedURL(i));
895 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL); 823 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL);
896 } 824 }
897 const BookmarkNode* subfolder = 825 const BookmarkNode* subfolder =
898 AddFolder(0, folder, 3, kGenericSubfolderName); 826 AddFolder(0, folder, 3, kGenericSubfolderName);
899 ASSERT_TRUE(subfolder != NULL); 827 ASSERT_TRUE(subfolder != NULL);
900 for (int i = 0; i < 10; ++i) { 828 for (int i = 0; i < 10; ++i) {
901 std::string title = IndexedURLTitle(i + 3); 829 std::string title = IndexedURLTitle(i + 3);
902 GURL url = GURL(IndexedURL(i + 3)); 830 GURL url = GURL(IndexedURL(i + 3));
903 ASSERT_TRUE(AddURL(0, subfolder, i, title, url) != NULL); 831 ASSERT_TRUE(AddURL(0, subfolder, i, title, url) != NULL);
904 } 832 }
905 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 833 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
906 ASSERT_TRUE(AllModelsMatchVerifier());
907 834
908 for (int i = 0; i < 3; ++i) { 835 for (int i = 0; i < 3; ++i) {
909 GURL url = GURL(IndexedURL(i)); 836 GURL url = GURL(IndexedURL(i));
910 Move(0, GetUniqueNodeByURL(0, url), subfolder, i + 10); 837 Move(0, GetUniqueNodeByURL(0, url), subfolder, i + 10);
911 } 838 }
912 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 839 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
913 ASSERT_TRUE(AllModelsMatchVerifier());
914 } 840 }
915 841
916 // Test Scribe ID - 371964. 842 // Test Scribe ID - 371964.
917 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 843 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
918 SC_MovingBMsFromChildBMFoldToParentBMFold) { 844 SC_MovingBMsFromChildBMFoldToParentBMFold) {
919 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 845 ASSERT_TRUE(SetupSync());
920 ASSERT_TRUE(AllModelsMatchVerifier()); 846 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
921 847
922 const BookmarkNode* folder = AddFolder(0, kGenericFolderName); 848 const BookmarkNode* folder = AddFolder(0, kGenericFolderName);
923 ASSERT_TRUE(folder != NULL); 849 ASSERT_TRUE(folder != NULL);
924 for (int i = 0; i < 3; ++i) { 850 for (int i = 0; i < 3; ++i) {
925 std::string title = IndexedURLTitle(i); 851 std::string title = IndexedURLTitle(i);
926 GURL url = GURL(IndexedURL(i)); 852 GURL url = GURL(IndexedURL(i));
927 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL); 853 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL);
928 } 854 }
929 const BookmarkNode* subfolder = 855 const BookmarkNode* subfolder =
930 AddFolder(0, folder, 3, kGenericSubfolderName); 856 AddFolder(0, folder, 3, kGenericSubfolderName);
931 ASSERT_TRUE(subfolder != NULL); 857 ASSERT_TRUE(subfolder != NULL);
932 for (int i = 0; i < 5; ++i) { 858 for (int i = 0; i < 5; ++i) {
933 std::string title = IndexedURLTitle(i + 3); 859 std::string title = IndexedURLTitle(i + 3);
934 GURL url = GURL(IndexedURL(i + 3)); 860 GURL url = GURL(IndexedURL(i + 3));
935 ASSERT_TRUE(AddURL(0, subfolder, i, title, url) != NULL); 861 ASSERT_TRUE(AddURL(0, subfolder, i, title, url) != NULL);
936 } 862 }
937 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 863 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
938 ASSERT_TRUE(AllModelsMatchVerifier());
939 864
940 for (int i = 0; i < 3; ++i) { 865 for (int i = 0; i < 3; ++i) {
941 GURL url = GURL(IndexedURL(i + 3)); 866 GURL url = GURL(IndexedURL(i + 3));
942 Move(0, GetUniqueNodeByURL(0, url), folder, i + 4); 867 Move(0, GetUniqueNodeByURL(0, url), folder, i + 4);
943 } 868 }
944 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 869 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
945 ASSERT_TRUE(AllModelsMatchVerifier());
946 } 870 }
947 871
948 // Test Scribe ID - 371967. 872 // Test Scribe ID - 371967.
949 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, SC_HoistBMs10LevelUp) { 873 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, SC_HoistBMs10LevelUp) {
950 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 874 ASSERT_TRUE(SetupSync());
951 ASSERT_TRUE(AllModelsMatchVerifier()); 875 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
952 876
953 const BookmarkNode* folder = GetBookmarkBarNode(0); 877 const BookmarkNode* folder = GetBookmarkBarNode(0);
954 const BookmarkNode* folder_L0 = NULL; 878 const BookmarkNode* folder_L0 = NULL;
955 const BookmarkNode* folder_L10 = NULL; 879 const BookmarkNode* folder_L10 = NULL;
956 for (int level = 0; level < 15; ++level) { 880 for (int level = 0; level < 15; ++level) {
957 int num_bookmarks = base::RandInt(0, 9); 881 int num_bookmarks = base::RandInt(0, 9);
958 for (int i = 0; i < num_bookmarks; ++i) { 882 for (int i = 0; i < num_bookmarks; ++i) {
959 std::string title = IndexedURLTitle(i); 883 std::string title = IndexedURLTitle(i);
960 GURL url = GURL(IndexedURL(i)); 884 GURL url = GURL(IndexedURL(i));
961 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL); 885 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL);
962 } 886 }
963 std::string title = IndexedFolderName(level); 887 std::string title = IndexedFolderName(level);
964 folder = AddFolder(0, folder, folder->child_count(), title); 888 folder = AddFolder(0, folder, folder->child_count(), title);
965 ASSERT_TRUE(folder != NULL); 889 ASSERT_TRUE(folder != NULL);
966 if (level == 0) folder_L0 = folder; 890 if (level == 0) folder_L0 = folder;
967 if (level == 10) folder_L10 = folder; 891 if (level == 10) folder_L10 = folder;
968 } 892 }
969 for (int i = 0; i < 3; ++i) { 893 for (int i = 0; i < 3; ++i) {
970 std::string title = IndexedURLTitle(i + 10); 894 std::string title = IndexedURLTitle(i + 10);
971 GURL url = GURL(IndexedURL(i + 10)); 895 GURL url = GURL(IndexedURL(i + 10));
972 ASSERT_TRUE(AddURL(0, folder_L10, i, title, url) != NULL); 896 ASSERT_TRUE(AddURL(0, folder_L10, i, title, url) != NULL);
973 } 897 }
974 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 898 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
975 ASSERT_TRUE(AllModelsMatchVerifier());
976 899
977 GURL url10 = GURL(IndexedURL(10)); 900 GURL url10 = GURL(IndexedURL(10));
978 Move(0, GetUniqueNodeByURL( 901 Move(0, GetUniqueNodeByURL(
979 0, url10), folder_L0, folder_L0->child_count()); 902 0, url10), folder_L0, folder_L0->child_count());
980 GURL url11 = GURL(IndexedURL(11)); 903 GURL url11 = GURL(IndexedURL(11));
981 Move(0, GetUniqueNodeByURL(0, url11), folder_L0, 0); 904 Move(0, GetUniqueNodeByURL(0, url11), folder_L0, 0);
982 GURL url12 = GURL(IndexedURL(12)); 905 GURL url12 = GURL(IndexedURL(12));
983 Move(0, GetUniqueNodeByURL(0, url12), folder_L0, 1); 906 Move(0, GetUniqueNodeByURL(0, url12), folder_L0, 1);
984 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 907 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
985 ASSERT_TRUE(AllModelsMatchVerifier());
986 } 908 }
987 909
988 // Test Scribe ID - 371968. 910 // Test Scribe ID - 371968.
989 // Flaky. http://crbug.com/107744. 911 // Flaky. http://crbug.com/107744.
990 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, SC_SinkBMs10LevelDown) { 912 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, SC_SinkBMs10LevelDown) {
991 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 913 ASSERT_TRUE(SetupSync());
992 ASSERT_TRUE(AllModelsMatchVerifier()); 914 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
993 915
994 const BookmarkNode* folder = GetBookmarkBarNode(0); 916 const BookmarkNode* folder = GetBookmarkBarNode(0);
995 const BookmarkNode* folder_L0 = NULL; 917 const BookmarkNode* folder_L0 = NULL;
996 const BookmarkNode* folder_L10 = NULL; 918 const BookmarkNode* folder_L10 = NULL;
997 for (int level = 0; level < 15; ++level) { 919 for (int level = 0; level < 15; ++level) {
998 int num_bookmarks = base::RandInt(0, 9); 920 int num_bookmarks = base::RandInt(0, 9);
999 for (int i = 0; i < num_bookmarks; ++i) { 921 for (int i = 0; i < num_bookmarks; ++i) {
1000 std::string title = IndexedURLTitle(i); 922 std::string title = IndexedURLTitle(i);
1001 GURL url = GURL(IndexedURL(i)); 923 GURL url = GURL(IndexedURL(i));
1002 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL); 924 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL);
1003 } 925 }
1004 std::string title = IndexedFolderName(level); 926 std::string title = IndexedFolderName(level);
1005 folder = AddFolder(0, folder, folder->child_count(), title); 927 folder = AddFolder(0, folder, folder->child_count(), title);
1006 ASSERT_TRUE(folder != NULL); 928 ASSERT_TRUE(folder != NULL);
1007 if (level == 0) folder_L0 = folder; 929 if (level == 0) folder_L0 = folder;
1008 if (level == 10) folder_L10 = folder; 930 if (level == 10) folder_L10 = folder;
1009 } 931 }
1010 for (int i = 0; i < 3; ++i) { 932 for (int i = 0; i < 3; ++i) {
1011 std::string title = IndexedURLTitle(i + 10); 933 std::string title = IndexedURLTitle(i + 10);
1012 GURL url = GURL(IndexedURL(i + 10)); 934 GURL url = GURL(IndexedURL(i + 10));
1013 ASSERT_TRUE(AddURL(0, folder_L0, 0, title, url) != NULL); 935 ASSERT_TRUE(AddURL(0, folder_L0, 0, title, url) != NULL);
1014 } 936 }
1015 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 937 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1016 ASSERT_TRUE(AllModelsMatchVerifier());
1017 938
1018 GURL url10 = GURL(IndexedURL(10)); 939 GURL url10 = GURL(IndexedURL(10));
1019 Move(0, GetUniqueNodeByURL(0, url10), folder_L10, folder_L10->child_count()); 940 Move(0, GetUniqueNodeByURL(0, url10), folder_L10, folder_L10->child_count());
1020 GURL url11 = GURL(IndexedURL(11)); 941 GURL url11 = GURL(IndexedURL(11));
1021 Move(0, GetUniqueNodeByURL(0, url11), folder_L10, 0); 942 Move(0, GetUniqueNodeByURL(0, url11), folder_L10, 0);
1022 GURL url12 = GURL(IndexedURL(12)); 943 GURL url12 = GURL(IndexedURL(12));
1023 Move(0, GetUniqueNodeByURL(0, url12), folder_L10, 1); 944 Move(0, GetUniqueNodeByURL(0, url12), folder_L10, 1);
1024 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 945 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1025 ASSERT_TRUE(AllModelsMatchVerifier());
1026 } 946 }
1027 947
1028 // Test Scribe ID - 371980. 948 // Test Scribe ID - 371980.
1029 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 949 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
1030 SC_SinkEmptyBMFold5LevelsDown) { 950 SC_SinkEmptyBMFold5LevelsDown) {
1031 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 951 ASSERT_TRUE(SetupSync());
1032 ASSERT_TRUE(AllModelsMatchVerifier()); 952 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1033 953
1034 const BookmarkNode* folder = GetBookmarkBarNode(0); 954 const BookmarkNode* folder = GetBookmarkBarNode(0);
1035 const BookmarkNode* folder_L5 = NULL; 955 const BookmarkNode* folder_L5 = NULL;
1036 for (int level = 0; level < 15; ++level) { 956 for (int level = 0; level < 15; ++level) {
1037 int num_bookmarks = base::RandInt(0, 9); 957 int num_bookmarks = base::RandInt(0, 9);
1038 for (int i = 0; i < num_bookmarks; ++i) { 958 for (int i = 0; i < num_bookmarks; ++i) {
1039 std::string title = IndexedURLTitle(i); 959 std::string title = IndexedURLTitle(i);
1040 GURL url = GURL(IndexedURL(i)); 960 GURL url = GURL(IndexedURL(i));
1041 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL); 961 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL);
1042 } 962 }
1043 std::string title = IndexedFolderName(level); 963 std::string title = IndexedFolderName(level);
1044 folder = AddFolder( 964 folder = AddFolder(
1045 0, folder, folder->child_count(), title); 965 0, folder, folder->child_count(), title);
1046 ASSERT_TRUE(folder != NULL); 966 ASSERT_TRUE(folder != NULL);
1047 if (level == 5) folder_L5 = folder; 967 if (level == 5) folder_L5 = folder;
1048 } 968 }
1049 folder = AddFolder( 969 folder = AddFolder(
1050 0, GetBookmarkBarNode(0)->child_count(), kGenericFolderName); 970 0, GetBookmarkBarNode(0)->child_count(), kGenericFolderName);
1051 ASSERT_TRUE(folder != NULL); 971 ASSERT_TRUE(folder != NULL);
1052 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 972 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1053 ASSERT_TRUE(AllModelsMatchVerifier());
1054 973
1055 Move(0, folder, folder_L5, folder_L5->child_count()); 974 Move(0, folder, folder_L5, folder_L5->child_count());
1056 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 975 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1057 ASSERT_TRUE(AllModelsMatchVerifier());
1058 } 976 }
1059 977
1060 // Test Scribe ID - 371997. 978 // Test Scribe ID - 371997.
1061 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 979 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
1062 SC_SinkNonEmptyBMFold5LevelsDown) { 980 SC_SinkNonEmptyBMFold5LevelsDown) {
1063 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 981 ASSERT_TRUE(SetupSync());
1064 ASSERT_TRUE(AllModelsMatchVerifier()); 982 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1065 983
1066 const BookmarkNode* folder = GetBookmarkBarNode(0); 984 const BookmarkNode* folder = GetBookmarkBarNode(0);
1067 const BookmarkNode* folder_L5 = NULL; 985 const BookmarkNode* folder_L5 = NULL;
1068 for (int level = 0; level < 6; ++level) { 986 for (int level = 0; level < 6; ++level) {
1069 int num_bookmarks = base::RandInt(0, 9); 987 int num_bookmarks = base::RandInt(0, 9);
1070 for (int i = 0; i < num_bookmarks; ++i) { 988 for (int i = 0; i < num_bookmarks; ++i) {
1071 std::string title = IndexedURLTitle(i); 989 std::string title = IndexedURLTitle(i);
1072 GURL url = GURL(IndexedURL(i)); 990 GURL url = GURL(IndexedURL(i));
1073 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL); 991 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL);
1074 } 992 }
1075 std::string title = IndexedFolderName(level); 993 std::string title = IndexedFolderName(level);
1076 folder = AddFolder(0, folder, folder->child_count(), title); 994 folder = AddFolder(0, folder, folder->child_count(), title);
1077 ASSERT_TRUE(folder != NULL); 995 ASSERT_TRUE(folder != NULL);
1078 if (level == 5) folder_L5 = folder; 996 if (level == 5) folder_L5 = folder;
1079 } 997 }
1080 folder = AddFolder( 998 folder = AddFolder(
1081 0, GetBookmarkBarNode(0)->child_count(), kGenericFolderName); 999 0, GetBookmarkBarNode(0)->child_count(), kGenericFolderName);
1082 ASSERT_TRUE(folder != NULL); 1000 ASSERT_TRUE(folder != NULL);
1083 for (int i = 0; i < 10; ++i) { 1001 for (int i = 0; i < 10; ++i) {
1084 std::string title = IndexedURLTitle(i); 1002 std::string title = IndexedURLTitle(i);
1085 GURL url = GURL(IndexedURL(i)); 1003 GURL url = GURL(IndexedURL(i));
1086 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL); 1004 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL);
1087 } 1005 }
1088 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 1006 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1089 ASSERT_TRUE(AllModelsMatchVerifier());
1090 1007
1091 Move(0, folder, folder_L5, folder_L5->child_count()); 1008 Move(0, folder, folder_L5, folder_L5->child_count());
1092 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 1009 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1093 ASSERT_TRUE(AllModelsMatchVerifier());
1094 } 1010 }
1095 1011
1096 // Test Scribe ID - 372006. 1012 // Test Scribe ID - 372006.
1097 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 1013 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, SC_HoistFolder5LevelsUp) {
1098 SC_HoistFolder5LevelsUp) { 1014 ASSERT_TRUE(SetupSync());
1099 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1015 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1100 ASSERT_TRUE(AllModelsMatchVerifier());
1101 1016
1102 const BookmarkNode* folder = GetBookmarkBarNode(0); 1017 const BookmarkNode* folder = GetBookmarkBarNode(0);
1103 const BookmarkNode* folder_L5 = NULL; 1018 const BookmarkNode* folder_L5 = NULL;
1104 for (int level = 0; level < 6; ++level) { 1019 for (int level = 0; level < 6; ++level) {
1105 int num_bookmarks = base::RandInt(0, 9); 1020 int num_bookmarks = base::RandInt(0, 9);
1106 for (int i = 0; i < num_bookmarks; ++i) { 1021 for (int i = 0; i < num_bookmarks; ++i) {
1107 std::string title = IndexedURLTitle(i); 1022 std::string title = IndexedURLTitle(i);
1108 GURL url = GURL(IndexedURL(i)); 1023 GURL url = GURL(IndexedURL(i));
1109 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL); 1024 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL);
1110 } 1025 }
1111 std::string title = IndexedFolderName(level); 1026 std::string title = IndexedFolderName(level);
1112 folder = AddFolder( 1027 folder = AddFolder(
1113 0, folder, folder->child_count(), title); 1028 0, folder, folder->child_count(), title);
1114 ASSERT_TRUE(folder != NULL); 1029 ASSERT_TRUE(folder != NULL);
1115 if (level == 5) folder_L5 = folder; 1030 if (level == 5) folder_L5 = folder;
1116 } 1031 }
1117 folder = AddFolder( 1032 folder = AddFolder(
1118 0, folder_L5, folder_L5->child_count(), kGenericFolderName); 1033 0, folder_L5, folder_L5->child_count(), kGenericFolderName);
1119 ASSERT_TRUE(folder != NULL); 1034 ASSERT_TRUE(folder != NULL);
1120 for (int i = 0; i < 10; ++i) { 1035 for (int i = 0; i < 10; ++i) {
1121 std::string title = IndexedURLTitle(i); 1036 std::string title = IndexedURLTitle(i);
1122 GURL url = GURL(IndexedURL(i)); 1037 GURL url = GURL(IndexedURL(i));
1123 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL); 1038 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL);
1124 } 1039 }
1125 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 1040 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1126 ASSERT_TRUE(AllModelsMatchVerifier());
1127 1041
1128 Move(0, folder, GetBookmarkBarNode(0), GetBookmarkBarNode(0)->child_count()); 1042 Move(0, folder, GetBookmarkBarNode(0), GetBookmarkBarNode(0)->child_count());
1129 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 1043 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1130 ASSERT_TRUE(AllModelsMatchVerifier());
1131 } 1044 }
1132 1045
1133 // Test Scribe ID - 372026. 1046 // Test Scribe ID - 372026.
1134 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 1047 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
1135 SC_ReverseTheOrderOfTwoBMFolders) { 1048 SC_ReverseTheOrderOfTwoBMFolders) {
1136 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1049 ASSERT_TRUE(SetupSync());
1137 ASSERT_TRUE(AllModelsMatchVerifier()); 1050 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1138 1051
1139 for (int i = 0; i < 2; ++i) { 1052 for (int i = 0; i < 2; ++i) {
1140 std::string title = IndexedFolderName(i); 1053 std::string title = IndexedFolderName(i);
1141 const BookmarkNode* folder = AddFolder(0, i, title); 1054 const BookmarkNode* folder = AddFolder(0, i, title);
1142 ASSERT_TRUE(folder != NULL); 1055 ASSERT_TRUE(folder != NULL);
1143 for (int j = 0; j < 10; ++j) { 1056 for (int j = 0; j < 10; ++j) {
1144 std::string title = IndexedURLTitle(j); 1057 std::string title = IndexedURLTitle(j);
1145 GURL url = GURL(IndexedURL(j)); 1058 GURL url = GURL(IndexedURL(j));
1146 ASSERT_TRUE(AddURL(0, folder, j, title, url) != NULL); 1059 ASSERT_TRUE(AddURL(0, folder, j, title, url) != NULL);
1147 } 1060 }
1148 } 1061 }
1149 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 1062 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1150 ASSERT_TRUE(AllModelsMatchVerifier());
1151 1063
1152 ReverseChildOrder(0, GetBookmarkBarNode(0)); 1064 ReverseChildOrder(0, GetBookmarkBarNode(0));
1153 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 1065 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1154 ASSERT_TRUE(AllModelsMatchVerifier());
1155 } 1066 }
1156 1067
1157 // Test Scribe ID - 372028. 1068 // Test Scribe ID - 372028.
1158 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 1069 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
1159 SC_ReverseTheOrderOfTenBMFolders) { 1070 SC_ReverseTheOrderOfTenBMFolders) {
1160 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1071 ASSERT_TRUE(SetupSync());
1161 ASSERT_TRUE(AllModelsMatchVerifier()); 1072 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1162 1073
1163 for (int i = 0; i < 10; ++i) { 1074 for (int i = 0; i < 10; ++i) {
1164 std::string title = IndexedFolderName(i); 1075 std::string title = IndexedFolderName(i);
1165 const BookmarkNode* folder = AddFolder(0, i, title); 1076 const BookmarkNode* folder = AddFolder(0, i, title);
1166 ASSERT_TRUE(folder != NULL); 1077 ASSERT_TRUE(folder != NULL);
1167 for (int j = 0; j < 10; ++j) { 1078 for (int j = 0; j < 10; ++j) {
1168 std::string title = IndexedURLTitle(1000 * i + j); 1079 std::string title = IndexedURLTitle(1000 * i + j);
1169 GURL url = GURL(IndexedURL(j)); 1080 GURL url = GURL(IndexedURL(j));
1170 ASSERT_TRUE(AddURL(0, folder, j, title, url) != NULL); 1081 ASSERT_TRUE(AddURL(0, folder, j, title, url) != NULL);
1171 } 1082 }
1172 } 1083 }
1173 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 1084 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1174 ASSERT_TRUE(AllModelsMatchVerifier());
1175 1085
1176 ReverseChildOrder(0, GetBookmarkBarNode(0)); 1086 ReverseChildOrder(0, GetBookmarkBarNode(0));
1177 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 1087 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1178 ASSERT_TRUE(AllModelsMatchVerifier());
1179 } 1088 }
1180 1089
1181 // Test Scribe ID - 373379. 1090 // Test Scribe ID - 373379.
1182 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 1091 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
1183 MC_BiDirectionalPushAddingBM) { 1092 MC_BiDirectionalPushAddingBM) {
1184 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1093 ASSERT_TRUE(SetupSync());
1185 ASSERT_TRUE(AllModelsMatchVerifier()); 1094 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1186 1095
1187 DisableVerifier(); 1096 DisableVerifier();
1188 for (int i = 0; i < 2; ++i) { 1097 for (int i = 0; i < 2; ++i) {
1189 std::string title0 = IndexedURLTitle(2*i); 1098 std::string title0 = IndexedURLTitle(2*i);
1190 GURL url0 = GURL(IndexedURL(2*i)); 1099 GURL url0 = GURL(IndexedURL(2*i));
1191 ASSERT_TRUE(AddURL(0, title0, url0) != NULL); 1100 ASSERT_TRUE(AddURL(0, title0, url0) != NULL);
1192 std::string title1 = IndexedURLTitle(2*i+1); 1101 std::string title1 = IndexedURLTitle(2*i+1);
1193 GURL url1 = GURL(IndexedURL(2*i+1)); 1102 GURL url1 = GURL(IndexedURL(2*i+1));
1194 ASSERT_TRUE(AddURL(1, title1, url1) != NULL); 1103 ASSERT_TRUE(AddURL(1, title1, url1) != NULL);
1195 } 1104 }
1196 ASSERT_TRUE(AwaitQuiescence()); 1105 ASSERT_TRUE(AwaitAllModelsMatch());
1197 ASSERT_TRUE(AllModelsMatch());
1198 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); 1106 ASSERT_FALSE(ContainsDuplicateBookmarks(0));
1199 } 1107 }
1200 1108
1201 // Test Scribe ID - 373503. 1109 // Test Scribe ID - 373503.
1202 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 1110 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
1203 MC_BiDirectionalPush_AddingSameBMs) { 1111 MC_BiDirectionalPush_AddingSameBMs) {
1204 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1112 ASSERT_TRUE(SetupSync());
1205 ASSERT_TRUE(AllModelsMatchVerifier()); 1113 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1206 1114
1207 // Note: When a racy commit is done with identical bookmarks, it is possible 1115 // Note: When a racy commit is done with identical bookmarks, it is possible
1208 // for duplicates to exist after sync completes. See http://crbug.com/19769. 1116 // for duplicates to exist after sync completes. See http://crbug.com/19769.
1209 DisableVerifier(); 1117 DisableVerifier();
1210 for (int i = 0; i < 2; ++i) { 1118 for (int i = 0; i < 2; ++i) {
1211 std::string title = IndexedURLTitle(i); 1119 std::string title = IndexedURLTitle(i);
1212 GURL url = GURL(IndexedURL(i)); 1120 GURL url = GURL(IndexedURL(i));
1213 ASSERT_TRUE(AddURL(0, title, url) != NULL); 1121 ASSERT_TRUE(AddURL(0, title, url) != NULL);
1214 ASSERT_TRUE(AddURL(1, title, url) != NULL); 1122 ASSERT_TRUE(AddURL(1, title, url) != NULL);
1215 } 1123 }
1216 ASSERT_TRUE(AwaitQuiescence()); 1124 ASSERT_TRUE(AwaitAllModelsMatch());
1217 ASSERT_TRUE(AllModelsMatch());
1218 } 1125 }
1219 1126
1220 // Test Scribe ID - 373506. 1127 // Test Scribe ID - 373506.
1221 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 1128 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
1222 MC_BootStrapEmptyStateEverywhere) { 1129 MC_BootStrapEmptyStateEverywhere) {
1223 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1130 ASSERT_TRUE(SetupSync());
1224 ASSERT_TRUE(AwaitQuiescence()); 1131 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1225 ASSERT_TRUE(AllModelsMatchVerifier());
1226 } 1132 }
1227 1133
1228 // Test Scribe ID - 373505. 1134 // Test Scribe ID - 373505.
1229 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 1135 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
1230 MC_Merge_CaseInsensitivity_InNames) { 1136 MC_Merge_CaseInsensitivity_InNames) {
1231 ASSERT_TRUE(SetupClients()) << "SetupClients() failed."; 1137 ASSERT_TRUE(SetupClients());
1232 DisableVerifier(); 1138 DisableVerifier();
1233 1139
1234 const BookmarkNode* folder0 = AddFolder(0, "Folder"); 1140 const BookmarkNode* folder0 = AddFolder(0, "Folder");
1235 ASSERT_TRUE(folder0 != NULL); 1141 ASSERT_TRUE(folder0 != NULL);
1236 ASSERT_TRUE(AddURL(0, folder0, 0, "Bookmark 0", GURL(kGenericURL)) != NULL); 1142 ASSERT_TRUE(AddURL(0, folder0, 0, "Bookmark 0", GURL(kGenericURL)) != NULL);
1237 ASSERT_TRUE(AddURL(0, folder0, 1, "Bookmark 1", GURL(kGenericURL)) != NULL); 1143 ASSERT_TRUE(AddURL(0, folder0, 1, "Bookmark 1", GURL(kGenericURL)) != NULL);
1238 ASSERT_TRUE(AddURL(0, folder0, 2, "Bookmark 2", GURL(kGenericURL)) != NULL); 1144 ASSERT_TRUE(AddURL(0, folder0, 2, "Bookmark 2", GURL(kGenericURL)) != NULL);
1239 1145
1240 const BookmarkNode* folder1 = AddFolder(1, "fOlDeR"); 1146 const BookmarkNode* folder1 = AddFolder(1, "fOlDeR");
1241 ASSERT_TRUE(folder1 != NULL); 1147 ASSERT_TRUE(folder1 != NULL);
1242 ASSERT_TRUE(AddURL(1, folder1, 0, "bOoKmArK 0", GURL(kGenericURL)) != NULL); 1148 ASSERT_TRUE(AddURL(1, folder1, 0, "bOoKmArK 0", GURL(kGenericURL)) != NULL);
1243 ASSERT_TRUE(AddURL(1, folder1, 1, "BooKMarK 1", GURL(kGenericURL)) != NULL); 1149 ASSERT_TRUE(AddURL(1, folder1, 1, "BooKMarK 1", GURL(kGenericURL)) != NULL);
1244 ASSERT_TRUE(AddURL(1, folder1, 2, "bOOKMARK 2", GURL(kGenericURL)) != NULL); 1150 ASSERT_TRUE(AddURL(1, folder1, 2, "bOOKMARK 2", GURL(kGenericURL)) != NULL);
1245 1151
1246 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1152 ASSERT_TRUE(SetupSync());
1247 ASSERT_TRUE(AwaitQuiescence()); 1153 ASSERT_TRUE(AwaitAllModelsMatch());
1248 ASSERT_TRUE(AllModelsMatch());
1249 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); 1154 ASSERT_FALSE(ContainsDuplicateBookmarks(0));
1250 } 1155 }
1251 1156
1252 // Test Scribe ID - 373508. 1157 // Test Scribe ID - 373508.
1253 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 1158 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
1254 MC_SimpleMergeOfDifferentBMModels) { 1159 MC_SimpleMergeOfDifferentBMModels) {
1255 ASSERT_TRUE(SetupClients()) << "SetupClients() failed."; 1160 ASSERT_TRUE(SetupClients());
1256 DisableVerifier(); 1161 DisableVerifier();
1257 1162
1258 for (int i = 0; i < 3; ++i) { 1163 for (int i = 0; i < 3; ++i) {
1259 std::string title = IndexedURLTitle(i); 1164 std::string title = IndexedURLTitle(i);
1260 GURL url = GURL(IndexedURL(i)); 1165 GURL url = GURL(IndexedURL(i));
1261 ASSERT_TRUE(AddURL(0, i, title, url) != NULL); 1166 ASSERT_TRUE(AddURL(0, i, title, url) != NULL);
1262 ASSERT_TRUE(AddURL(1, i, title, url) != NULL); 1167 ASSERT_TRUE(AddURL(1, i, title, url) != NULL);
1263 } 1168 }
1264 1169
1265 for (int i = 3; i < 10; ++i) { 1170 for (int i = 3; i < 10; ++i) {
1266 std::string title0 = IndexedURLTitle(i); 1171 std::string title0 = IndexedURLTitle(i);
1267 GURL url0 = GURL(IndexedURL(i)); 1172 GURL url0 = GURL(IndexedURL(i));
1268 ASSERT_TRUE(AddURL(0, i, title0, url0) != NULL); 1173 ASSERT_TRUE(AddURL(0, i, title0, url0) != NULL);
1269 std::string title1 = IndexedURLTitle(i+7); 1174 std::string title1 = IndexedURLTitle(i+7);
1270 GURL url1 = GURL(IndexedURL(i+7)); 1175 GURL url1 = GURL(IndexedURL(i+7));
1271 ASSERT_TRUE(AddURL(1, i, title1, url1) != NULL); 1176 ASSERT_TRUE(AddURL(1, i, title1, url1) != NULL);
1272 } 1177 }
1273 1178
1274 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1179 ASSERT_TRUE(SetupSync());
1275 ASSERT_TRUE(AwaitQuiescence()); 1180 ASSERT_TRUE(AwaitAllModelsMatch());
1276 ASSERT_TRUE(AllModelsMatch());
1277 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); 1181 ASSERT_FALSE(ContainsDuplicateBookmarks(0));
1278 } 1182 }
1279 1183
1280 // Test Scribe ID - 386586. 1184 // Test Scribe ID - 386586.
1281 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 1185 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
1282 MC_MergeSimpleBMHierarchyUnderBMBar) { 1186 MC_MergeSimpleBMHierarchyUnderBMBar) {
1283 ASSERT_TRUE(SetupClients()) << "SetupClients() failed."; 1187 ASSERT_TRUE(SetupClients());
1284 DisableVerifier(); 1188 DisableVerifier();
1285 1189
1286 for (int i = 0; i < 3; ++i) { 1190 for (int i = 0; i < 3; ++i) {
1287 std::string title = IndexedURLTitle(i); 1191 std::string title = IndexedURLTitle(i);
1288 GURL url = GURL(IndexedURL(i)); 1192 GURL url = GURL(IndexedURL(i));
1289 ASSERT_TRUE(AddURL(0, i, title, url) != NULL); 1193 ASSERT_TRUE(AddURL(0, i, title, url) != NULL);
1290 ASSERT_TRUE(AddURL(1, i, title, url) != NULL); 1194 ASSERT_TRUE(AddURL(1, i, title, url) != NULL);
1291 } 1195 }
1292 1196
1293 for (int i = 3; i < 10; ++i) { 1197 for (int i = 3; i < 10; ++i) {
1294 std::string title = IndexedURLTitle(i); 1198 std::string title = IndexedURLTitle(i);
1295 GURL url = GURL(IndexedURL(i)); 1199 GURL url = GURL(IndexedURL(i));
1296 ASSERT_TRUE(AddURL(1, i, title, url) != NULL); 1200 ASSERT_TRUE(AddURL(1, i, title, url) != NULL);
1297 } 1201 }
1298 1202
1299 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1203 ASSERT_TRUE(SetupSync());
1300 ASSERT_TRUE(AwaitQuiescence()); 1204 ASSERT_TRUE(AwaitAllModelsMatch());
1301 ASSERT_TRUE(AllModelsMatch());
1302 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); 1205 ASSERT_FALSE(ContainsDuplicateBookmarks(0));
1303 } 1206 }
1304 1207
1305 // Test Scribe ID - 386589. 1208 // Test Scribe ID - 386589.
1306 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 1209 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
1307 MC_MergeSimpleBMHierarchyEqualSetsUnderBMBar) { 1210 MC_MergeSimpleBMHierarchyEqualSetsUnderBMBar) {
1308 ASSERT_TRUE(SetupClients()) << "SetupClients() failed."; 1211 ASSERT_TRUE(SetupClients());
1309 DisableVerifier(); 1212 DisableVerifier();
1310 1213
1311 for (int i = 0; i < 3; ++i) { 1214 for (int i = 0; i < 3; ++i) {
1312 std::string title = IndexedURLTitle(i); 1215 std::string title = IndexedURLTitle(i);
1313 GURL url = GURL(IndexedURL(i)); 1216 GURL url = GURL(IndexedURL(i));
1314 ASSERT_TRUE(AddURL(0, i, title, url) != NULL); 1217 ASSERT_TRUE(AddURL(0, i, title, url) != NULL);
1315 ASSERT_TRUE(AddURL(1, i, title, url) != NULL); 1218 ASSERT_TRUE(AddURL(1, i, title, url) != NULL);
1316 } 1219 }
1317 1220
1318 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1221 ASSERT_TRUE(SetupSync());
1319 ASSERT_TRUE(AwaitQuiescence()); 1222 ASSERT_TRUE(AwaitAllModelsMatch());
1320 ASSERT_TRUE(AllModelsMatch());
1321 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); 1223 ASSERT_FALSE(ContainsDuplicateBookmarks(0));
1322 } 1224 }
1323 1225
1324 // Test Scribe ID - 373504 - Merge bookmark folders with different bookmarks. 1226 // Test Scribe ID - 373504 - Merge bookmark folders with different bookmarks.
1325 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 1227 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
1326 MC_MergeBMFoldersWithDifferentBMs) { 1228 MC_MergeBMFoldersWithDifferentBMs) {
1327 ASSERT_TRUE(SetupClients()) << "SetupClients() failed."; 1229 ASSERT_TRUE(SetupClients());
1328 DisableVerifier(); 1230 DisableVerifier();
1329 1231
1330 const BookmarkNode* folder0 = AddFolder(0, kGenericFolderName); 1232 const BookmarkNode* folder0 = AddFolder(0, kGenericFolderName);
1331 ASSERT_TRUE(folder0 != NULL); 1233 ASSERT_TRUE(folder0 != NULL);
1332 const BookmarkNode* folder1 = AddFolder(1, kGenericFolderName); 1234 const BookmarkNode* folder1 = AddFolder(1, kGenericFolderName);
1333 ASSERT_TRUE(folder1 != NULL); 1235 ASSERT_TRUE(folder1 != NULL);
1334 for (int i = 0; i < 2; ++i) { 1236 for (int i = 0; i < 2; ++i) {
1335 std::string title0 = IndexedURLTitle(2*i); 1237 std::string title0 = IndexedURLTitle(2*i);
1336 GURL url0 = GURL(IndexedURL(2*i)); 1238 GURL url0 = GURL(IndexedURL(2*i));
1337 ASSERT_TRUE(AddURL(0, folder0, i, title0, url0) != NULL); 1239 ASSERT_TRUE(AddURL(0, folder0, i, title0, url0) != NULL);
1338 std::string title1 = IndexedURLTitle(2*i+1); 1240 std::string title1 = IndexedURLTitle(2*i+1);
1339 GURL url1 = GURL(IndexedURL(2*i+1)); 1241 GURL url1 = GURL(IndexedURL(2*i+1));
1340 ASSERT_TRUE(AddURL(1, folder1, i, title1, url1) != NULL); 1242 ASSERT_TRUE(AddURL(1, folder1, i, title1, url1) != NULL);
1341 } 1243 }
1342 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1244 ASSERT_TRUE(SetupSync());
1343 ASSERT_TRUE(AwaitQuiescence()); 1245 ASSERT_TRUE(AwaitAllModelsMatch());
1344 ASSERT_TRUE(AllModelsMatch());
1345 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); 1246 ASSERT_FALSE(ContainsDuplicateBookmarks(0));
1346 } 1247 }
1347 1248
1348 // Test Scribe ID - 373509 - Merge moderately complex bookmark models. 1249 // Test Scribe ID - 373509 - Merge moderately complex bookmark models.
1349 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 1250 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
1350 MC_MergeDifferentBMModelsModeratelyComplex) { 1251 MC_MergeDifferentBMModelsModeratelyComplex) {
1351 ASSERT_TRUE(SetupClients()) << "SetupClients() failed."; 1252 ASSERT_TRUE(SetupClients());
1352 DisableVerifier(); 1253 DisableVerifier();
1353 1254
1354 for (int i = 0; i < 25; ++i) { 1255 for (int i = 0; i < 25; ++i) {
1355 std::string title0 = IndexedURLTitle(i); 1256 std::string title0 = IndexedURLTitle(i);
1356 GURL url0 = GURL(IndexedURL(i)); 1257 GURL url0 = GURL(IndexedURL(i));
1357 ASSERT_TRUE(AddURL(0, i, title0, url0) != NULL); 1258 ASSERT_TRUE(AddURL(0, i, title0, url0) != NULL);
1358 std::string title1 = IndexedURLTitle(i+50); 1259 std::string title1 = IndexedURLTitle(i+50);
1359 GURL url1 = GURL(IndexedURL(i+50)); 1260 GURL url1 = GURL(IndexedURL(i+50));
1360 ASSERT_TRUE(AddURL(1, i, title1, url1) != NULL); 1261 ASSERT_TRUE(AddURL(1, i, title1, url1) != NULL);
1361 } 1262 }
(...skipping 12 matching lines...) Expand all
1374 GURL url1 = GURL(IndexedURL(i+5*j+50)); 1275 GURL url1 = GURL(IndexedURL(i+5*j+50));
1375 ASSERT_TRUE(AddURL(1, folder1, j, title1, url1) != NULL); 1276 ASSERT_TRUE(AddURL(1, folder1, j, title1, url1) != NULL);
1376 } 1277 }
1377 } 1278 }
1378 for (int i = 100; i < 125; ++i) { 1279 for (int i = 100; i < 125; ++i) {
1379 std::string title = IndexedURLTitle(i); 1280 std::string title = IndexedURLTitle(i);
1380 GURL url = GURL(IndexedURL(i)); 1281 GURL url = GURL(IndexedURL(i));
1381 ASSERT_TRUE(AddURL(0, title, url) != NULL); 1282 ASSERT_TRUE(AddURL(0, title, url) != NULL);
1382 ASSERT_TRUE(AddURL(1, title, url) != NULL); 1283 ASSERT_TRUE(AddURL(1, title, url) != NULL);
1383 } 1284 }
1384 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1285 ASSERT_TRUE(SetupSync());
1385 ASSERT_TRUE(AwaitQuiescence()); 1286 ASSERT_TRUE(AwaitAllModelsMatch());
1386 ASSERT_TRUE(AllModelsMatch());
1387 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); 1287 ASSERT_FALSE(ContainsDuplicateBookmarks(0));
1388 } 1288 }
1389 1289
1390 // TCM ID - 3675271 - Merge simple bookmark subset under bookmark folder. 1290 // TCM ID - 3675271 - Merge simple bookmark subset under bookmark folder.
1391 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 1291 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
1392 MC_MergeSimpleBMHierarchySubsetUnderBMFolder) { 1292 MC_MergeSimpleBMHierarchySubsetUnderBMFolder) {
1393 ASSERT_TRUE(SetupClients()) << "SetupClients() failed."; 1293 ASSERT_TRUE(SetupClients());
1394 DisableVerifier(); 1294 DisableVerifier();
1395 1295
1396 for (int i = 0; i < 2; ++i) { 1296 for (int i = 0; i < 2; ++i) {
1397 const BookmarkNode* folder = AddFolder(i, kGenericFolderName); 1297 const BookmarkNode* folder = AddFolder(i, kGenericFolderName);
1398 ASSERT_TRUE(folder != NULL); 1298 ASSERT_TRUE(folder != NULL);
1399 for (int j = 0; j < 4; ++j) { 1299 for (int j = 0; j < 4; ++j) {
1400 if (base::RandDouble() < 0.5) { 1300 if (base::RandDouble() < 0.5) {
1401 std::string title = IndexedURLTitle(j); 1301 std::string title = IndexedURLTitle(j);
1402 GURL url = GURL(IndexedURL(j)); 1302 GURL url = GURL(IndexedURL(j));
1403 ASSERT_TRUE(AddURL(i, folder, j, title, url) != NULL); 1303 ASSERT_TRUE(AddURL(i, folder, j, title, url) != NULL);
1404 } else { 1304 } else {
1405 std::string title = IndexedFolderName(j); 1305 std::string title = IndexedFolderName(j);
1406 ASSERT_TRUE(AddFolder(i, folder, j, title) != NULL); 1306 ASSERT_TRUE(AddFolder(i, folder, j, title) != NULL);
1407 } 1307 }
1408 } 1308 }
1409 } 1309 }
1410 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1310 ASSERT_TRUE(SetupSync());
1411 ASSERT_TRUE(AwaitQuiescence()); 1311 ASSERT_TRUE(AwaitAllModelsMatch());
1412 ASSERT_TRUE(AllModelsMatch());
1413 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); 1312 ASSERT_FALSE(ContainsDuplicateBookmarks(0));
1414 } 1313 }
1415 1314
1416 // TCM ID - 3727284 - Merge subsets of bookmark under bookmark bar. 1315 // TCM ID - 3727284 - Merge subsets of bookmark under bookmark bar.
1417 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 1316 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
1418 MC_MergeSimpleBMHierarchySubsetUnderBookmarkBar) { 1317 MC_MergeSimpleBMHierarchySubsetUnderBookmarkBar) {
1419 ASSERT_TRUE(SetupClients()) << "SetupClients() failed."; 1318 ASSERT_TRUE(SetupClients());
1420 DisableVerifier(); 1319 DisableVerifier();
1421 1320
1422 for (int i = 0; i < 4; ++i) { 1321 for (int i = 0; i < 4; ++i) {
1423 std::string title = IndexedURLTitle(i); 1322 std::string title = IndexedURLTitle(i);
1424 GURL url = GURL(IndexedURL(i)); 1323 GURL url = GURL(IndexedURL(i));
1425 ASSERT_TRUE(AddURL(0, i, title, url) != NULL); 1324 ASSERT_TRUE(AddURL(0, i, title, url) != NULL);
1426 } 1325 }
1427 1326
1428 for (int j = 0; j < 2; ++j) { 1327 for (int j = 0; j < 2; ++j) {
1429 std::string title = IndexedURLTitle(j); 1328 std::string title = IndexedURLTitle(j);
1430 GURL url = GURL(IndexedURL(j)); 1329 GURL url = GURL(IndexedURL(j));
1431 ASSERT_TRUE(AddURL(1, j, title, url) != NULL); 1330 ASSERT_TRUE(AddURL(1, j, title, url) != NULL);
1432 } 1331 }
1433 1332
1434 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1333 ASSERT_TRUE(SetupSync());
1435 ASSERT_TRUE(AwaitQuiescence()); 1334 ASSERT_TRUE(AwaitAllModelsMatch());
1436 ASSERT_TRUE(AllModelsMatch());
1437 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); 1335 ASSERT_FALSE(ContainsDuplicateBookmarks(0));
1438 ASSERT_FALSE(ContainsDuplicateBookmarks(1)); 1336 ASSERT_FALSE(ContainsDuplicateBookmarks(1));
1439 } 1337 }
1440 1338
1441 // TCM ID - 3659294 - Merge simple bookmark hierarchy under bookmark folder. 1339 // TCM ID - 3659294 - Merge simple bookmark hierarchy under bookmark folder.
1442 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 1340 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
1443 MC_Merge_SimpleBMHierarchy_Under_BMFolder) { 1341 MC_Merge_SimpleBMHierarchy_Under_BMFolder) {
1444 ASSERT_TRUE(SetupClients()) << "SetupClients() failed."; 1342 ASSERT_TRUE(SetupClients());
1445 DisableVerifier(); 1343 DisableVerifier();
1446 1344
1447 const BookmarkNode* folder0 = AddFolder(0, 0, kGenericFolderName); 1345 const BookmarkNode* folder0 = AddFolder(0, 0, kGenericFolderName);
1448 ASSERT_TRUE(folder0 != NULL); 1346 ASSERT_TRUE(folder0 != NULL);
1449 ASSERT_TRUE(AddURL( 1347 ASSERT_TRUE(AddURL(
1450 0, folder0, 0, IndexedURLTitle(1), GURL(IndexedURL(1))) != NULL); 1348 0, folder0, 0, IndexedURLTitle(1), GURL(IndexedURL(1))) != NULL);
1451 ASSERT_TRUE(AddFolder(0, folder0, 1, IndexedSubfolderName(2)) != NULL); 1349 ASSERT_TRUE(AddFolder(0, folder0, 1, IndexedSubfolderName(2)) != NULL);
1452 ASSERT_TRUE(AddURL( 1350 ASSERT_TRUE(AddURL(
1453 0, folder0, 2, IndexedURLTitle(3), GURL(IndexedURL(3))) != NULL); 1351 0, folder0, 2, IndexedURLTitle(3), GURL(IndexedURL(3))) != NULL);
1454 ASSERT_TRUE(AddFolder(0, folder0, 3, IndexedSubfolderName(4)) != NULL); 1352 ASSERT_TRUE(AddFolder(0, folder0, 3, IndexedSubfolderName(4)) != NULL);
1455 1353
1456 const BookmarkNode* folder1 = AddFolder(1, 0, kGenericFolderName); 1354 const BookmarkNode* folder1 = AddFolder(1, 0, kGenericFolderName);
1457 ASSERT_TRUE(folder1 != NULL); 1355 ASSERT_TRUE(folder1 != NULL);
1458 ASSERT_TRUE(AddFolder(1, folder1, 0, IndexedSubfolderName(0)) != NULL); 1356 ASSERT_TRUE(AddFolder(1, folder1, 0, IndexedSubfolderName(0)) != NULL);
1459 ASSERT_TRUE(AddFolder(1, folder1, 1, IndexedSubfolderName(2)) != NULL); 1357 ASSERT_TRUE(AddFolder(1, folder1, 1, IndexedSubfolderName(2)) != NULL);
1460 ASSERT_TRUE(AddURL( 1358 ASSERT_TRUE(AddURL(
1461 1, folder1, 2, IndexedURLTitle(3), GURL(IndexedURL(3))) != NULL); 1359 1, folder1, 2, IndexedURLTitle(3), GURL(IndexedURL(3))) != NULL);
1462 ASSERT_TRUE(AddFolder(1, folder1, 3, IndexedSubfolderName(5)) != NULL); 1360 ASSERT_TRUE(AddFolder(1, folder1, 3, IndexedSubfolderName(5)) != NULL);
1463 ASSERT_TRUE(AddURL( 1361 ASSERT_TRUE(AddURL(
1464 1, folder1, 4, IndexedURLTitle(1), GURL(IndexedURL(1))) != NULL); 1362 1, folder1, 4, IndexedURLTitle(1), GURL(IndexedURL(1))) != NULL);
1465 1363
1466 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1364 ASSERT_TRUE(SetupSync());
1467 ASSERT_TRUE(AwaitQuiescence()); 1365 ASSERT_TRUE(AwaitAllModelsMatch());
1468 ASSERT_TRUE(AllModelsMatch());
1469 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); 1366 ASSERT_FALSE(ContainsDuplicateBookmarks(0));
1470 } 1367 }
1471 1368
1472 // TCM ID - 3711273 - Merge disjoint sets of bookmark hierarchy under bookmark 1369 // TCM ID - 3711273 - Merge disjoint sets of bookmark hierarchy under bookmark
1473 // folder. 1370 // folder.
1474 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 1371 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
1475 MC_Merge_SimpleBMHierarchy_DisjointSets_Under_BMFolder) { 1372 MC_Merge_SimpleBMHierarchy_DisjointSets_Under_BMFolder) {
1476 ASSERT_TRUE(SetupClients()) << "SetupClients() failed."; 1373 ASSERT_TRUE(SetupClients());
1477 DisableVerifier(); 1374 DisableVerifier();
1478 1375
1479 const BookmarkNode* folder0 = 1376 const BookmarkNode* folder0 =
1480 AddFolder(0, 0, kGenericFolderName); 1377 AddFolder(0, 0, kGenericFolderName);
1481 ASSERT_TRUE(folder0 != NULL); 1378 ASSERT_TRUE(folder0 != NULL);
1482 ASSERT_TRUE(AddURL( 1379 ASSERT_TRUE(AddURL(
1483 0, folder0, 0, IndexedURLTitle(1), GURL(IndexedURL(1))) != NULL); 1380 0, folder0, 0, IndexedURLTitle(1), GURL(IndexedURL(1))) != NULL);
1484 ASSERT_TRUE(AddFolder(0, folder0, 1, IndexedSubfolderName(2)) != NULL); 1381 ASSERT_TRUE(AddFolder(0, folder0, 1, IndexedSubfolderName(2)) != NULL);
1485 ASSERT_TRUE(AddURL( 1382 ASSERT_TRUE(AddURL(
1486 0, folder0, 2, IndexedURLTitle(3), GURL(IndexedURL(3))) != NULL); 1383 0, folder0, 2, IndexedURLTitle(3), GURL(IndexedURL(3))) != NULL);
1487 ASSERT_TRUE(AddFolder(0, folder0, 3, IndexedSubfolderName(4)) != NULL); 1384 ASSERT_TRUE(AddFolder(0, folder0, 3, IndexedSubfolderName(4)) != NULL);
1488 1385
1489 const BookmarkNode* folder1 = AddFolder(1, 0, kGenericFolderName); 1386 const BookmarkNode* folder1 = AddFolder(1, 0, kGenericFolderName);
1490 ASSERT_TRUE(folder1 != NULL); 1387 ASSERT_TRUE(folder1 != NULL);
1491 ASSERT_TRUE(AddFolder(1, folder1, 0, IndexedSubfolderName(5)) != NULL); 1388 ASSERT_TRUE(AddFolder(1, folder1, 0, IndexedSubfolderName(5)) != NULL);
1492 ASSERT_TRUE(AddFolder(1, folder1, 1, IndexedSubfolderName(6)) != NULL); 1389 ASSERT_TRUE(AddFolder(1, folder1, 1, IndexedSubfolderName(6)) != NULL);
1493 ASSERT_TRUE(AddURL( 1390 ASSERT_TRUE(AddURL(
1494 1, folder1, 2, IndexedURLTitle(7), GURL(IndexedURL(7))) != NULL); 1391 1, folder1, 2, IndexedURLTitle(7), GURL(IndexedURL(7))) != NULL);
1495 ASSERT_TRUE(AddURL( 1392 ASSERT_TRUE(AddURL(
1496 1, folder1, 3, IndexedURLTitle(8), GURL(IndexedURL(8))) != NULL); 1393 1, folder1, 3, IndexedURLTitle(8), GURL(IndexedURL(8))) != NULL);
1497 1394
1498 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1395 ASSERT_TRUE(SetupSync());
1499 ASSERT_TRUE(AwaitQuiescence()); 1396 ASSERT_TRUE(AwaitAllModelsMatch());
1500 ASSERT_TRUE(AllModelsMatch());
1501 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); 1397 ASSERT_FALSE(ContainsDuplicateBookmarks(0));
1502 } 1398 }
1503 1399
1504 // TCM ID - 3639296 - Merge disjoint sets of bookmark hierarchy under bookmark 1400 // TCM ID - 3639296 - Merge disjoint sets of bookmark hierarchy under bookmark
1505 // bar. 1401 // bar.
1506 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 1402 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
1507 MC_Merge_SimpleBMHierarchy_DisjointSets_Under_BookmarkBar) { 1403 MC_Merge_SimpleBMHierarchy_DisjointSets_Under_BookmarkBar) {
1508 ASSERT_TRUE(SetupClients()) << "SetupClients() failed."; 1404 ASSERT_TRUE(SetupClients());
1509 DisableVerifier(); 1405 DisableVerifier();
1510 1406
1511 for (int i = 0; i < 3; ++i) { 1407 for (int i = 0; i < 3; ++i) {
1512 std::string title = IndexedURLTitle(i+1); 1408 std::string title = IndexedURLTitle(i+1);
1513 GURL url = GURL(IndexedURL(i+1)); 1409 GURL url = GURL(IndexedURL(i+1));
1514 ASSERT_TRUE(AddURL(0, i, title, url) != NULL); 1410 ASSERT_TRUE(AddURL(0, i, title, url) != NULL);
1515 } 1411 }
1516 1412
1517 for (int j = 0; j < 3; ++j) { 1413 for (int j = 0; j < 3; ++j) {
1518 std::string title = IndexedURLTitle(j+4); 1414 std::string title = IndexedURLTitle(j+4);
1519 GURL url = GURL(IndexedURL(j+4)); 1415 GURL url = GURL(IndexedURL(j+4));
1520 ASSERT_TRUE(AddURL(0, j, title, url) != NULL); 1416 ASSERT_TRUE(AddURL(0, j, title, url) != NULL);
1521 } 1417 }
1522 1418
1523 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1419 ASSERT_TRUE(SetupSync());
1524 ASSERT_TRUE(AwaitQuiescence()); 1420 ASSERT_TRUE(AwaitAllModelsMatch());
1525 ASSERT_TRUE(AllModelsMatch());
1526 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); 1421 ASSERT_FALSE(ContainsDuplicateBookmarks(0));
1527 } 1422 }
1528 1423
1529 // TCM ID - 3616282 - Merge sets of duplicate bookmarks under bookmark bar. 1424 // TCM ID - 3616282 - Merge sets of duplicate bookmarks under bookmark bar.
1530 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 1425 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
1531 MC_Merge_SimpleBMHierarchy_DuplicateBMs_Under_BMBar) { 1426 MC_Merge_SimpleBMHierarchy_DuplicateBMs_Under_BMBar) {
1532 ASSERT_TRUE(SetupClients()) << "SetupClients() failed."; 1427 ASSERT_TRUE(SetupClients());
1533 DisableVerifier(); 1428 DisableVerifier();
1534 1429
1535 // Let's add duplicate set of bookmark {1,2,2,3,3,3,4,4,4,4} to client0. 1430 // Let's add duplicate set of bookmark {1,2,2,3,3,3,4,4,4,4} to client0.
1536 int node_index = 0; 1431 int node_index = 0;
1537 for (int i = 1; i < 5 ; ++i) { 1432 for (int i = 1; i < 5 ; ++i) {
1538 for (int j = 0; j < i; ++j) { 1433 for (int j = 0; j < i; ++j) {
1539 std::string title = IndexedURLTitle(i); 1434 std::string title = IndexedURLTitle(i);
1540 GURL url = GURL(IndexedURL(i)); 1435 GURL url = GURL(IndexedURL(i));
1541 ASSERT_TRUE(AddURL(0, node_index, title, url) != NULL); 1436 ASSERT_TRUE(AddURL(0, node_index, title, url) != NULL);
1542 ++node_index; 1437 ++node_index;
1543 } 1438 }
1544 } 1439 }
1545 // Let's add a set of bookmarks {1,2,3,4} to client1. 1440 // Let's add a set of bookmarks {1,2,3,4} to client1.
1546 for (int i = 0; i < 4; ++i) { 1441 for (int i = 0; i < 4; ++i) {
1547 std::string title = IndexedURLTitle(i+1); 1442 std::string title = IndexedURLTitle(i+1);
1548 GURL url = GURL(IndexedURL(i+1)); 1443 GURL url = GURL(IndexedURL(i+1));
1549 ASSERT_TRUE(AddURL(1, i, title, url) != NULL); 1444 ASSERT_TRUE(AddURL(1, i, title, url) != NULL);
1550 } 1445 }
1551 1446
1552 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1447 ASSERT_TRUE(SetupSync());
1553 ASSERT_TRUE(AwaitQuiescence()); 1448 ASSERT_TRUE(AwaitAllModelsMatch());
1554 ASSERT_TRUE(AllModelsMatch());
1555 1449
1556 for (int i = 1; i < 5 ; ++i) { 1450 for (int i = 1; i < 5 ; ++i) {
1557 ASSERT_TRUE(CountBookmarksWithTitlesMatching(1, IndexedURLTitle(i)) == i); 1451 ASSERT_TRUE(CountBookmarksWithTitlesMatching(1, IndexedURLTitle(i)) == i);
1558 } 1452 }
1559 } 1453 }
1560 1454
1561 // TCM ID - 6593872.
1562 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, DisableBookmarks) {
1563 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
1564 ASSERT_TRUE(AllModelsMatchVerifier());
1565
1566 ASSERT_TRUE(GetClient(1)->DisableSyncForDatatype(syncer::BOOKMARKS));
1567 ASSERT_TRUE(AddFolder(1, kGenericFolderName) != NULL);
1568 ASSERT_TRUE(AwaitQuiescence());
1569 ASSERT_FALSE(AllModelsMatch());
1570
1571 ASSERT_TRUE(GetClient(1)->EnableSyncForDatatype(syncer::BOOKMARKS));
1572 ASSERT_TRUE(AwaitQuiescence());
1573 ASSERT_TRUE(AllModelsMatch());
1574 }
1575
1576 // TCM ID - 7343544.
1577 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, DisableSync) {
1578 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
1579 ASSERT_TRUE(AllModelsMatchVerifier());
1580
1581 ASSERT_TRUE(GetClient(1)->DisableSyncForAllDatatypes());
1582 ASSERT_TRUE(AddFolder(0, IndexedFolderName(0)) != NULL);
1583 ASSERT_TRUE(AwaitCommitActivityCompletion(GetSyncService((0))));
1584 ASSERT_FALSE(AllModelsMatch());
1585
1586 ASSERT_TRUE(AddFolder(1, IndexedFolderName(1)) != NULL);
1587 ASSERT_FALSE(AllModelsMatch());
1588
1589 ASSERT_TRUE(GetClient(1)->EnableSyncForAllDatatypes());
1590 ASSERT_TRUE(AwaitQuiescence());
1591 ASSERT_TRUE(AllModelsMatch());
1592 }
1593
1594 // TCM ID - 3662298 - Test adding duplicate folder - Both with different BMs 1455 // TCM ID - 3662298 - Test adding duplicate folder - Both with different BMs
1595 // underneath. 1456 // underneath.
1596 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, MC_DuplicateFolders) { 1457 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, MC_DuplicateFolders) {
1597 ASSERT_TRUE(SetupClients()) << "SetupClients() failed."; 1458 ASSERT_TRUE(SetupClients());
1598 DisableVerifier(); 1459 DisableVerifier();
1599 1460
1600 const BookmarkNode* folder0 = AddFolder(0, kGenericFolderName); 1461 const BookmarkNode* folder0 = AddFolder(0, kGenericFolderName);
1601 ASSERT_TRUE(folder0 != NULL); 1462 ASSERT_TRUE(folder0 != NULL);
1602 const BookmarkNode* folder1 = AddFolder(1, kGenericFolderName); 1463 const BookmarkNode* folder1 = AddFolder(1, kGenericFolderName);
1603 ASSERT_TRUE(folder1 != NULL); 1464 ASSERT_TRUE(folder1 != NULL);
1604 for (int i = 0; i < 5; ++i) { 1465 for (int i = 0; i < 5; ++i) {
1605 std::string title0 = IndexedURLTitle(i); 1466 std::string title0 = IndexedURLTitle(i);
1606 GURL url0 = GURL(IndexedURL(i)); 1467 GURL url0 = GURL(IndexedURL(i));
1607 ASSERT_TRUE(AddURL(0, folder0, i, title0, url0) != NULL); 1468 ASSERT_TRUE(AddURL(0, folder0, i, title0, url0) != NULL);
1608 std::string title1 = IndexedURLTitle(i+5); 1469 std::string title1 = IndexedURLTitle(i+5);
1609 GURL url1 = GURL(IndexedURL(i+5)); 1470 GURL url1 = GURL(IndexedURL(i+5));
1610 ASSERT_TRUE(AddURL(1, folder1, i, title1, url1) != NULL); 1471 ASSERT_TRUE(AddURL(1, folder1, i, title1, url1) != NULL);
1611 } 1472 }
1612 1473
1613 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1474 ASSERT_TRUE(SetupSync());
1614 ASSERT_TRUE(AwaitQuiescence()); 1475 ASSERT_TRUE(AwaitAllModelsMatch());
1615 ASSERT_TRUE(AllModelsMatch());
1616 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); 1476 ASSERT_FALSE(ContainsDuplicateBookmarks(0));
1617 } 1477 }
1618 1478
1619 // This test fails when run with FakeServer and FakeServerInvalidationService. 1479 // This test fails when run with FakeServer and FakeServerInvalidationService.
1620 IN_PROC_BROWSER_TEST_F(LegacyTwoClientBookmarksSyncTest, MC_DeleteBookmark) { 1480 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, MC_DeleteBookmark) {
1621 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1481 ASSERT_TRUE(SetupSync());
1622 ASSERT_TRUE(GetClient(1)->DisableSyncForDatatype(syncer::BOOKMARKS)); 1482 ASSERT_TRUE(GetClient(1)->DisableSyncForDatatype(syncer::BOOKMARKS));
1623 1483
1624 const GURL bar_url("http://example.com/bar"); 1484 const GURL bar_url("http://example.com/bar");
1625 const GURL other_url("http://example.com/other"); 1485 const GURL other_url("http://example.com/other");
1626 1486
1627 ASSERT_TRUE(AddURL(0, GetBookmarkBarNode(0), 0, "bar", bar_url) != NULL); 1487 ASSERT_TRUE(AddURL(0, GetBookmarkBarNode(0), 0, "bar", bar_url) != NULL);
1628 ASSERT_TRUE(AddURL(0, GetOtherNode(0), 0, "other", other_url) != NULL); 1488 ASSERT_TRUE(AddURL(0, GetOtherNode(0), 0, "other", other_url) != NULL);
1629 1489
1630 ASSERT_TRUE(AwaitCommitActivityCompletion(GetSyncService((0))));
1631
1632 ASSERT_TRUE(HasNodeWithURL(0, bar_url)); 1490 ASSERT_TRUE(HasNodeWithURL(0, bar_url));
1633 ASSERT_TRUE(HasNodeWithURL(0, other_url)); 1491 ASSERT_TRUE(HasNodeWithURL(0, other_url));
1634 ASSERT_FALSE(HasNodeWithURL(1, bar_url)); 1492 ASSERT_FALSE(HasNodeWithURL(1, bar_url));
1635 ASSERT_FALSE(HasNodeWithURL(1, other_url)); 1493 ASSERT_FALSE(HasNodeWithURL(1, other_url));
1636 1494
1637 Remove(0, GetBookmarkBarNode(0), 0); 1495 Remove(0, GetBookmarkBarNode(0), 0);
1638 ASSERT_TRUE(AwaitCommitActivityCompletion(GetSyncService((0))));
1639 1496
1640 ASSERT_FALSE(HasNodeWithURL(0, bar_url)); 1497 ASSERT_FALSE(HasNodeWithURL(0, bar_url));
1641 ASSERT_TRUE(HasNodeWithURL(0, other_url)); 1498 ASSERT_TRUE(HasNodeWithURL(0, other_url));
1642 1499
1643 ASSERT_TRUE(GetClient(1)->EnableSyncForDatatype(syncer::BOOKMARKS)); 1500 ASSERT_TRUE(GetClient(1)->EnableSyncForDatatype(syncer::BOOKMARKS));
1644 ASSERT_TRUE(AwaitQuiescence()); 1501 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1645 1502
1646 ASSERT_FALSE(HasNodeWithURL(0, bar_url)); 1503 ASSERT_FALSE(HasNodeWithURL(0, bar_url));
1647 ASSERT_TRUE(HasNodeWithURL(0, other_url)); 1504 ASSERT_TRUE(HasNodeWithURL(0, other_url));
1648 ASSERT_FALSE(HasNodeWithURL(1, bar_url)); 1505 ASSERT_FALSE(HasNodeWithURL(1, bar_url));
1649 ASSERT_TRUE(HasNodeWithURL(1, other_url)); 1506 ASSERT_TRUE(HasNodeWithURL(1, other_url));
1650 } 1507 }
1651 1508
1652 // TCM ID - 3719307 - Test a scenario of updating the name of the same bookmark 1509 // TCM ID - 3719307 - Test a scenario of updating the name of the same bookmark
1653 // from two clients at the same time. 1510 // from two clients at the same time.
1654 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 1511 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
1655 MC_BookmarkNameChangeConflict) { 1512 MC_BookmarkNameChangeConflict) {
1656 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1513 ASSERT_TRUE(SetupSync());
1657 1514
1658 const BookmarkNode* folder0 = AddFolder(0, kGenericFolderName); 1515 const BookmarkNode* folder0 = AddFolder(0, kGenericFolderName);
1659 ASSERT_TRUE(folder0 != NULL); 1516 ASSERT_TRUE(folder0 != NULL);
1660 for (int i = 0; i < 3; ++i) { 1517 for (int i = 0; i < 3; ++i) {
1661 std::string title = IndexedURLTitle(i); 1518 std::string title = IndexedURLTitle(i);
1662 GURL url = GURL(IndexedURL(i)); 1519 GURL url = GURL(IndexedURL(i));
1663 ASSERT_TRUE(AddURL(0, folder0, i, title, url) != NULL); 1520 ASSERT_TRUE(AddURL(0, folder0, i, title, url) != NULL);
1664 } 1521 }
1665 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 1522 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1666 ASSERT_TRUE(AllModelsMatchVerifier());
1667 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); 1523 ASSERT_FALSE(ContainsDuplicateBookmarks(0));
1668 1524
1669 DisableVerifier(); 1525 DisableVerifier();
1670 GURL url(IndexedURL(0)); 1526 GURL url(IndexedURL(0));
1671 SetTitle(0, GetUniqueNodeByURL(0, url), "Title++"); 1527 SetTitle(0, GetUniqueNodeByURL(0, url), "Title++");
1672 SetTitle(1, GetUniqueNodeByURL(1, url), "Title--"); 1528 SetTitle(1, GetUniqueNodeByURL(1, url), "Title--");
1673 1529
1674 ASSERT_TRUE(AwaitQuiescence()); 1530 ASSERT_TRUE(AwaitAllModelsMatch());
1675 ASSERT_TRUE(AllModelsMatch());
1676 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); 1531 ASSERT_FALSE(ContainsDuplicateBookmarks(0));
1677 } 1532 }
1678 1533
1679 // TCM ID - 3672299 - Test a scenario of updating the URL of the same bookmark 1534 // TCM ID - 3672299 - Test a scenario of updating the URL of the same bookmark
1680 // from two clients at the same time. 1535 // from two clients at the same time.
1681 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 1536 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
1682 MC_BookmarkURLChangeConflict) { 1537 MC_BookmarkURLChangeConflict) {
1683 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1538 ASSERT_TRUE(SetupSync());
1684 1539
1685 const BookmarkNode* folder0 = AddFolder(0, kGenericFolderName); 1540 const BookmarkNode* folder0 = AddFolder(0, kGenericFolderName);
1686 ASSERT_TRUE(folder0 != NULL); 1541 ASSERT_TRUE(folder0 != NULL);
1687 for (int i = 0; i < 3; ++i) { 1542 for (int i = 0; i < 3; ++i) {
1688 std::string title = IndexedURLTitle(i); 1543 std::string title = IndexedURLTitle(i);
1689 GURL url = GURL(IndexedURL(i)); 1544 GURL url = GURL(IndexedURL(i));
1690 ASSERT_TRUE(AddURL(0, folder0, i, title, url) != NULL); 1545 ASSERT_TRUE(AddURL(0, folder0, i, title, url) != NULL);
1691 } 1546 }
1692 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 1547 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1693 ASSERT_TRUE(AllModelsMatchVerifier());
1694 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); 1548 ASSERT_FALSE(ContainsDuplicateBookmarks(0));
1695 1549
1696 DisableVerifier(); 1550 DisableVerifier();
1697 GURL url(IndexedURL(0)); 1551 GURL url(IndexedURL(0));
1698 ASSERT_TRUE(SetURL( 1552 ASSERT_TRUE(SetURL(
1699 0, GetUniqueNodeByURL(0, url), GURL("http://www.google.com/00"))); 1553 0, GetUniqueNodeByURL(0, url), GURL("http://www.google.com/00")));
1700 ASSERT_TRUE(SetURL( 1554 ASSERT_TRUE(SetURL(
1701 1, GetUniqueNodeByURL(1, url), GURL("http://www.google.com/11"))); 1555 1, GetUniqueNodeByURL(1, url), GURL("http://www.google.com/11")));
1702 1556
1703 ASSERT_TRUE(AwaitQuiescence()); 1557 ASSERT_TRUE(AwaitAllModelsMatch());
1704 ASSERT_TRUE(AllModelsMatch());
1705 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); 1558 ASSERT_FALSE(ContainsDuplicateBookmarks(0));
1706 } 1559 }
1707 1560
1708 // TCM ID - 3699290 - Test a scenario of updating the BM Folder name from two 1561 // TCM ID - 3699290 - Test a scenario of updating the BM Folder name from two
1709 // clients at the same time. 1562 // clients at the same time.
1710 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 1563 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
1711 MC_FolderNameChangeConflict) { 1564 MC_FolderNameChangeConflict) {
1712 ASSERT_TRUE(SetupClients()) << "SetupClients() failed."; 1565 ASSERT_TRUE(SetupClients());
1713 DisableVerifier(); 1566 DisableVerifier();
1714 1567
1715 const BookmarkNode* folderA[2]; 1568 const BookmarkNode* folderA[2];
1716 const BookmarkNode* folderB[2]; 1569 const BookmarkNode* folderB[2];
1717 const BookmarkNode* folderC[2]; 1570 const BookmarkNode* folderC[2];
1718 1571
1719 // Create empty folder A on both clients. 1572 // Create empty folder A on both clients.
1720 folderA[0] = AddFolder(0, IndexedFolderName(0)); 1573 folderA[0] = AddFolder(0, IndexedFolderName(0));
1721 ASSERT_TRUE(folderA[0] != NULL); 1574 ASSERT_TRUE(folderA[0] != NULL);
1722 folderA[1] = AddFolder(1, IndexedFolderName(0)); 1575 folderA[1] = AddFolder(1, IndexedFolderName(0));
(...skipping 19 matching lines...) Expand all
1742 std::string folder_name = IndexedSubfolderName(i); 1595 std::string folder_name = IndexedSubfolderName(i);
1743 const BookmarkNode* subfolder = AddFolder(0, folderC[0], i, folder_name); 1596 const BookmarkNode* subfolder = AddFolder(0, folderC[0], i, folder_name);
1744 ASSERT_TRUE(subfolder != NULL); 1597 ASSERT_TRUE(subfolder != NULL);
1745 for (int j = 0; j < 3; ++j) { 1598 for (int j = 0; j < 3; ++j) {
1746 std::string title = IndexedURLTitle(j); 1599 std::string title = IndexedURLTitle(j);
1747 GURL url = GURL(IndexedURL(j)); 1600 GURL url = GURL(IndexedURL(j));
1748 ASSERT_TRUE(AddURL(0, subfolder, j, title, url) != NULL); 1601 ASSERT_TRUE(AddURL(0, subfolder, j, title, url) != NULL);
1749 } 1602 }
1750 } 1603 }
1751 1604
1752 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1605 ASSERT_TRUE(SetupSync());
1753 ASSERT_TRUE(AwaitQuiescence()); 1606 ASSERT_TRUE(AwaitAllModelsMatch());
1754 ASSERT_TRUE(AllModelsMatch());
1755 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); 1607 ASSERT_FALSE(ContainsDuplicateBookmarks(0));
1756 1608
1757 // Simultaneously rename folder A on both clients. 1609 // Simultaneously rename folder A on both clients.
1758 SetTitle(0, folderA[0], "Folder A++"); 1610 SetTitle(0, folderA[0], "Folder A++");
1759 SetTitle(1, folderA[1], "Folder A--"); 1611 SetTitle(1, folderA[1], "Folder A--");
1760 ASSERT_TRUE(AwaitQuiescence()); 1612 ASSERT_TRUE(AwaitAllModelsMatch());
1761 ASSERT_TRUE(AllModelsMatch());
1762 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); 1613 ASSERT_FALSE(ContainsDuplicateBookmarks(0));
1763 1614
1764 // Simultaneously rename folder B on both clients. 1615 // Simultaneously rename folder B on both clients.
1765 SetTitle(0, folderB[0], "Folder B++"); 1616 SetTitle(0, folderB[0], "Folder B++");
1766 SetTitle(1, folderB[1], "Folder B--"); 1617 SetTitle(1, folderB[1], "Folder B--");
1767 ASSERT_TRUE(AwaitQuiescence()); 1618 ASSERT_TRUE(AwaitAllModelsMatch());
1768 ASSERT_TRUE(AllModelsMatch());
1769 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); 1619 ASSERT_FALSE(ContainsDuplicateBookmarks(0));
1770 1620
1771 // Simultaneously rename folder C on both clients. 1621 // Simultaneously rename folder C on both clients.
1772 SetTitle(0, folderC[0], "Folder C++"); 1622 SetTitle(0, folderC[0], "Folder C++");
1773 SetTitle(1, folderC[1], "Folder C--"); 1623 SetTitle(1, folderC[1], "Folder C--");
1774 ASSERT_TRUE(AwaitQuiescence()); 1624 ASSERT_TRUE(AwaitAllModelsMatch());
1775 ASSERT_TRUE(AllModelsMatch());
1776 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); 1625 ASSERT_FALSE(ContainsDuplicateBookmarks(0));
1777 } 1626 }
1778 1627
1779 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 1628 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
1780 SingleClientEnabledEncryption) { 1629 SingleClientEnabledEncryption) {
1781 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1630 ASSERT_TRUE(SetupSync());
1782 ASSERT_TRUE(AllModelsMatchVerifier()); 1631 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1783
1784 ASSERT_TRUE(EnableEncryption(0)); 1632 ASSERT_TRUE(EnableEncryption(0));
1785 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 1633 ASSERT_TRUE(AwaitEncryptionComplete(1));
1786 ASSERT_TRUE(IsEncryptionComplete(0)); 1634 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1787 ASSERT_TRUE(IsEncryptionComplete(1));
1788 ASSERT_TRUE(AllModelsMatchVerifier());
1789 } 1635 }
1790 1636
1791 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 1637 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
1792 SingleClientEnabledEncryptionAndChanged) { 1638 SingleClientEnabledEncryptionAndChanged) {
1793 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1639 ASSERT_TRUE(SetupSync());
1794 ASSERT_TRUE(AllModelsMatchVerifier()); 1640 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1795 1641
1796 ASSERT_TRUE(EnableEncryption(0)); 1642 ASSERT_TRUE(EnableEncryption(0));
1797 ASSERT_TRUE(AddURL(0, IndexedURLTitle(0), GURL(IndexedURL(0))) != NULL); 1643 ASSERT_TRUE(AddURL(0, IndexedURLTitle(0), GURL(IndexedURL(0))) != NULL);
1798 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 1644
1799 ASSERT_TRUE(IsEncryptionComplete(0)); 1645 ASSERT_TRUE(AwaitEncryptionComplete(1));
1800 ASSERT_TRUE(IsEncryptionComplete(1)); 1646 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1801 ASSERT_TRUE(AllModelsMatchVerifier());
1802 } 1647 }
1803 1648
1804 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 1649 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
1805 BothClientsEnabledEncryption) { 1650 BothClientsEnabledEncryption) {
1806 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1651 ASSERT_TRUE(SetupSync());
1807 ASSERT_TRUE(AllModelsMatchVerifier()); 1652 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1808 1653
1809 ASSERT_TRUE(EnableEncryption(0)); 1654 ASSERT_TRUE(EnableEncryption(0));
1810 ASSERT_TRUE(EnableEncryption(1)); 1655 ASSERT_TRUE(EnableEncryption(1));
1811 ASSERT_TRUE(AwaitQuiescence());
1812 ASSERT_TRUE(IsEncryptionComplete(0)); 1656 ASSERT_TRUE(IsEncryptionComplete(0));
1813 ASSERT_TRUE(IsEncryptionComplete(1)); 1657 ASSERT_TRUE(IsEncryptionComplete(1));
1814 ASSERT_TRUE(AllModelsMatchVerifier()); 1658 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1815 } 1659 }
1816 1660
1817 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 1661 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
1818 SingleClientEnabledEncryptionBothChanged) { 1662 SingleClientEnabledEncryptionBothChanged) {
1819 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1663 ASSERT_TRUE(SetupSync());
1820 ASSERT_TRUE(AllModelsMatchVerifier()); 1664 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1821 1665
1822 ASSERT_TRUE(EnableEncryption(0)); 1666 ASSERT_TRUE(EnableEncryption(0));
1823 ASSERT_TRUE(AwaitQuiescence()); 1667 ASSERT_TRUE(AwaitEncryptionComplete(1));
1824 ASSERT_TRUE(IsEncryptionComplete(0)); 1668
1825 ASSERT_TRUE(IsEncryptionComplete(1));
1826 ASSERT_TRUE(AddURL(0, IndexedURLTitle(0), GURL(IndexedURL(0))) != NULL); 1669 ASSERT_TRUE(AddURL(0, IndexedURLTitle(0), GURL(IndexedURL(0))) != NULL);
1827 ASSERT_TRUE(AddURL(0, IndexedURLTitle(1), GURL(IndexedURL(1))) != NULL); 1670 ASSERT_TRUE(AddURL(0, IndexedURLTitle(1), GURL(IndexedURL(1))) != NULL);
1828 ASSERT_TRUE(AwaitQuiescence()); 1671
1829 ASSERT_TRUE(AllModelsMatchVerifier()); 1672 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1830 ASSERT_TRUE(IsEncryptionComplete(0)); 1673 ASSERT_TRUE(IsEncryptionComplete(0));
1831 ASSERT_TRUE(IsEncryptionComplete(1)); 1674 ASSERT_TRUE(IsEncryptionComplete(1));
1832 } 1675 }
1833 1676
1834 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 1677 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
1835 SingleClientEnabledEncryptionAndChangedMultipleTimes) { 1678 SingleClientEnabledEncryptionAndChangedMultipleTimes) {
1836 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1679 ASSERT_TRUE(SetupSync());
1837 ASSERT_TRUE(AllModelsMatchVerifier()); 1680 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1838 1681
1839 ASSERT_TRUE(AddURL(0, IndexedURLTitle(0), GURL(IndexedURL(0))) != NULL); 1682 ASSERT_TRUE(AddURL(0, IndexedURLTitle(0), GURL(IndexedURL(0))) != NULL);
1840 ASSERT_TRUE(EnableEncryption(0)); 1683 ASSERT_TRUE(EnableEncryption(0));
1841 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 1684 ASSERT_TRUE(AwaitEncryptionComplete(1));
1842 ASSERT_TRUE(IsEncryptionComplete(0)); 1685 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1843 ASSERT_TRUE(IsEncryptionComplete(1));
1844 ASSERT_TRUE(AllModelsMatchVerifier());
1845 1686
1846 ASSERT_TRUE(AddURL(0, IndexedURLTitle(1), GURL(IndexedURL(1))) != NULL); 1687 ASSERT_TRUE(AddURL(0, IndexedURLTitle(1), GURL(IndexedURL(1))) != NULL);
1847 ASSERT_TRUE(AddFolder(0, IndexedFolderName(0)) != NULL); 1688 ASSERT_TRUE(AddFolder(0, IndexedFolderName(0)) != NULL);
1848 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 1689 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1849 ASSERT_TRUE(AllModelsMatchVerifier());
1850 } 1690 }
1851 1691
1852 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 1692 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
1853 FirstClientEnablesEncryptionWithPassSecondChanges) { 1693 FirstClientEnablesEncryptionWithPassSecondChanges) {
1854 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1694 ASSERT_TRUE(SetupSync());
1855 ASSERT_TRUE(AllModelsMatchVerifier()); 1695 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1856 1696
1857 // Add initial bookmarks. 1697 // Add initial bookmarks.
1858 ASSERT_TRUE(AddURL(0, 0, IndexedURLTitle(0), GURL(IndexedURL(0))) != NULL); 1698 ASSERT_TRUE(AddURL(0, 0, IndexedURLTitle(0), GURL(IndexedURL(0))) != NULL);
1859 ASSERT_TRUE(AddURL(0, 1, IndexedURLTitle(1), GURL(IndexedURL(1))) != NULL); 1699 ASSERT_TRUE(AddURL(0, 1, IndexedURLTitle(1), GURL(IndexedURL(1))) != NULL);
1860 ASSERT_TRUE(AddURL(0, 2, IndexedURLTitle(2), GURL(IndexedURL(2))) != NULL); 1700 ASSERT_TRUE(AddURL(0, 2, IndexedURLTitle(2), GURL(IndexedURL(2))) != NULL);
1861 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 1701 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1862 ASSERT_TRUE(AllModelsMatchVerifier());
1863 1702
1864 // Set a passphrase and enable encryption on Client 0. Client 1 will not 1703 // Set a passphrase and enable encryption on Client 0. Client 1 will not
1865 // understand the bookmark updates. 1704 // understand the bookmark updates.
1866 SetEncryptionPassphrase(0, kValidPassphrase, ProfileSyncService::EXPLICIT); 1705 SetEncryptionPassphrase(0, kValidPassphrase, ProfileSyncService::EXPLICIT);
1867 ASSERT_TRUE(AwaitPassphraseAccepted(GetSyncService((0)))); 1706 ASSERT_TRUE(AwaitPassphraseAccepted(GetSyncService((0))));
1868 ASSERT_TRUE(EnableEncryption(0)); 1707 ASSERT_TRUE(EnableEncryption(0));
1869 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 1708 ASSERT_TRUE(AwaitEncryptionComplete(1));
1870 ASSERT_TRUE(IsEncryptionComplete(0));
1871 ASSERT_TRUE(IsEncryptionComplete(1));
1872 ASSERT_TRUE(GetSyncService((1))->IsPassphraseRequired());
1873 1709
1874 // Client 1 adds bookmarks between the first two and between the second two. 1710 // Client 1 adds bookmarks between the first two and between the second two.
1875 ASSERT_TRUE(AddURL(0, 1, IndexedURLTitle(3), GURL(IndexedURL(3))) != NULL); 1711 ASSERT_TRUE(AddURL(0, 1, IndexedURLTitle(3), GURL(IndexedURL(3))) != NULL);
1876 ASSERT_TRUE(AddURL(0, 3, IndexedURLTitle(4), GURL(IndexedURL(4))) != NULL); 1712 ASSERT_TRUE(AddURL(0, 3, IndexedURLTitle(4), GURL(IndexedURL(4))) != NULL);
1877 EXPECT_FALSE(AllModelsMatchVerifier()); 1713 EXPECT_FALSE(AllModelsMatchVerifier());
1878 EXPECT_FALSE(AllModelsMatch()); 1714 EXPECT_FALSE(AllModelsMatch());
1879 1715
1880 // Set the passphrase. Everything should resolve. 1716 // Set the passphrase. Everything should resolve.
1881 ASSERT_TRUE(AwaitPassphraseRequired(GetSyncService((1)))); 1717 ASSERT_TRUE(AwaitPassphraseRequired(GetSyncService((1))));
1882 ASSERT_TRUE(SetDecryptionPassphrase(1, kValidPassphrase)); 1718 ASSERT_TRUE(SetDecryptionPassphrase(1, kValidPassphrase));
1883 ASSERT_TRUE(AwaitPassphraseAccepted(GetSyncService((1)))); 1719 ASSERT_TRUE(AwaitPassphraseAccepted(GetSyncService((1))));
1884 ASSERT_TRUE(AwaitQuiescence()); 1720 ASSERT_TRUE(AwaitAllModelsMatch());
1885 EXPECT_TRUE(AllModelsMatch());
1886 ASSERT_EQ(0, 1721 ASSERT_EQ(0,
1887 GetClient(1)->GetLastSessionSnapshot().num_encryption_conflicts()); 1722 GetClient(1)->GetLastSessionSnapshot().num_encryption_conflicts());
1888 1723
1889 // Ensure everything is syncing normally by appending a final bookmark. 1724 // Ensure everything is syncing normally by appending a final bookmark.
1890 ASSERT_TRUE(AddURL(1, 5, IndexedURLTitle(5), GURL(IndexedURL(5))) != NULL); 1725 ASSERT_TRUE(AddURL(1, 5, IndexedURLTitle(5), GURL(IndexedURL(5))) != NULL);
1891 ASSERT_TRUE(GetClient(1)->AwaitMutualSyncCycleCompletion(GetClient(0))); 1726 EXPECT_TRUE(AwaitAllModelsMatch());
1892 EXPECT_TRUE(AllModelsMatch());
1893 ASSERT_EQ(0, 1727 ASSERT_EQ(0,
1894 GetClient(1)->GetLastSessionSnapshot().num_encryption_conflicts()); 1728 GetClient(1)->GetLastSessionSnapshot().num_encryption_conflicts());
1895 } 1729 }
1896 1730
1897 // Deliberately racy rearranging of bookmarks to test that our conflict resolver 1731 // Deliberately racy rearranging of bookmarks to test that our conflict resolver
1898 // code results in a consistent view across machines (no matter what the final 1732 // code results in a consistent view across machines (no matter what the final
1899 // order is). 1733 // order is).
1900 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, RacyPositionChanges) { 1734 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, RacyPositionChanges) {
1901 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1735 ASSERT_TRUE(SetupSync());
1902 ASSERT_TRUE(AllModelsMatchVerifier()); 1736 ASSERT_TRUE(AllModelsMatchVerifier());
1903 1737
1904 // Add initial bookmarks. 1738 // Add initial bookmarks.
1905 size_t num_bookmarks = 5; 1739 size_t num_bookmarks = 5;
1906 for (size_t i = 0; i < num_bookmarks; ++i) { 1740 for (size_t i = 0; i < num_bookmarks; ++i) {
1907 ASSERT_TRUE(AddURL(0, i, IndexedURLTitle(i), GURL(IndexedURL(i))) != NULL); 1741 ASSERT_TRUE(AddURL(0, i, IndexedURLTitle(i), GURL(IndexedURL(i))) != NULL);
1908 } 1742 }
1909 1743
1910 // Once we make diverging changes the verifer is helpless. 1744 // Once we make diverging changes the verifer is helpless.
1911 ASSERT_TRUE(AwaitQuiescence()); 1745 ASSERT_TRUE(AwaitAllModelsMatch());
1912 ASSERT_TRUE(AllModelsMatchVerifier());
1913 DisableVerifier(); 1746 DisableVerifier();
1914 1747
1915 // Make changes on client 0. 1748 // Make changes on client 0.
1916 for (size_t i = 0; i < num_bookmarks; ++i) { 1749 for (size_t i = 0; i < num_bookmarks; ++i) {
1917 const BookmarkNode* node = GetUniqueNodeByURL(0, GURL(IndexedURL(i))); 1750 const BookmarkNode* node = GetUniqueNodeByURL(0, GURL(IndexedURL(i)));
1918 int rand_pos = base::RandInt(0, num_bookmarks-1); 1751 int rand_pos = base::RandInt(0, num_bookmarks-1);
1919 DVLOG(1) << "Moving client 0's bookmark " << i << " to position " 1752 DVLOG(1) << "Moving client 0's bookmark " << i << " to position "
1920 << rand_pos; 1753 << rand_pos;
1921 Move(0, node, node->parent(), rand_pos); 1754 Move(0, node, node->parent(), rand_pos);
1922 } 1755 }
1923 1756
1924 // Make changes on client 1. 1757 // Make changes on client 1.
1925 for (size_t i = 0; i < num_bookmarks; ++i) { 1758 for (size_t i = 0; i < num_bookmarks; ++i) {
1926 const BookmarkNode* node = GetUniqueNodeByURL(1, GURL(IndexedURL(i))); 1759 const BookmarkNode* node = GetUniqueNodeByURL(1, GURL(IndexedURL(i)));
1927 int rand_pos = base::RandInt(0, num_bookmarks-1); 1760 int rand_pos = base::RandInt(0, num_bookmarks-1);
1928 DVLOG(1) << "Moving client 1's bookmark " << i << " to position " 1761 DVLOG(1) << "Moving client 1's bookmark " << i << " to position "
1929 << rand_pos; 1762 << rand_pos;
1930 Move(1, node, node->parent(), rand_pos); 1763 Move(1, node, node->parent(), rand_pos);
1931 } 1764 }
1932 1765
1933 ASSERT_TRUE(AwaitQuiescence()); 1766 ASSERT_TRUE(AwaitAllModelsMatch());
1934 ASSERT_TRUE(AllModelsMatch());
1935 1767
1936 // Now make changes to client 1 first. 1768 // Now make changes to client 1 first.
1937 for (size_t i = 0; i < num_bookmarks; ++i) { 1769 for (size_t i = 0; i < num_bookmarks; ++i) {
1938 const BookmarkNode* node = GetUniqueNodeByURL(1, GURL(IndexedURL(i))); 1770 const BookmarkNode* node = GetUniqueNodeByURL(1, GURL(IndexedURL(i)));
1939 int rand_pos = base::RandInt(0, num_bookmarks-1); 1771 int rand_pos = base::RandInt(0, num_bookmarks-1);
1940 DVLOG(1) << "Moving client 1's bookmark " << i << " to position " 1772 DVLOG(1) << "Moving client 1's bookmark " << i << " to position "
1941 << rand_pos; 1773 << rand_pos;
1942 Move(1, node, node->parent(), rand_pos); 1774 Move(1, node, node->parent(), rand_pos);
1943 } 1775 }
1944 1776
1945 // Make changes on client 0. 1777 // Make changes on client 0.
1946 for (size_t i = 0; i < num_bookmarks; ++i) { 1778 for (size_t i = 0; i < num_bookmarks; ++i) {
1947 const BookmarkNode* node = GetUniqueNodeByURL(0, GURL(IndexedURL(i))); 1779 const BookmarkNode* node = GetUniqueNodeByURL(0, GURL(IndexedURL(i)));
1948 int rand_pos = base::RandInt(0, num_bookmarks-1); 1780 int rand_pos = base::RandInt(0, num_bookmarks-1);
1949 DVLOG(1) << "Moving client 0's bookmark " << i << " to position " 1781 DVLOG(1) << "Moving client 0's bookmark " << i << " to position "
1950 << rand_pos; 1782 << rand_pos;
1951 Move(0, node, node->parent(), rand_pos); 1783 Move(0, node, node->parent(), rand_pos);
1952 } 1784 }
1953 1785
1954 ASSERT_TRUE(AwaitQuiescence()); 1786 ASSERT_TRUE(AwaitAllModelsMatch());
1955 ASSERT_TRUE(AllModelsMatch());
1956 } 1787 }
1957 1788
1958 // Trigger the server side creation of Synced Bookmarks. Ensure both clients 1789 // Trigger the server side creation of Synced Bookmarks. Ensure both clients
1959 // remain syncing afterwards. Add bookmarks to the synced bookmarks folder 1790 // remain syncing afterwards. Add bookmarks to the synced bookmarks folder
1960 // and ensure both clients receive the boomkmark. 1791 // and ensure both clients receive the boomkmark.
1961 IN_PROC_BROWSER_TEST_F(LegacyTwoClientBookmarksSyncTest, 1792 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, CreateSyncedBookmarks) {
1962 CreateSyncedBookmarks) { 1793 std::string title = "Montreal Canadiens";
1963 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1794 fake_server::EntityBuilderFactory entity_builder_factory;
1964 ASSERT_TRUE(AllModelsMatchVerifier()); 1795 scoped_ptr<fake_server::FakeServerEntity> entity =
1796 entity_builder_factory.NewBookmarkEntityBuilder(
1797 title, GURL("http://canadiens.nhl.com"))
1798 .Build();
1799 fake_server_->InjectEntity(entity.Pass());
1965 1800
1966 TriggerCreateSyncedBookmarks(); 1801 DisableVerifier();
1802 ASSERT_TRUE(SetupSync());
1803 ASSERT_TRUE(AwaitAllModelsMatch());
1967 1804
1968 // Add a bookmark on Client 0 and ensure it syncs over. This will also trigger 1805 ASSERT_EQ(1, CountBookmarksWithTitlesMatching(0, title));
1969 // both clients downloading the new Synced Bookmarks folder. 1806 ASSERT_EQ(1, CountBookmarksWithTitlesMatching(1, title));
1970 ASSERT_TRUE(AddURL(0, "Google", GURL("http://www.google.com")));
1971 ASSERT_TRUE(AwaitQuiescence());
1972 ASSERT_TRUE(AllModelsMatch());
1973
1974 // Now add a bookmark within the Synced Bookmarks folder and ensure it syncs
1975 // over.
1976 const BookmarkNode* synced_bookmarks = GetSyncedBookmarksNode(0);
1977 ASSERT_TRUE(synced_bookmarks);
1978 ASSERT_TRUE(AddURL(0, synced_bookmarks, 0, "Google2",
1979 GURL("http://www.google2.com")));
1980 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
1981 ASSERT_TRUE(AllModelsMatch());
1982 } 1807 }
1983 1808
1984 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest, 1809 IN_PROC_BROWSER_TEST_F(TwoClientBookmarksSyncTest,
1985 BookmarkAllNodesRemovedEvent) { 1810 BookmarkAllNodesRemovedEvent) {
1986 1811 ASSERT_TRUE(SetupSync());
1987 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 1812 ASSERT_TRUE(AwaitAllModelsMatchVerifier());
1988 ASSERT_TRUE(AllModelsMatchVerifier());
1989 1813
1990 // Starting state: 1814 // Starting state:
1991 // other_node 1815 // other_node
1992 // -> folder0 1816 // -> folder0
1993 // -> tier1_a 1817 // -> tier1_a
1994 // -> http://mail.google.com 1818 // -> http://mail.google.com
1995 // -> http://www.google.com 1819 // -> http://www.google.com
1996 // -> http://news.google.com 1820 // -> http://news.google.com
1997 // -> http://yahoo.com 1821 // -> http://yahoo.com
1998 // -> http://www.cnn.com 1822 // -> http://www.cnn.com
(...skipping 12 matching lines...) Expand all
2011 ASSERT_TRUE( 1835 ASSERT_TRUE(
2012 AddURL(0, GetOtherNode(0), 1, "CNN", GURL("http://www.cnn.com"))); 1836 AddURL(0, GetOtherNode(0), 1, "CNN", GURL("http://www.cnn.com")));
2013 1837
2014 ASSERT_TRUE(AddFolder(0, GetBookmarkBarNode(0), 0, "empty_folder")); 1838 ASSERT_TRUE(AddFolder(0, GetBookmarkBarNode(0), 0, "empty_folder"));
2015 const BookmarkNode* folder1 = 1839 const BookmarkNode* folder1 =
2016 AddFolder(0, GetBookmarkBarNode(0), 1, "folder1"); 1840 AddFolder(0, GetBookmarkBarNode(0), 1, "folder1");
2017 ASSERT_TRUE(AddURL(0, folder1, 0, "Yahoo", GURL("http://www.yahoo.com"))); 1841 ASSERT_TRUE(AddURL(0, folder1, 0, "Yahoo", GURL("http://www.yahoo.com")));
2018 ASSERT_TRUE( 1842 ASSERT_TRUE(
2019 AddURL(0, GetBookmarkBarNode(0), 2, "Gmai", GURL("http://gmail.com"))); 1843 AddURL(0, GetBookmarkBarNode(0), 2, "Gmai", GURL("http://gmail.com")));
2020 1844
2021 ASSERT_TRUE(AwaitQuiescence()); 1845 ASSERT_TRUE(AwaitAllModelsMatch());
2022 ASSERT_TRUE(AllModelsMatch());
2023 1846
2024 // Remove all 1847 // Remove all
2025 RemoveAll(0); 1848 RemoveAll(0);
2026 1849
2027 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 1850 ASSERT_TRUE(AwaitAllModelsMatch());
1851
2028 // Verify other node has no children now. 1852 // Verify other node has no children now.
2029 EXPECT_EQ(0, GetOtherNode(0)->child_count()); 1853 EXPECT_EQ(0, GetOtherNode(0)->child_count());
2030 EXPECT_EQ(0, GetBookmarkBarNode(0)->child_count()); 1854 EXPECT_EQ(0, GetBookmarkBarNode(0)->child_count());
2031 ASSERT_TRUE(AllModelsMatch());
2032 } 1855 }
OLDNEW
« no previous file with comments | « chrome/browser/sync/test/integration/sync_test.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698