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

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

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

Powered by Google App Engine
This is Rietveld 408576698