OLD | NEW |
| (Empty) |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "base/rand_util.h" | |
6 #include "chrome/browser/profiles/profile.h" | |
7 #include "chrome/browser/sync/profile_sync_service_harness.h" | |
8 #include "chrome/test/live_sync/live_bookmarks_sync_test.h" | |
9 | |
10 const std::string kGenericURL = "http://www.host.ext:1234/path/filename"; | |
11 const std::wstring kGenericURLTitle = L"URL Title"; | |
12 const std::wstring kGenericFolderName = L"Folder Name"; | |
13 const std::wstring kGenericSubfolderName = L"Subfolder Name"; | |
14 const std::wstring kGenericSubsubfolderName = L"Subsubfolder Name"; | |
15 | |
16 const std::vector<unsigned char> GenericFavicon() { | |
17 return LiveBookmarksSyncTest::CreateFavicon(254); | |
18 } | |
19 | |
20 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, Sanity) { | |
21 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
22 ASSERT_TRUE(AllModelsMatchVerifier()); | |
23 | |
24 GURL google_url("http://www.google.com"); | |
25 ASSERT_TRUE(AddURL(0, L"Google", google_url) != NULL); | |
26 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
27 ASSERT_TRUE(AddURL(1, L"Yahoo", GURL("http://www.yahoo.com")) != NULL); | |
28 ASSERT_TRUE(GetClient(1)->AwaitMutualSyncCycleCompletion(GetClient(0))); | |
29 ASSERT_TRUE(AllModelsMatchVerifier()); | |
30 | |
31 const BookmarkNode* new_folder = AddFolder(0, 2, L"New Folder"); | |
32 Move(0, GetUniqueNodeByURL(0, google_url), new_folder, 0); | |
33 SetTitle(0, GetBookmarkBarNode(0)->GetChild(0), L"Yahoo!!"); | |
34 ASSERT_TRUE(AddURL(0, GetBookmarkBarNode(0), 1, L"CNN", | |
35 GURL("http://www.cnn.com")) != NULL); | |
36 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
37 ASSERT_TRUE(AllModelsMatchVerifier()); | |
38 | |
39 ASSERT_TRUE(AddURL(1, L"Facebook", GURL("http://www.facebook.com")) != NULL); | |
40 ASSERT_TRUE(GetClient(1)->AwaitMutualSyncCycleCompletion(GetClient(0))); | |
41 ASSERT_TRUE(AllModelsMatchVerifier()); | |
42 | |
43 SortChildren(1, GetBookmarkBarNode(1)); | |
44 ASSERT_TRUE(GetClient(1)->AwaitMutualSyncCycleCompletion(GetClient(0))); | |
45 ASSERT_TRUE(AllModelsMatchVerifier()); | |
46 | |
47 DisableVerifier(); | |
48 SetTitle(0, GetUniqueNodeByURL(0, google_url), L"Google++"); | |
49 SetTitle(1, GetUniqueNodeByURL(1, google_url), L"Google--"); | |
50 ASSERT_TRUE(AwaitQuiescence()); | |
51 ASSERT_TRUE(AllModelsMatch()); | |
52 } | |
53 | |
54 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, SimultaneousURLChanges) { | |
55 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
56 ASSERT_TRUE(AllModelsMatchVerifier()); | |
57 | |
58 GURL initial_url("http://www.google.com"); | |
59 GURL second_url("http://www.google.com/abc"); | |
60 GURL third_url("http://www.google.com/def"); | |
61 std::wstring title = L"Google"; | |
62 | |
63 ASSERT_TRUE(AddURL(0, title, initial_url) != NULL); | |
64 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
65 | |
66 DisableVerifier(); | |
67 ASSERT_TRUE( | |
68 SetURL(0, GetUniqueNodeByURL(0, initial_url), second_url) != NULL); | |
69 ASSERT_TRUE( | |
70 SetURL(1, GetUniqueNodeByURL(1, initial_url), third_url) != NULL); | |
71 ASSERT_TRUE(AwaitQuiescence()); | |
72 ASSERT_TRUE(AllModelsMatch()); | |
73 | |
74 SetTitle(0, GetBookmarkBarNode(0)->GetChild(0), L"Google1"); | |
75 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
76 ASSERT_TRUE(AllModelsMatch()); | |
77 } | |
78 | |
79 // Test Scribe ID - 370558. | |
80 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, SC_AddFirstFolder) { | |
81 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
82 ASSERT_TRUE(AllModelsMatchVerifier()); | |
83 | |
84 ASSERT_TRUE(AddFolder(0, kGenericFolderName) != NULL); | |
85 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
86 ASSERT_TRUE(AllModelsMatchVerifier()); | |
87 } | |
88 | |
89 // Test Scribe ID - 370559. | |
90 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
91 SC_AddFirstBMWithoutFavicon) { | |
92 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
93 ASSERT_TRUE(AllModelsMatchVerifier()); | |
94 | |
95 ASSERT_TRUE(AddURL(0, kGenericURLTitle, GURL(kGenericURL)) != NULL); | |
96 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
97 ASSERT_TRUE(AllModelsMatchVerifier()); | |
98 } | |
99 | |
100 // Test Scribe ID - 370489. | |
101 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
102 SC_AddFirstBMWithFavicon) { | |
103 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
104 ASSERT_TRUE(AllModelsMatchVerifier()); | |
105 | |
106 const BookmarkNode* bookmark = AddURL(0, kGenericURLTitle, GURL(kGenericURL)); | |
107 ASSERT_TRUE(bookmark != NULL); | |
108 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
109 SetFavicon(0, bookmark, GenericFavicon()); | |
110 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
111 ASSERT_TRUE(AllModelsMatchVerifier()); | |
112 } | |
113 | |
114 // Test Scribe ID - 370560. | |
115 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, SC_AddNonHTTPBMs) { | |
116 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
117 ASSERT_TRUE(AllModelsMatchVerifier()); | |
118 | |
119 ASSERT_TRUE(AddURL( | |
120 0, L"FTP URL", GURL("ftp://user:password@host:1234/path")) != NULL); | |
121 ASSERT_TRUE(AddURL(0, L"File URL", GURL("file://host/path")) != NULL); | |
122 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
123 ASSERT_TRUE(AllModelsMatchVerifier()); | |
124 } | |
125 | |
126 // Test Scribe ID - 370561. | |
127 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
128 SC_AddFirstBMUnderFolder) { | |
129 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
130 ASSERT_TRUE(AllModelsMatchVerifier()); | |
131 | |
132 const BookmarkNode* folder = AddFolder(0, kGenericFolderName); | |
133 ASSERT_TRUE(folder != NULL); | |
134 ASSERT_TRUE( | |
135 AddURL(0, folder, 0, kGenericURLTitle, GURL(kGenericURL)) != NULL); | |
136 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
137 ASSERT_TRUE(AllModelsMatchVerifier()); | |
138 } | |
139 | |
140 // Test Scribe ID - 370562. | |
141 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
142 SC_AddSeveralBMsUnderBMBarAndOtherBM) { | |
143 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
144 ASSERT_TRUE(AllModelsMatchVerifier()); | |
145 | |
146 for (int i = 0; i < 20; ++i) { | |
147 std::wstring title = IndexedURLTitle(i); | |
148 GURL url = GURL(IndexedURL(i)); | |
149 ASSERT_TRUE(AddURL(0, i, title, url) != NULL); | |
150 ASSERT_TRUE(AddURL(0, GetOtherNode(0), i, title, url) != NULL); | |
151 } | |
152 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
153 ASSERT_TRUE(AllModelsMatchVerifier()); | |
154 } | |
155 | |
156 // Test Scribe ID - 370563. | |
157 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
158 SC_AddSeveralBMsAndFolders) { | |
159 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
160 ASSERT_TRUE(AllModelsMatchVerifier()); | |
161 | |
162 for (int i = 0; i < 15; ++i) { | |
163 if (base::RandDouble() > 0.6) { | |
164 std::wstring title = IndexedURLTitle(i); | |
165 GURL url = GURL(IndexedURL(i)); | |
166 ASSERT_TRUE(AddURL(0, i, title, url) != NULL); | |
167 } else { | |
168 std::wstring title = IndexedFolderName(i); | |
169 const BookmarkNode* folder = AddFolder(0, i, title); | |
170 ASSERT_TRUE(folder != NULL); | |
171 if (base::RandDouble() > 0.4) { | |
172 for (int i = 0; i < 20; ++i) { | |
173 std::wstring title = IndexedURLTitle(i); | |
174 GURL url = GURL(IndexedURL(i)); | |
175 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL); | |
176 } | |
177 } | |
178 } | |
179 } | |
180 for (int i = 0; i < 10; i++) { | |
181 std::wstring title = IndexedURLTitle(i); | |
182 GURL url = GURL(IndexedURL(i)); | |
183 ASSERT_TRUE(AddURL(0, GetOtherNode(0), i, title, url) != NULL); | |
184 } | |
185 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
186 ASSERT_TRUE(AllModelsMatchVerifier()); | |
187 } | |
188 | |
189 // Test Scribe ID - 370641. | |
190 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
191 SC_DuplicateBMWithDifferentURLSameName) { | |
192 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
193 ASSERT_TRUE(AllModelsMatchVerifier()); | |
194 | |
195 GURL url0 = GURL(IndexedURL(0)); | |
196 GURL url1 = GURL(IndexedURL(1)); | |
197 ASSERT_TRUE(AddURL(0, kGenericURLTitle, url0) != NULL); | |
198 ASSERT_TRUE(AddURL(0, kGenericURLTitle, url1) != NULL); | |
199 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
200 ASSERT_TRUE(AllModelsMatchVerifier()); | |
201 } | |
202 | |
203 // Test Scribe ID - 370639 - Add bookmarks with different name and same URL. | |
204 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
205 SC_DuplicateBookmarksWithSameURL) { | |
206 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
207 ASSERT_TRUE(AllModelsMatchVerifier()); | |
208 | |
209 std::wstring title0 = IndexedURLTitle(0); | |
210 std::wstring title1 = IndexedURLTitle(1); | |
211 ASSERT_TRUE(AddURL(0, title0, GURL(kGenericURL)) != NULL); | |
212 ASSERT_TRUE(AddURL(0, title1, GURL(kGenericURL)) != NULL); | |
213 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
214 ASSERT_TRUE(AllModelsMatchVerifier()); | |
215 } | |
216 | |
217 // Test Scribe ID - 371817. | |
218 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, SC_RenameBMName) { | |
219 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
220 ASSERT_TRUE(AllModelsMatchVerifier()); | |
221 | |
222 std::wstring title = IndexedURLTitle(1); | |
223 const BookmarkNode* bookmark = AddURL(0, title, GURL(kGenericURL)); | |
224 ASSERT_TRUE(bookmark != NULL); | |
225 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
226 ASSERT_TRUE(AllModelsMatchVerifier()); | |
227 | |
228 std::wstring new_title = IndexedURLTitle(2); | |
229 SetTitle(0, bookmark, new_title); | |
230 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
231 ASSERT_TRUE(AllModelsMatchVerifier()); | |
232 } | |
233 | |
234 // Test Scribe ID - 371822. | |
235 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, SC_RenameBMURL) { | |
236 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
237 ASSERT_TRUE(AllModelsMatchVerifier()); | |
238 | |
239 GURL url = GURL(IndexedURL(1)); | |
240 const BookmarkNode* bookmark = AddURL(0, kGenericURLTitle, url); | |
241 ASSERT_TRUE(bookmark != NULL); | |
242 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
243 ASSERT_TRUE(AllModelsMatchVerifier()); | |
244 | |
245 GURL new_url = GURL(IndexedURL(2)); | |
246 ASSERT_TRUE(SetURL(0, bookmark, new_url) != NULL); | |
247 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
248 ASSERT_TRUE(AllModelsMatchVerifier()); | |
249 } | |
250 | |
251 | |
252 // Test Scribe ID - 371818 - Renaming the same bookmark name twice. | |
253 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
254 SC_TwiceRenamingBookmarkName) { | |
255 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
256 ASSERT_TRUE(AllModelsMatchVerifier()); | |
257 | |
258 std::wstring title = IndexedURLTitle(1); | |
259 const BookmarkNode* bookmark = AddURL(0, title, GURL(kGenericURL)); | |
260 ASSERT_TRUE(bookmark != NULL); | |
261 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
262 ASSERT_TRUE(AllModelsMatchVerifier()); | |
263 | |
264 std::wstring new_title = IndexedURLTitle(2); | |
265 SetTitle(0, bookmark, new_title); | |
266 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
267 ASSERT_TRUE(AllModelsMatchVerifier()); | |
268 | |
269 SetTitle(0, bookmark, title); | |
270 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
271 ASSERT_TRUE(AllModelsMatchVerifier()); | |
272 } | |
273 | |
274 // Test Scribe ID - 371823 - Renaming the same bookmark URL twice. | |
275 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
276 SC_TwiceRenamingBookmarkURL) { | |
277 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
278 ASSERT_TRUE(AllModelsMatchVerifier()); | |
279 | |
280 GURL url = GURL(IndexedURL(1)); | |
281 const BookmarkNode* bookmark = AddURL(0, kGenericURLTitle, url); | |
282 ASSERT_TRUE(bookmark != NULL); | |
283 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
284 ASSERT_TRUE(AllModelsMatchVerifier()); | |
285 | |
286 GURL new_url = GURL(IndexedURL(2)); | |
287 ASSERT_TRUE(SetURL(0, bookmark, new_url) != NULL); | |
288 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
289 ASSERT_TRUE(AllModelsMatchVerifier()); | |
290 | |
291 ASSERT_TRUE(SetURL(0, bookmark, url) != NULL); | |
292 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
293 ASSERT_TRUE(AllModelsMatchVerifier()); | |
294 } | |
295 | |
296 // Test Scribe ID - 371824. | |
297 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, SC_RenameBMFolder) { | |
298 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
299 ASSERT_TRUE(AllModelsMatchVerifier()); | |
300 | |
301 std::wstring title = IndexedFolderName(1); | |
302 const BookmarkNode* folder = AddFolder(0, title); | |
303 ASSERT_TRUE( | |
304 AddURL(0, folder, 0, kGenericURLTitle, GURL(kGenericURL)) != NULL); | |
305 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
306 ASSERT_TRUE(AllModelsMatchVerifier()); | |
307 | |
308 std::wstring new_title = IndexedFolderName(2); | |
309 SetTitle(0, folder, new_title); | |
310 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
311 ASSERT_TRUE(AllModelsMatchVerifier()); | |
312 } | |
313 | |
314 // Test Scribe ID - 371825. | |
315 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, SC_RenameEmptyBMFolder) { | |
316 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
317 ASSERT_TRUE(AllModelsMatchVerifier()); | |
318 | |
319 std::wstring title = IndexedFolderName(1); | |
320 const BookmarkNode* folder = AddFolder(0, title); | |
321 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
322 ASSERT_TRUE(AllModelsMatchVerifier()); | |
323 | |
324 std::wstring new_title = IndexedFolderName(2); | |
325 SetTitle(0, folder, new_title); | |
326 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
327 ASSERT_TRUE(AllModelsMatchVerifier()); | |
328 } | |
329 | |
330 // Test Scribe ID - 371826. | |
331 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
332 SC_RenameBMFolderWithLongHierarchy) { | |
333 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
334 ASSERT_TRUE(AllModelsMatchVerifier()); | |
335 | |
336 std::wstring title = IndexedFolderName(1); | |
337 const BookmarkNode* folder = AddFolder(0, title); | |
338 ASSERT_TRUE(folder != NULL); | |
339 for (int i = 0; i < 120; ++i) { | |
340 if (base::RandDouble() > 0.15) { | |
341 std::wstring title = IndexedURLTitle(i); | |
342 GURL url = GURL(IndexedURL(i)); | |
343 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL); | |
344 } else { | |
345 std::wstring title = IndexedSubfolderName(i); | |
346 ASSERT_TRUE(AddFolder(0, folder, i, title) != NULL); | |
347 } | |
348 } | |
349 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
350 ASSERT_TRUE(AllModelsMatchVerifier()); | |
351 | |
352 std::wstring new_title = IndexedFolderName(2); | |
353 SetTitle(0, folder, new_title); | |
354 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
355 ASSERT_TRUE(AllModelsMatchVerifier()); | |
356 } | |
357 | |
358 // Test Scribe ID - 371827. | |
359 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
360 SC_RenameBMFolderThatHasParentAndChildren) { | |
361 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
362 ASSERT_TRUE(AllModelsMatchVerifier()); | |
363 | |
364 const BookmarkNode* folder = AddFolder(0, kGenericFolderName); | |
365 ASSERT_TRUE(folder != NULL); | |
366 for (int i = 1; i < 15; ++i) { | |
367 std::wstring title = IndexedURLTitle(i); | |
368 GURL url = GURL(IndexedURL(i)); | |
369 ASSERT_TRUE(AddURL(0, i, title, url) != NULL); | |
370 } | |
371 std::wstring title = IndexedSubfolderName(1); | |
372 const BookmarkNode* subfolder = AddFolder(0, folder, 0, title); | |
373 for (int i = 0; i < 120; ++i) { | |
374 if (base::RandDouble() > 0.15) { | |
375 std::wstring title = IndexedURLTitle(i); | |
376 GURL url = GURL(IndexedURL(i)); | |
377 ASSERT_TRUE(AddURL(0, subfolder, i, title, url) != NULL); | |
378 } else { | |
379 std::wstring title = IndexedSubsubfolderName(i); | |
380 ASSERT_TRUE(AddFolder(0, subfolder, i, title) != NULL); | |
381 } | |
382 } | |
383 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
384 ASSERT_TRUE(AllModelsMatchVerifier()); | |
385 | |
386 std::wstring new_title = IndexedSubfolderName(2); | |
387 SetTitle(0, subfolder, new_title); | |
388 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
389 ASSERT_TRUE(AllModelsMatchVerifier()); | |
390 } | |
391 | |
392 // Test Scribe ID - 371828. | |
393 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, SC_RenameBMNameAndURL) { | |
394 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
395 ASSERT_TRUE(AllModelsMatchVerifier()); | |
396 | |
397 GURL url = GURL(IndexedURL(1)); | |
398 std::wstring title = IndexedURLTitle(1); | |
399 const BookmarkNode* bookmark = AddURL(0, title, url); | |
400 ASSERT_TRUE(bookmark != NULL); | |
401 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
402 ASSERT_TRUE(AllModelsMatchVerifier()); | |
403 | |
404 GURL new_url = GURL(IndexedURL(2)); | |
405 std::wstring new_title = IndexedURLTitle(2); | |
406 bookmark = SetURL(0, bookmark, new_url); | |
407 ASSERT_TRUE(bookmark != NULL); | |
408 SetTitle(0, bookmark, new_title); | |
409 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
410 ASSERT_TRUE(AllModelsMatchVerifier()); | |
411 } | |
412 | |
413 // Test Scribe ID - 371832. | |
414 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
415 SC_DeleteBMEmptyAccountAfterwards) { | |
416 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
417 ASSERT_TRUE(AllModelsMatchVerifier()); | |
418 | |
419 ASSERT_TRUE(AddURL(0, kGenericURLTitle, GURL(kGenericURL)) != NULL); | |
420 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
421 ASSERT_TRUE(AllModelsMatchVerifier()); | |
422 | |
423 Remove(0, GetBookmarkBarNode(0), 0); | |
424 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
425 ASSERT_TRUE(AllModelsMatchVerifier()); | |
426 } | |
427 | |
428 // Test Scribe ID - 371833. | |
429 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
430 SC_DelBMNonEmptyAccountAfterwards) { | |
431 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
432 ASSERT_TRUE(AllModelsMatchVerifier()); | |
433 | |
434 for (int i = 0; i < 20; ++i) { | |
435 std::wstring title = IndexedURLTitle(i); | |
436 GURL url = GURL(IndexedURL(i)); | |
437 ASSERT_TRUE(AddURL(0, i, title, url) != NULL); | |
438 } | |
439 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
440 ASSERT_TRUE(AllModelsMatchVerifier()); | |
441 | |
442 Remove(0, GetBookmarkBarNode(0), 0); | |
443 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
444 ASSERT_TRUE(AllModelsMatchVerifier()); | |
445 } | |
446 | |
447 // Test Scribe ID - 371835. | |
448 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
449 SC_DelFirstBMUnderBMFoldNonEmptyFoldAfterwards) { | |
450 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
451 ASSERT_TRUE(AllModelsMatchVerifier()); | |
452 | |
453 const BookmarkNode* folder = AddFolder(0, kGenericFolderName); | |
454 ASSERT_TRUE(folder != NULL); | |
455 for (int i = 0; i < 10; ++i) { | |
456 std::wstring title = IndexedURLTitle(i); | |
457 GURL url = GURL(IndexedURL(i)); | |
458 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL); | |
459 } | |
460 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
461 ASSERT_TRUE(AllModelsMatchVerifier()); | |
462 | |
463 Remove(0, folder, 0); | |
464 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
465 ASSERT_TRUE(AllModelsMatchVerifier()); | |
466 } | |
467 | |
468 // Test Scribe ID - 371836. | |
469 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
470 SC_DelLastBMUnderBMFoldNonEmptyFoldAfterwards) { | |
471 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
472 ASSERT_TRUE(AllModelsMatchVerifier()); | |
473 | |
474 const BookmarkNode* folder = AddFolder(0, kGenericFolderName); | |
475 ASSERT_TRUE(folder != NULL); | |
476 for (int i = 0; i < 10; ++i) { | |
477 std::wstring title = IndexedURLTitle(i); | |
478 GURL url = GURL(IndexedURL(i)); | |
479 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL); | |
480 } | |
481 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
482 ASSERT_TRUE(AllModelsMatchVerifier()); | |
483 | |
484 Remove(0, folder, folder->child_count() - 1); | |
485 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
486 ASSERT_TRUE(AllModelsMatchVerifier()); | |
487 } | |
488 | |
489 // Test Scribe ID - 371856. | |
490 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
491 SC_DelMiddleBMUnderBMFoldNonEmptyFoldAfterwards) { | |
492 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
493 ASSERT_TRUE(AllModelsMatchVerifier()); | |
494 | |
495 const BookmarkNode* folder = AddFolder(0, kGenericFolderName); | |
496 ASSERT_TRUE(folder != NULL); | |
497 for (int i = 0; i < 10; ++i) { | |
498 std::wstring title = IndexedURLTitle(i); | |
499 GURL url = GURL(IndexedURL(i)); | |
500 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL); | |
501 } | |
502 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
503 ASSERT_TRUE(AllModelsMatchVerifier()); | |
504 | |
505 Remove(0, folder, 4); | |
506 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
507 ASSERT_TRUE(AllModelsMatchVerifier()); | |
508 } | |
509 | |
510 // Test Scribe ID - 371857. | |
511 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
512 SC_DelBMsUnderBMFoldEmptyFolderAfterwards) { | |
513 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
514 ASSERT_TRUE(AllModelsMatchVerifier()); | |
515 | |
516 const BookmarkNode* folder = AddFolder(0, kGenericFolderName); | |
517 ASSERT_TRUE(folder != NULL); | |
518 for (int i = 0; i < 10; ++i) { | |
519 std::wstring title = IndexedURLTitle(i); | |
520 GURL url = GURL(IndexedURL(i)); | |
521 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL); | |
522 } | |
523 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
524 ASSERT_TRUE(AllModelsMatchVerifier()); | |
525 | |
526 int child_count = folder->child_count(); | |
527 for (int i = 0; i < child_count; ++i) { | |
528 Remove(0, folder, 0); | |
529 } | |
530 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
531 ASSERT_TRUE(AllModelsMatchVerifier()); | |
532 } | |
533 | |
534 // Test Scribe ID - 371858. | |
535 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
536 SC_DelEmptyBMFoldEmptyAccountAfterwards) { | |
537 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
538 ASSERT_TRUE(AllModelsMatchVerifier()); | |
539 | |
540 ASSERT_TRUE(AddFolder(0, kGenericFolderName) != NULL); | |
541 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
542 ASSERT_TRUE(AllModelsMatchVerifier()); | |
543 | |
544 Remove(0, GetBookmarkBarNode(0), 0); | |
545 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
546 ASSERT_TRUE(AllModelsMatchVerifier()); | |
547 } | |
548 | |
549 // Test Scribe ID - 371869. | |
550 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
551 SC_DelEmptyBMFoldNonEmptyAccountAfterwards) { | |
552 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
553 ASSERT_TRUE(AllModelsMatchVerifier()); | |
554 | |
555 ASSERT_TRUE(AddFolder(0, kGenericFolderName) != NULL); | |
556 for (int i = 1; i < 15; ++i) { | |
557 if (base::RandDouble() > 0.6) { | |
558 std::wstring title = IndexedURLTitle(i); | |
559 GURL url = GURL(IndexedURL(i)); | |
560 ASSERT_TRUE(AddURL(0, i, title, url) != NULL); | |
561 } else { | |
562 std::wstring title = IndexedFolderName(i); | |
563 ASSERT_TRUE(AddFolder(0, i, title) != NULL); | |
564 } | |
565 } | |
566 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
567 ASSERT_TRUE(AllModelsMatchVerifier()); | |
568 | |
569 Remove(0, GetBookmarkBarNode(0), 0); | |
570 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
571 ASSERT_TRUE(AllModelsMatchVerifier()); | |
572 } | |
573 | |
574 // Test Scribe ID - 371879. | |
575 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
576 SC_DelBMFoldWithBMsNonEmptyAccountAfterwards) { | |
577 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
578 ASSERT_TRUE(AllModelsMatchVerifier()); | |
579 | |
580 ASSERT_TRUE(AddURL(0, kGenericURLTitle, GURL(kGenericURL)) != NULL); | |
581 const BookmarkNode* folder = AddFolder(0, 1, kGenericFolderName); | |
582 ASSERT_TRUE(folder != NULL); | |
583 for (int i = 2; i < 10; ++i) { | |
584 if (base::RandDouble() > 0.6) { | |
585 std::wstring title = IndexedURLTitle(i); | |
586 GURL url = GURL(IndexedURL(i)); | |
587 ASSERT_TRUE(AddURL(0, i, title, url) != NULL); | |
588 } else { | |
589 std::wstring title = IndexedFolderName(i); | |
590 ASSERT_TRUE(AddFolder(0, i, title) != NULL); | |
591 } | |
592 } | |
593 for (int i = 0; i < 15; ++i) { | |
594 std::wstring title = IndexedURLTitle(i); | |
595 GURL url = GURL(IndexedURL(i)); | |
596 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL); | |
597 } | |
598 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
599 ASSERT_TRUE(AllModelsMatchVerifier()); | |
600 | |
601 Remove(0, GetBookmarkBarNode(0), 1); | |
602 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
603 ASSERT_TRUE(AllModelsMatchVerifier()); | |
604 } | |
605 | |
606 // Test Scribe ID - 371880. | |
607 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
608 SC_DelBMFoldWithBMsAndBMFoldsNonEmptyACAfterwards) { | |
609 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
610 ASSERT_TRUE(AllModelsMatchVerifier()); | |
611 | |
612 ASSERT_TRUE(AddURL(0, kGenericURLTitle, GURL(kGenericURL)) != NULL); | |
613 const BookmarkNode* folder = AddFolder(0, 1, kGenericFolderName); | |
614 ASSERT_TRUE(folder != NULL); | |
615 for (int i = 2; i < 10; ++i) { | |
616 if (base::RandDouble() > 0.6) { | |
617 std::wstring title = IndexedURLTitle(i); | |
618 GURL url = GURL(IndexedURL(i)); | |
619 ASSERT_TRUE(AddURL(0, i, title, url) != NULL); | |
620 } else { | |
621 std::wstring title = IndexedFolderName(i); | |
622 ASSERT_TRUE(AddFolder(0, i, title) != NULL); | |
623 } | |
624 } | |
625 for (int i = 0; i < 10; ++i) { | |
626 if (base::RandDouble() > 0.6) { | |
627 std::wstring title = IndexedURLTitle(i); | |
628 GURL url = GURL(IndexedURL(i)); | |
629 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL); | |
630 } else { | |
631 std::wstring title = IndexedSubfolderName(i); | |
632 const BookmarkNode* subfolder = AddFolder(0, folder, i, title); | |
633 ASSERT_TRUE(subfolder != NULL); | |
634 if (base::RandDouble() > 0.3) { | |
635 for (int j = 0; j < 10; ++j) { | |
636 if (base::RandDouble() > 0.6) { | |
637 std::wstring title = IndexedURLTitle(j); | |
638 GURL url = GURL(IndexedURL(j)); | |
639 ASSERT_TRUE(AddURL(0, subfolder, j, title, url) != NULL); | |
640 } else { | |
641 std::wstring title = IndexedSubsubfolderName(j); | |
642 ASSERT_TRUE(AddFolder(0, subfolder, j, title) != NULL); | |
643 } | |
644 } | |
645 } | |
646 } | |
647 } | |
648 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
649 ASSERT_TRUE(AllModelsMatchVerifier()); | |
650 | |
651 Remove(0, GetBookmarkBarNode(0), 1); | |
652 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
653 ASSERT_TRUE(AllModelsMatchVerifier()); | |
654 } | |
655 | |
656 // Test Scribe ID - 371882. | |
657 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
658 SC_DelBMFoldWithParentAndChildrenBMsAndBMFolds) { | |
659 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
660 ASSERT_TRUE(AllModelsMatchVerifier()); | |
661 | |
662 const BookmarkNode* folder = AddFolder(0, kGenericFolderName); | |
663 ASSERT_TRUE(folder != NULL); | |
664 for (int i = 1; i < 11; ++i) { | |
665 std::wstring title = IndexedURLTitle(i); | |
666 GURL url = GURL(IndexedURL(i)); | |
667 ASSERT_TRUE(AddURL(0, i, title, url) != NULL); | |
668 } | |
669 const BookmarkNode* subfolder = | |
670 AddFolder(0, folder, 0, kGenericSubfolderName); | |
671 ASSERT_TRUE(subfolder != NULL); | |
672 for (int i = 0; i < 30; ++i) { | |
673 if (base::RandDouble() > 0.2) { | |
674 std::wstring title = IndexedURLTitle(i); | |
675 GURL url = GURL(IndexedURL(i)); | |
676 ASSERT_TRUE(AddURL(0, subfolder, i, title, url) != NULL); | |
677 } else { | |
678 std::wstring title = IndexedSubsubfolderName(i); | |
679 ASSERT_TRUE(AddFolder(0, subfolder, i, title) != NULL); | |
680 } | |
681 } | |
682 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
683 ASSERT_TRUE(AllModelsMatchVerifier()); | |
684 | |
685 Remove(0, folder, 0); | |
686 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
687 ASSERT_TRUE(AllModelsMatchVerifier()); | |
688 } | |
689 | |
690 // Test Scribe ID - 371931. | |
691 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
692 SC_ReverseTheOrderOfTwoBMs) { | |
693 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
694 ASSERT_TRUE(AllModelsMatchVerifier()); | |
695 | |
696 GURL url0 = GURL(IndexedURL(0)); | |
697 GURL url1 = GURL(IndexedURL(1)); | |
698 std::wstring title0 = IndexedURLTitle(0); | |
699 std::wstring title1 = IndexedURLTitle(1); | |
700 const BookmarkNode* bookmark0 = AddURL(0, 0, title0, url0); | |
701 const BookmarkNode* bookmark1 = AddURL(0, 1, title1, url1); | |
702 ASSERT_TRUE(bookmark0 != NULL); | |
703 ASSERT_TRUE(bookmark1 != NULL); | |
704 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
705 ASSERT_TRUE(AllModelsMatchVerifier()); | |
706 | |
707 Move(0, bookmark0, GetBookmarkBarNode(0), 2); | |
708 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
709 ASSERT_TRUE(AllModelsMatchVerifier()); | |
710 } | |
711 | |
712 // Test Scribe ID - 371933. | |
713 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
714 SC_ReverseTheOrderOf10BMs) { | |
715 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
716 ASSERT_TRUE(AllModelsMatchVerifier()); | |
717 | |
718 for (int i = 0; i < 10; ++i) { | |
719 std::wstring title = IndexedURLTitle(i); | |
720 GURL url = GURL(IndexedURL(i)); | |
721 ASSERT_TRUE(AddURL(0, i, title, url) != NULL); | |
722 } | |
723 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
724 ASSERT_TRUE(AllModelsMatchVerifier()); | |
725 | |
726 ReverseChildOrder(0, GetBookmarkBarNode(0)); | |
727 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
728 ASSERT_TRUE(AllModelsMatchVerifier()); | |
729 } | |
730 | |
731 // Test Scribe ID - 371954. | |
732 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
733 SC_MovingBMsFromBMBarToBMFolder) { | |
734 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
735 ASSERT_TRUE(AllModelsMatchVerifier()); | |
736 | |
737 ASSERT_TRUE(AddURL(0, kGenericURLTitle, GURL(kGenericURL)) != NULL); | |
738 const BookmarkNode* folder = AddFolder(0, 1, kGenericFolderName); | |
739 ASSERT_TRUE(folder != NULL); | |
740 for (int i = 2; i < 10; ++i) { | |
741 std::wstring title = IndexedURLTitle(i); | |
742 GURL url = GURL(IndexedURL(i)); | |
743 ASSERT_TRUE(AddURL(0, i, title, url) != NULL); | |
744 } | |
745 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
746 ASSERT_TRUE(AllModelsMatchVerifier()); | |
747 | |
748 int num_bookmarks_to_move = GetBookmarkBarNode(0)->child_count() - 2; | |
749 for (int i = 0; i < num_bookmarks_to_move; ++i) { | |
750 Move(0, GetBookmarkBarNode(0)->GetChild(2), folder, i); | |
751 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
752 ASSERT_TRUE(AllModelsMatchVerifier()); | |
753 } | |
754 } | |
755 | |
756 // Test Scribe ID - 371957. | |
757 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
758 SC_MovingBMsFromBMFoldToBMBar) { | |
759 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
760 ASSERT_TRUE(AllModelsMatchVerifier()); | |
761 | |
762 ASSERT_TRUE(AddURL(0, kGenericURLTitle, GURL(kGenericURL)) != NULL); | |
763 const BookmarkNode* folder = AddFolder(0, 1, kGenericFolderName); | |
764 ASSERT_TRUE(folder != NULL); | |
765 for (int i = 0; i < 10; ++i) { | |
766 std::wstring title = IndexedURLTitle(i); | |
767 GURL url = GURL(IndexedURL(i)); | |
768 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL); | |
769 } | |
770 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
771 ASSERT_TRUE(AllModelsMatchVerifier()); | |
772 | |
773 int num_bookmarks_to_move = folder->child_count() - 2; | |
774 for (int i = 0; i < num_bookmarks_to_move; ++i) { | |
775 Move(0, folder->GetChild(0), GetBookmarkBarNode(0), i); | |
776 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
777 ASSERT_TRUE(AllModelsMatchVerifier()); | |
778 } | |
779 } | |
780 | |
781 // Test Scribe ID - 371961. | |
782 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
783 SC_MovingBMsFromParentBMFoldToChildBMFold) { | |
784 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
785 ASSERT_TRUE(AllModelsMatchVerifier()); | |
786 | |
787 const BookmarkNode* folder = AddFolder(0, kGenericFolderName); | |
788 ASSERT_TRUE(folder != NULL); | |
789 for (int i = 0; i < 3; ++i) { | |
790 std::wstring title = IndexedURLTitle(i); | |
791 GURL url = GURL(IndexedURL(i)); | |
792 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL); | |
793 } | |
794 const BookmarkNode* subfolder = | |
795 AddFolder(0, folder, 3, kGenericSubfolderName); | |
796 ASSERT_TRUE(subfolder != NULL); | |
797 for (int i = 0; i < 10; ++i) { | |
798 std::wstring title = IndexedURLTitle(i + 3); | |
799 GURL url = GURL(IndexedURL(i + 3)); | |
800 ASSERT_TRUE(AddURL(0, subfolder, i, title, url) != NULL); | |
801 } | |
802 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
803 ASSERT_TRUE(AllModelsMatchVerifier()); | |
804 | |
805 for (int i = 0; i < 3; ++i) { | |
806 GURL url = GURL(IndexedURL(i)); | |
807 Move(0, GetUniqueNodeByURL(0, url), subfolder, i + 10); | |
808 } | |
809 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
810 ASSERT_TRUE(AllModelsMatchVerifier()); | |
811 } | |
812 | |
813 // Test Scribe ID - 371964. | |
814 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
815 SC_MovingBMsFromChildBMFoldToParentBMFold) { | |
816 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
817 ASSERT_TRUE(AllModelsMatchVerifier()); | |
818 | |
819 const BookmarkNode* folder = AddFolder(0, kGenericFolderName); | |
820 ASSERT_TRUE(folder != NULL); | |
821 for (int i = 0; i < 3; ++i) { | |
822 std::wstring title = IndexedURLTitle(i); | |
823 GURL url = GURL(IndexedURL(i)); | |
824 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL); | |
825 } | |
826 const BookmarkNode* subfolder = | |
827 AddFolder(0, folder, 3, kGenericSubfolderName); | |
828 ASSERT_TRUE(subfolder != NULL); | |
829 for (int i = 0; i < 5; ++i) { | |
830 std::wstring title = IndexedURLTitle(i + 3); | |
831 GURL url = GURL(IndexedURL(i + 3)); | |
832 ASSERT_TRUE(AddURL(0, subfolder, i, title, url) != NULL); | |
833 } | |
834 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
835 ASSERT_TRUE(AllModelsMatchVerifier()); | |
836 | |
837 for (int i = 0; i < 3; ++i) { | |
838 GURL url = GURL(IndexedURL(i + 3)); | |
839 Move(0, GetUniqueNodeByURL(0, url), folder, i + 4); | |
840 } | |
841 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
842 ASSERT_TRUE(AllModelsMatchVerifier()); | |
843 } | |
844 | |
845 // Test Scribe ID - 371967. | |
846 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, SC_HoistBMs10LevelUp) { | |
847 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
848 ASSERT_TRUE(AllModelsMatchVerifier()); | |
849 | |
850 const BookmarkNode* folder = GetBookmarkBarNode(0); | |
851 const BookmarkNode* folder_L0 = NULL; | |
852 const BookmarkNode* folder_L10 = NULL; | |
853 for (int level = 0; level < 15; ++level) { | |
854 int num_bookmarks = base::RandInt(0, 9); | |
855 for (int i = 0; i < num_bookmarks; ++i) { | |
856 std::wstring title = IndexedURLTitle(i); | |
857 GURL url = GURL(IndexedURL(i)); | |
858 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL); | |
859 } | |
860 std::wstring title = IndexedFolderName(level); | |
861 folder = AddFolder(0, folder, folder->child_count(), title); | |
862 ASSERT_TRUE(folder != NULL); | |
863 if (level == 0) folder_L0 = folder; | |
864 if (level == 10) folder_L10 = folder; | |
865 } | |
866 for (int i = 0; i < 3; ++i) { | |
867 std::wstring title = IndexedURLTitle(i + 10); | |
868 GURL url = GURL(IndexedURL(i + 10)); | |
869 ASSERT_TRUE(AddURL(0, folder_L10, i, title, url) != NULL); | |
870 } | |
871 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
872 ASSERT_TRUE(AllModelsMatchVerifier()); | |
873 | |
874 GURL url10 = GURL(IndexedURL(10)); | |
875 Move(0, GetUniqueNodeByURL(0, url10), folder_L0, folder_L0->child_count()); | |
876 GURL url11 = GURL(IndexedURL(11)); | |
877 Move(0, GetUniqueNodeByURL(0, url11), folder_L0, 0); | |
878 GURL url12 = GURL(IndexedURL(12)); | |
879 Move(0, GetUniqueNodeByURL(0, url12), folder_L0, 1); | |
880 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
881 ASSERT_TRUE(AllModelsMatchVerifier()); | |
882 } | |
883 | |
884 // Test Scribe ID - 371968. | |
885 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, SC_SinkBMs10LevelDown) { | |
886 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
887 ASSERT_TRUE(AllModelsMatchVerifier()); | |
888 | |
889 const BookmarkNode* folder = GetBookmarkBarNode(0); | |
890 const BookmarkNode* folder_L0 = NULL; | |
891 const BookmarkNode* folder_L10 = NULL; | |
892 for (int level = 0; level < 15; ++level) { | |
893 int num_bookmarks = base::RandInt(0, 9); | |
894 for (int i = 0; i < num_bookmarks; ++i) { | |
895 std::wstring title = IndexedURLTitle(i); | |
896 GURL url = GURL(IndexedURL(i)); | |
897 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL); | |
898 } | |
899 std::wstring title = IndexedFolderName(level); | |
900 folder = AddFolder(0, folder, folder->child_count(), title); | |
901 ASSERT_TRUE(folder != NULL); | |
902 if (level == 0) folder_L0 = folder; | |
903 if (level == 10) folder_L10 = folder; | |
904 } | |
905 for (int i = 0; i < 3; ++i) { | |
906 std::wstring title = IndexedURLTitle(i + 10); | |
907 GURL url = GURL(IndexedURL(i + 10)); | |
908 ASSERT_TRUE(AddURL(0, folder_L0, 0, title, url) != NULL); | |
909 } | |
910 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
911 ASSERT_TRUE(AllModelsMatchVerifier()); | |
912 | |
913 GURL url10 = GURL(IndexedURL(10)); | |
914 Move(0, GetUniqueNodeByURL(0, url10), folder_L10, | |
915 folder_L10->child_count()); | |
916 GURL url11 = GURL(IndexedURL(11)); | |
917 Move(0, GetUniqueNodeByURL(0, url11), folder_L10, 0); | |
918 GURL url12 = GURL(IndexedURL(12)); | |
919 Move(0, GetUniqueNodeByURL(0, url12), folder_L10, 1); | |
920 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
921 ASSERT_TRUE(AllModelsMatchVerifier()); | |
922 } | |
923 | |
924 // Test Scribe ID - 371980. | |
925 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
926 SC_SinkEmptyBMFold5LevelsDown) { | |
927 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
928 ASSERT_TRUE(AllModelsMatchVerifier()); | |
929 | |
930 const BookmarkNode* folder = GetBookmarkBarNode(0); | |
931 const BookmarkNode* folder_L5 = NULL; | |
932 for (int level = 0; level < 15; ++level) { | |
933 int num_bookmarks = base::RandInt(0, 9); | |
934 for (int i = 0; i < num_bookmarks; ++i) { | |
935 std::wstring title = IndexedURLTitle(i); | |
936 GURL url = GURL(IndexedURL(i)); | |
937 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL); | |
938 } | |
939 std::wstring title = IndexedFolderName(level); | |
940 folder = AddFolder(0, folder, folder->child_count(), title); | |
941 ASSERT_TRUE(folder != NULL); | |
942 if (level == 5) folder_L5 = folder; | |
943 } | |
944 folder = | |
945 AddFolder(0, GetBookmarkBarNode(0)->child_count(), kGenericFolderName); | |
946 ASSERT_TRUE(folder != NULL); | |
947 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
948 ASSERT_TRUE(AllModelsMatchVerifier()); | |
949 | |
950 Move(0, folder, folder_L5, folder_L5->child_count()); | |
951 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
952 ASSERT_TRUE(AllModelsMatchVerifier()); | |
953 } | |
954 | |
955 // Test Scribe ID - 371997. | |
956 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
957 SC_SinkNonEmptyBMFold5LevelsDown) { | |
958 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
959 ASSERT_TRUE(AllModelsMatchVerifier()); | |
960 | |
961 const BookmarkNode* folder = GetBookmarkBarNode(0); | |
962 const BookmarkNode* folder_L5 = NULL; | |
963 for (int level = 0; level < 6; ++level) { | |
964 int num_bookmarks = base::RandInt(0, 9); | |
965 for (int i = 0; i < num_bookmarks; ++i) { | |
966 std::wstring title = IndexedURLTitle(i); | |
967 GURL url = GURL(IndexedURL(i)); | |
968 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL); | |
969 } | |
970 std::wstring title = IndexedFolderName(level); | |
971 folder = AddFolder(0, folder, folder->child_count(), title); | |
972 ASSERT_TRUE(folder != NULL); | |
973 if (level == 5) folder_L5 = folder; | |
974 } | |
975 folder = | |
976 AddFolder(0, GetBookmarkBarNode(0)->child_count(), kGenericFolderName); | |
977 ASSERT_TRUE(folder != NULL); | |
978 for (int i = 0; i < 10; ++i) { | |
979 std::wstring title = IndexedURLTitle(i); | |
980 GURL url = GURL(IndexedURL(i)); | |
981 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL); | |
982 } | |
983 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
984 ASSERT_TRUE(AllModelsMatchVerifier()); | |
985 | |
986 Move(0, folder, folder_L5, folder_L5->child_count()); | |
987 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
988 ASSERT_TRUE(AllModelsMatchVerifier()); | |
989 } | |
990 | |
991 // Test Scribe ID - 372006. | |
992 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
993 SC_HoistFolder5LevelsUp) { | |
994 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
995 ASSERT_TRUE(AllModelsMatchVerifier()); | |
996 | |
997 const BookmarkNode* folder = GetBookmarkBarNode(0); | |
998 const BookmarkNode* folder_L5 = NULL; | |
999 for (int level = 0; level < 6; ++level) { | |
1000 int num_bookmarks = base::RandInt(0, 9); | |
1001 for (int i = 0; i < num_bookmarks; ++i) { | |
1002 std::wstring title = IndexedURLTitle(i); | |
1003 GURL url = GURL(IndexedURL(i)); | |
1004 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL); | |
1005 } | |
1006 std::wstring title = IndexedFolderName(level); | |
1007 folder = AddFolder(0, folder, folder->child_count(), title); | |
1008 ASSERT_TRUE(folder != NULL); | |
1009 if (level == 5) folder_L5 = folder; | |
1010 } | |
1011 folder = | |
1012 AddFolder(0, folder_L5, folder_L5->child_count(), kGenericFolderName); | |
1013 ASSERT_TRUE(folder != NULL); | |
1014 for (int i = 0; i < 10; ++i) { | |
1015 std::wstring title = IndexedURLTitle(i); | |
1016 GURL url = GURL(IndexedURL(i)); | |
1017 ASSERT_TRUE(AddURL(0, folder, i, title, url) != NULL); | |
1018 } | |
1019 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
1020 ASSERT_TRUE(AllModelsMatchVerifier()); | |
1021 | |
1022 Move(0, folder, GetBookmarkBarNode(0), | |
1023 GetBookmarkBarNode(0)->child_count()); | |
1024 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
1025 ASSERT_TRUE(AllModelsMatchVerifier()); | |
1026 } | |
1027 | |
1028 // Test Scribe ID - 372026. | |
1029 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
1030 SC_ReverseTheOrderOfTwoBMFolders) { | |
1031 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
1032 ASSERT_TRUE(AllModelsMatchVerifier()); | |
1033 | |
1034 for (int i = 0; i < 2; ++i) { | |
1035 std::wstring title = IndexedFolderName(i); | |
1036 const BookmarkNode* folder = AddFolder(0, i, title); | |
1037 ASSERT_TRUE(folder != NULL); | |
1038 for (int j = 0; j < 10; ++j) { | |
1039 std::wstring title = IndexedURLTitle(j); | |
1040 GURL url = GURL(IndexedURL(j)); | |
1041 ASSERT_TRUE(AddURL(0, folder, j, title, url) != NULL); | |
1042 } | |
1043 } | |
1044 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
1045 ASSERT_TRUE(AllModelsMatchVerifier()); | |
1046 | |
1047 ReverseChildOrder(0, GetBookmarkBarNode(0)); | |
1048 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
1049 ASSERT_TRUE(AllModelsMatchVerifier()); | |
1050 } | |
1051 | |
1052 // Test Scribe ID - 372028. | |
1053 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
1054 SC_ReverseTheOrderOfTenBMFolders) { | |
1055 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
1056 ASSERT_TRUE(AllModelsMatchVerifier()); | |
1057 | |
1058 for (int i = 0; i < 10; ++i) { | |
1059 std::wstring title = IndexedFolderName(i); | |
1060 const BookmarkNode* folder = AddFolder(0, i, title); | |
1061 ASSERT_TRUE(folder != NULL); | |
1062 for (int j = 0; j < 10; ++j) { | |
1063 std::wstring title = IndexedURLTitle(1000 * i + j); | |
1064 GURL url = GURL(IndexedURL(j)); | |
1065 ASSERT_TRUE(AddURL(0, folder, j, title, url) != NULL); | |
1066 } | |
1067 } | |
1068 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
1069 ASSERT_TRUE(AllModelsMatchVerifier()); | |
1070 | |
1071 ReverseChildOrder(0, GetBookmarkBarNode(0)); | |
1072 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
1073 ASSERT_TRUE(AllModelsMatchVerifier()); | |
1074 } | |
1075 | |
1076 // Test Scribe ID - 373379. | |
1077 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
1078 MC_BiDirectionalPushAddingBM) { | |
1079 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
1080 ASSERT_TRUE(AllModelsMatchVerifier()); | |
1081 | |
1082 DisableVerifier(); | |
1083 for (int i = 0; i < 2; ++i) { | |
1084 std::wstring title0 = IndexedURLTitle(2*i); | |
1085 GURL url0 = GURL(IndexedURL(2*i)); | |
1086 ASSERT_TRUE(AddURL(0, title0, url0) != NULL); | |
1087 std::wstring title1 = IndexedURLTitle(2*i+1); | |
1088 GURL url1 = GURL(IndexedURL(2*i+1)); | |
1089 ASSERT_TRUE(AddURL(1, title1, url1) != NULL); | |
1090 } | |
1091 ASSERT_TRUE(AwaitQuiescence()); | |
1092 ASSERT_TRUE(AllModelsMatch()); | |
1093 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); | |
1094 } | |
1095 | |
1096 // Test Scribe ID - 373503. | |
1097 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
1098 MC_BiDirectionalPush_AddingSameBMs) { | |
1099 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
1100 ASSERT_TRUE(AllModelsMatchVerifier()); | |
1101 | |
1102 // Note: When a racy commit is done with identical bookmarks, it is possible | |
1103 // for duplicates to exist after sync completes. See http://crbug.com/19769. | |
1104 DisableVerifier(); | |
1105 for (int i = 0; i < 2; ++i) { | |
1106 std::wstring title = IndexedURLTitle(i); | |
1107 GURL url = GURL(IndexedURL(i)); | |
1108 ASSERT_TRUE(AddURL(0, title, url) != NULL); | |
1109 ASSERT_TRUE(AddURL(1, title, url) != NULL); | |
1110 } | |
1111 ASSERT_TRUE(AwaitQuiescence()); | |
1112 ASSERT_TRUE(AllModelsMatch()); | |
1113 } | |
1114 | |
1115 // Test Scribe ID - 373506. | |
1116 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
1117 MC_BootStrapEmptyStateEverywhere) { | |
1118 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
1119 ASSERT_TRUE(AwaitQuiescence()); | |
1120 ASSERT_TRUE(AllModelsMatchVerifier()); | |
1121 } | |
1122 | |
1123 // Test Scribe ID - 373505. | |
1124 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
1125 MC_Merge_CaseInsensitivity_InNames) { | |
1126 ASSERT_TRUE(SetupClients()) << "SetupClients() failed."; | |
1127 DisableVerifier(); | |
1128 | |
1129 const BookmarkNode* folder0 = AddFolder(0, L"Folder"); | |
1130 ASSERT_TRUE(folder0 != NULL); | |
1131 ASSERT_TRUE(AddURL(0, folder0, 0, L"Bookmark 0", GURL(kGenericURL)) != NULL); | |
1132 ASSERT_TRUE(AddURL(0, folder0, 1, L"Bookmark 1", GURL(kGenericURL)) != NULL); | |
1133 ASSERT_TRUE(AddURL(0, folder0, 2, L"Bookmark 2", GURL(kGenericURL)) != NULL); | |
1134 | |
1135 const BookmarkNode* folder1 = AddFolder(1, L"fOlDeR"); | |
1136 ASSERT_TRUE(folder1 != NULL); | |
1137 ASSERT_TRUE(AddURL(1, folder1, 0, L"bOoKmArK 0", GURL(kGenericURL)) != NULL); | |
1138 ASSERT_TRUE(AddURL(1, folder1, 1, L"BooKMarK 1", GURL(kGenericURL)) != NULL); | |
1139 ASSERT_TRUE(AddURL(1, folder1, 2, L"bOOKMARK 2", GURL(kGenericURL)) != NULL); | |
1140 | |
1141 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
1142 ASSERT_TRUE(AwaitQuiescence()); | |
1143 ASSERT_TRUE(AllModelsMatch()); | |
1144 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); | |
1145 } | |
1146 | |
1147 // Test Scribe ID - 373508. | |
1148 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
1149 MC_SimpleMergeOfDifferentBMModels) { | |
1150 ASSERT_TRUE(SetupClients()) << "SetupClients() failed."; | |
1151 DisableVerifier(); | |
1152 | |
1153 for (int i = 0; i < 3; ++i) { | |
1154 std::wstring title = IndexedURLTitle(i); | |
1155 GURL url = GURL(IndexedURL(i)); | |
1156 ASSERT_TRUE(AddURL(0, i, title, url) != NULL); | |
1157 ASSERT_TRUE(AddURL(1, i, title, url) != NULL); | |
1158 } | |
1159 | |
1160 for (int i = 3; i < 10; ++i) { | |
1161 std::wstring title0 = IndexedURLTitle(i); | |
1162 GURL url0 = GURL(IndexedURL(i)); | |
1163 ASSERT_TRUE(AddURL(0, i, title0, url0) != NULL); | |
1164 std::wstring title1 = IndexedURLTitle(i+7); | |
1165 GURL url1 = GURL(IndexedURL(i+7)); | |
1166 ASSERT_TRUE(AddURL(1, i, title1, url1) != NULL); | |
1167 } | |
1168 | |
1169 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
1170 ASSERT_TRUE(AwaitQuiescence()); | |
1171 ASSERT_TRUE(AllModelsMatch()); | |
1172 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); | |
1173 } | |
1174 | |
1175 // Test Scribe ID - 386586. | |
1176 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
1177 MC_MergeSimpleBMHierarchyUnderBMBar) { | |
1178 ASSERT_TRUE(SetupClients()) << "SetupClients() failed."; | |
1179 DisableVerifier(); | |
1180 | |
1181 for (int i = 0; i < 3; ++i) { | |
1182 std::wstring title = IndexedURLTitle(i); | |
1183 GURL url = GURL(IndexedURL(i)); | |
1184 ASSERT_TRUE(AddURL(0, i, title, url) != NULL); | |
1185 ASSERT_TRUE(AddURL(1, i, title, url) != NULL); | |
1186 } | |
1187 | |
1188 for (int i = 3; i < 10; ++i) { | |
1189 std::wstring title = IndexedURLTitle(i); | |
1190 GURL url = GURL(IndexedURL(i)); | |
1191 ASSERT_TRUE(AddURL(1, i, title, url) != NULL); | |
1192 } | |
1193 | |
1194 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
1195 ASSERT_TRUE(AwaitQuiescence()); | |
1196 ASSERT_TRUE(AllModelsMatch()); | |
1197 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); | |
1198 } | |
1199 | |
1200 // Test Scribe ID - 386589. | |
1201 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
1202 MC_MergeSimpleBMHierarchyEqualSetsUnderBMBar) { | |
1203 ASSERT_TRUE(SetupClients()) << "SetupClients() failed."; | |
1204 DisableVerifier(); | |
1205 | |
1206 for (int i = 0; i < 3; ++i) { | |
1207 std::wstring title = IndexedURLTitle(i); | |
1208 GURL url = GURL(IndexedURL(i)); | |
1209 ASSERT_TRUE(AddURL(0, i, title, url) != NULL); | |
1210 ASSERT_TRUE(AddURL(1, i, title, url) != NULL); | |
1211 } | |
1212 | |
1213 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
1214 ASSERT_TRUE(AwaitQuiescence()); | |
1215 ASSERT_TRUE(AllModelsMatch()); | |
1216 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); | |
1217 } | |
1218 | |
1219 // Test Scribe ID - 373504 - Merge bookmark folders with different bookmarks. | |
1220 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
1221 MC_MergeBMFoldersWithDifferentBMs) { | |
1222 ASSERT_TRUE(SetupClients()) << "SetupClients() failed."; | |
1223 DisableVerifier(); | |
1224 | |
1225 const BookmarkNode* folder0 = AddFolder(0, kGenericFolderName); | |
1226 ASSERT_TRUE(folder0 != NULL); | |
1227 const BookmarkNode* folder1 = AddFolder(1, kGenericFolderName); | |
1228 ASSERT_TRUE(folder1 != NULL); | |
1229 for (int i = 0; i < 2; ++i) { | |
1230 std::wstring title0 = IndexedURLTitle(2*i); | |
1231 GURL url0 = GURL(IndexedURL(2*i)); | |
1232 ASSERT_TRUE(AddURL(0, folder0, i, title0, url0) != NULL); | |
1233 std::wstring title1 = IndexedURLTitle(2*i+1); | |
1234 GURL url1 = GURL(IndexedURL(2*i+1)); | |
1235 ASSERT_TRUE(AddURL(1, folder1, i, title1, url1) != NULL); | |
1236 } | |
1237 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
1238 ASSERT_TRUE(AwaitQuiescence()); | |
1239 ASSERT_TRUE(AllModelsMatch()); | |
1240 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); | |
1241 } | |
1242 | |
1243 // Test Scribe ID - 373509 - Merge moderately complex bookmark models. | |
1244 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
1245 MC_MergeDifferentBMModelsModeratelyComplex) { | |
1246 ASSERT_TRUE(SetupClients()) << "SetupClients() failed."; | |
1247 DisableVerifier(); | |
1248 | |
1249 for (int i = 0; i < 25; ++i) { | |
1250 std::wstring title0 = IndexedURLTitle(i); | |
1251 GURL url0 = GURL(IndexedURL(i)); | |
1252 ASSERT_TRUE(AddURL(0, i, title0, url0) != NULL); | |
1253 std::wstring title1 = IndexedURLTitle(i+50); | |
1254 GURL url1 = GURL(IndexedURL(i+50)); | |
1255 ASSERT_TRUE(AddURL(1, i, title1, url1) != NULL); | |
1256 } | |
1257 for (int i = 25; i < 30; ++i) { | |
1258 std::wstring title0 = IndexedFolderName(i); | |
1259 const BookmarkNode* folder0 = AddFolder(0, i, title0); | |
1260 ASSERT_TRUE(folder0 != NULL); | |
1261 std::wstring title1 = IndexedFolderName(i+50); | |
1262 const BookmarkNode* folder1 = AddFolder(1, i, title1); | |
1263 ASSERT_TRUE(folder1 != NULL); | |
1264 for (int j = 0; j < 5; ++j) { | |
1265 std::wstring title0 = IndexedURLTitle(i+5*j); | |
1266 GURL url0 = GURL(IndexedURL(i+5*j)); | |
1267 ASSERT_TRUE(AddURL(0, folder0, j, title0, url0) != NULL); | |
1268 std::wstring title1 = IndexedURLTitle(i+5*j+50); | |
1269 GURL url1 = GURL(IndexedURL(i+5*j+50)); | |
1270 ASSERT_TRUE(AddURL(1, folder1, j, title1, url1) != NULL); | |
1271 } | |
1272 } | |
1273 for (int i = 100; i < 125; ++i) { | |
1274 std::wstring title = IndexedURLTitle(i); | |
1275 GURL url = GURL(IndexedURL(i)); | |
1276 ASSERT_TRUE(AddURL(0, title, url) != NULL); | |
1277 ASSERT_TRUE(AddURL(1, title, url) != NULL); | |
1278 } | |
1279 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
1280 ASSERT_TRUE(AwaitQuiescence()); | |
1281 ASSERT_TRUE(AllModelsMatch()); | |
1282 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); | |
1283 } | |
1284 | |
1285 // TCM ID - 3675271 - Merge simple bookmark subset under bookmark folder. | |
1286 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
1287 MC_MergeSimpleBMHierarchySubsetUnderBMFolder) { | |
1288 ASSERT_TRUE(SetupClients()) << "SetupClients() failed."; | |
1289 DisableVerifier(); | |
1290 | |
1291 for (int i = 0; i < 2; ++i) { | |
1292 const BookmarkNode* folder = AddFolder(i, kGenericFolderName); | |
1293 ASSERT_TRUE(folder != NULL); | |
1294 for (int j = 0; j < 4; ++j) { | |
1295 if (base::RandDouble() < 0.5) { | |
1296 std::wstring title = IndexedURLTitle(j); | |
1297 GURL url = GURL(IndexedURL(j)); | |
1298 ASSERT_TRUE(AddURL(i, folder, j, title, url) != NULL); | |
1299 } else { | |
1300 std::wstring title = IndexedFolderName(j); | |
1301 ASSERT_TRUE(AddFolder(i, folder, j, title) != NULL); | |
1302 } | |
1303 } | |
1304 } | |
1305 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
1306 ASSERT_TRUE(AwaitQuiescence()); | |
1307 ASSERT_TRUE(AllModelsMatch()); | |
1308 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); | |
1309 } | |
1310 | |
1311 // TCM ID - 3727284 - Merge subsets of bookmark under bookmark bar. | |
1312 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
1313 MC_MergeSimpleBMHierarchySubsetUnderBookmarkBar) { | |
1314 ASSERT_TRUE(SetupClients()) << "SetupClients() failed."; | |
1315 DisableVerifier(); | |
1316 | |
1317 for (int i = 0; i < 4; ++i) { | |
1318 std::wstring title = IndexedURLTitle(i); | |
1319 GURL url = GURL(IndexedURL(i)); | |
1320 ASSERT_TRUE(AddURL(0, i, title, url) != NULL); | |
1321 } | |
1322 | |
1323 for (int j = 0; j < 2; ++j) { | |
1324 std::wstring title = IndexedURLTitle(j); | |
1325 GURL url = GURL(IndexedURL(j)); | |
1326 ASSERT_TRUE(AddURL(1, j, title, url) != NULL); | |
1327 } | |
1328 | |
1329 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
1330 ASSERT_TRUE(AwaitQuiescence()); | |
1331 ASSERT_TRUE(AllModelsMatch()); | |
1332 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); | |
1333 ASSERT_FALSE(ContainsDuplicateBookmarks(1)); | |
1334 } | |
1335 | |
1336 // TCM ID - 3659294 - Merge simple bookmark hierarchy under bookmark folder. | |
1337 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
1338 MC_Merge_SimpleBMHierarchy_Under_BMFolder) { | |
1339 ASSERT_TRUE(SetupClients()) << "SetupClients() failed."; | |
1340 DisableVerifier(); | |
1341 | |
1342 const BookmarkNode* folder0 = AddFolder(0, 0, kGenericFolderName); | |
1343 ASSERT_TRUE(folder0 != NULL); | |
1344 ASSERT_TRUE(AddURL(0, folder0, 0, IndexedURLTitle(1), | |
1345 GURL(IndexedURL(1))) != NULL); | |
1346 ASSERT_TRUE(AddFolder(0, folder0, 1, IndexedSubfolderName(2)) != NULL); | |
1347 ASSERT_TRUE(AddURL(0, folder0, 2, IndexedURLTitle(3), | |
1348 GURL(IndexedURL(3))) != NULL); | |
1349 ASSERT_TRUE(AddFolder(0, folder0, 3, IndexedSubfolderName(4)) != NULL); | |
1350 | |
1351 const BookmarkNode* folder1 = AddFolder(1, 0, kGenericFolderName); | |
1352 ASSERT_TRUE(folder1 != NULL); | |
1353 ASSERT_TRUE(AddFolder(1, folder1, 0, IndexedSubfolderName(0)) != NULL); | |
1354 ASSERT_TRUE(AddFolder(1, folder1, 1, IndexedSubfolderName(2)) != NULL); | |
1355 ASSERT_TRUE(AddURL(1, folder1, 2, IndexedURLTitle(3), | |
1356 GURL(IndexedURL(3))) != NULL); | |
1357 ASSERT_TRUE(AddFolder(1, folder1, 3, IndexedSubfolderName(5)) != NULL); | |
1358 ASSERT_TRUE(AddURL(1, folder1, 4, IndexedURLTitle(1), | |
1359 GURL(IndexedURL(1))) != NULL); | |
1360 | |
1361 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
1362 ASSERT_TRUE(AwaitQuiescence()); | |
1363 ASSERT_TRUE(AllModelsMatch()); | |
1364 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); | |
1365 } | |
1366 | |
1367 // TCM ID - 3711273 - Merge disjoint sets of bookmark hierarchy under bookmark | |
1368 // folder. | |
1369 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
1370 MC_Merge_SimpleBMHierarchy_DisjointSets_Under_BMFolder) { | |
1371 ASSERT_TRUE(SetupClients()) << "SetupClients() failed."; | |
1372 DisableVerifier(); | |
1373 | |
1374 const BookmarkNode* folder0 = AddFolder(0, 0, kGenericFolderName); | |
1375 ASSERT_TRUE(folder0 != NULL); | |
1376 ASSERT_TRUE(AddURL(0, folder0, 0, IndexedURLTitle(1), | |
1377 GURL(IndexedURL(1))) != NULL); | |
1378 ASSERT_TRUE(AddFolder(0, folder0, 1, IndexedSubfolderName(2)) != NULL); | |
1379 ASSERT_TRUE(AddURL(0, folder0, 2, IndexedURLTitle(3), | |
1380 GURL(IndexedURL(3))) != NULL); | |
1381 ASSERT_TRUE(AddFolder(0, folder0, 3, IndexedSubfolderName(4)) != NULL); | |
1382 | |
1383 const BookmarkNode* folder1 = AddFolder(1, 0, kGenericFolderName); | |
1384 ASSERT_TRUE(folder1 != NULL); | |
1385 ASSERT_TRUE(AddFolder(1, folder1, 0, IndexedSubfolderName(5)) != NULL); | |
1386 ASSERT_TRUE(AddFolder(1, folder1, 1, IndexedSubfolderName(6)) != NULL); | |
1387 ASSERT_TRUE(AddURL(1, folder1, 2, IndexedURLTitle(7), | |
1388 GURL(IndexedURL(7))) != NULL); | |
1389 ASSERT_TRUE(AddURL(1, folder1, 3, IndexedURLTitle(8), | |
1390 GURL(IndexedURL(8))) != NULL); | |
1391 | |
1392 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
1393 ASSERT_TRUE(AwaitQuiescence()); | |
1394 ASSERT_TRUE(AllModelsMatch()); | |
1395 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); | |
1396 } | |
1397 | |
1398 // TCM ID - 3639296 - Merge disjoint sets of bookmark hierarchy under bookmark | |
1399 // bar. | |
1400 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
1401 MC_Merge_SimpleBMHierarchy_DisjointSets_Under_BookmarkBar) { | |
1402 ASSERT_TRUE(SetupClients()) << "SetupClients() failed."; | |
1403 DisableVerifier(); | |
1404 | |
1405 for (int i = 0; i < 3; ++i) { | |
1406 std::wstring title = IndexedURLTitle(i+1); | |
1407 GURL url = GURL(IndexedURL(i+1)); | |
1408 ASSERT_TRUE(AddURL(0, i, title, url) != NULL); | |
1409 } | |
1410 | |
1411 for (int j = 0; j < 3; ++j) { | |
1412 std::wstring title = IndexedURLTitle(j+4); | |
1413 GURL url = GURL(IndexedURL(j+4)); | |
1414 ASSERT_TRUE(AddURL(0, j, title, url) != NULL); | |
1415 } | |
1416 | |
1417 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
1418 ASSERT_TRUE(AwaitQuiescence()); | |
1419 ASSERT_TRUE(AllModelsMatch()); | |
1420 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); | |
1421 } | |
1422 | |
1423 // TCM ID - 3616282 - Merge sets of duplicate bookmarks under bookmark bar. | |
1424 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
1425 MC_Merge_SimpleBMHierarchy_DuplicateBMs_Under_BMBar) { | |
1426 ASSERT_TRUE(SetupClients()) << "SetupClients() failed."; | |
1427 DisableVerifier(); | |
1428 | |
1429 // Let's add duplicate set of bookmark {1,2,2,3,3,3,4,4,4,4} to client0. | |
1430 int node_index = 0; | |
1431 for (int i = 1; i < 5 ; ++i) { | |
1432 for (int j = 0; j < i; ++j) { | |
1433 std::wstring title = IndexedURLTitle(i); | |
1434 GURL url = GURL(IndexedURL(i)); | |
1435 ASSERT_TRUE(AddURL(0, node_index, title, url) != NULL); | |
1436 ++node_index; | |
1437 } | |
1438 } | |
1439 // Let's add a set of bookmarks {1,2,3,4} to client1. | |
1440 for (int i = 0; i < 4; ++i) { | |
1441 std::wstring title = IndexedURLTitle(i+1); | |
1442 GURL url = GURL(IndexedURL(i+1)); | |
1443 ASSERT_TRUE(AddURL(1, i, title, url) != NULL); | |
1444 } | |
1445 | |
1446 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
1447 ASSERT_TRUE(AwaitQuiescence()); | |
1448 ASSERT_TRUE(AllModelsMatch()); | |
1449 | |
1450 for (int i = 1; i < 5 ; ++i) { | |
1451 ASSERT_TRUE(CountBookmarksWithTitlesMatching(1, IndexedURLTitle(i)) == i); | |
1452 } | |
1453 } | |
1454 | |
1455 // TCM ID - 6593872. | |
1456 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, DisableBookmarks) { | |
1457 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
1458 ASSERT_TRUE(AllModelsMatchVerifier()); | |
1459 | |
1460 ASSERT_TRUE(GetClient(1)->DisableSyncForDatatype(syncable::BOOKMARKS)); | |
1461 ASSERT_TRUE(AddFolder(1, kGenericFolderName) != NULL); | |
1462 ASSERT_TRUE(AwaitQuiescence()); | |
1463 ASSERT_FALSE(AllModelsMatch()); | |
1464 | |
1465 ASSERT_TRUE(GetClient(1)->EnableSyncForDatatype(syncable::BOOKMARKS)); | |
1466 ASSERT_TRUE(AwaitQuiescence()); | |
1467 ASSERT_TRUE(AllModelsMatch()); | |
1468 } | |
1469 | |
1470 // TCM ID - 7343544. | |
1471 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, DisableSync) { | |
1472 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
1473 ASSERT_TRUE(AllModelsMatchVerifier()); | |
1474 | |
1475 ASSERT_TRUE(GetClient(1)->DisableSyncForAllDatatypes()); | |
1476 ASSERT_TRUE(AddFolder(0, IndexedFolderName(0)) != NULL); | |
1477 ASSERT_TRUE(GetClient(0)->AwaitSyncCycleCompletion("Added a folder.")); | |
1478 ASSERT_FALSE(AllModelsMatch()); | |
1479 | |
1480 ASSERT_TRUE(AddFolder(1, IndexedFolderName(1)) != NULL); | |
1481 ASSERT_FALSE(AllModelsMatch()); | |
1482 | |
1483 ASSERT_TRUE(GetClient(1)->EnableSyncForAllDatatypes()); | |
1484 ASSERT_TRUE(AwaitQuiescence()); | |
1485 ASSERT_TRUE(AllModelsMatch()); | |
1486 } | |
1487 | |
1488 // TCM ID - 3662298 - Test adding duplicate folder - Both with different BMs | |
1489 // underneath. | |
1490 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, MC_DuplicateFolders) { | |
1491 ASSERT_TRUE(SetupClients()) << "SetupClients() failed."; | |
1492 DisableVerifier(); | |
1493 | |
1494 const BookmarkNode* folder0 = AddFolder(0, kGenericFolderName); | |
1495 ASSERT_TRUE(folder0 != NULL); | |
1496 const BookmarkNode* folder1 = AddFolder(1, kGenericFolderName); | |
1497 ASSERT_TRUE(folder1 != NULL); | |
1498 for (int i = 0; i < 5; ++i) { | |
1499 std::wstring title0 = IndexedURLTitle(i); | |
1500 GURL url0 = GURL(IndexedURL(i)); | |
1501 ASSERT_TRUE(AddURL(0, folder0, i, title0, url0) != NULL); | |
1502 std::wstring title1 = IndexedURLTitle(i+5); | |
1503 GURL url1 = GURL(IndexedURL(i+5)); | |
1504 ASSERT_TRUE(AddURL(1, folder1, i, title1, url1) != NULL); | |
1505 } | |
1506 | |
1507 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
1508 ASSERT_TRUE(AwaitQuiescence()); | |
1509 ASSERT_TRUE(AllModelsMatch()); | |
1510 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); | |
1511 } | |
1512 | |
1513 // TCM ID - 3719307 - Test a scenario of updating the name of the same bookmark | |
1514 // from two clients at the same time. | |
1515 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
1516 MC_BookmarkNameChangeConflict) { | |
1517 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
1518 | |
1519 const BookmarkNode* folder0 = AddFolder(0, kGenericFolderName); | |
1520 ASSERT_TRUE(folder0 != NULL); | |
1521 for (int i = 0; i < 3; ++i) { | |
1522 std::wstring title = IndexedURLTitle(i); | |
1523 GURL url = GURL(IndexedURL(i)); | |
1524 ASSERT_TRUE(AddURL(0, folder0, i, title, url) != NULL); | |
1525 } | |
1526 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
1527 ASSERT_TRUE(AllModelsMatchVerifier()); | |
1528 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); | |
1529 | |
1530 DisableVerifier(); | |
1531 GURL url(IndexedURL(0)); | |
1532 SetTitle(0, GetUniqueNodeByURL(0, url), L"Title++"); | |
1533 SetTitle(1, GetUniqueNodeByURL(1, url), L"Title--"); | |
1534 | |
1535 ASSERT_TRUE(AwaitQuiescence()); | |
1536 ASSERT_TRUE(AllModelsMatch()); | |
1537 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); | |
1538 } | |
1539 | |
1540 // TCM ID - 3672299 - Test a scenario of updating the URL of the same bookmark | |
1541 // from two clients at the same time. | |
1542 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
1543 MC_BookmarkURLChangeConflict) { | |
1544 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
1545 | |
1546 const BookmarkNode* folder0 = AddFolder(0, kGenericFolderName); | |
1547 ASSERT_TRUE(folder0 != NULL); | |
1548 for (int i = 0; i < 3; ++i) { | |
1549 std::wstring title = IndexedURLTitle(i); | |
1550 GURL url = GURL(IndexedURL(i)); | |
1551 ASSERT_TRUE(AddURL(0, folder0, i, title, url) != NULL); | |
1552 } | |
1553 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
1554 ASSERT_TRUE(AllModelsMatchVerifier()); | |
1555 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); | |
1556 | |
1557 DisableVerifier(); | |
1558 GURL url(IndexedURL(0)); | |
1559 ASSERT_TRUE(SetURL(0, | |
1560 GetUniqueNodeByURL(0, url), | |
1561 GURL("http://www.google.com/00"))); | |
1562 ASSERT_TRUE(SetURL(1, | |
1563 GetUniqueNodeByURL(1, url), | |
1564 GURL("http://www.google.com/11"))); | |
1565 | |
1566 ASSERT_TRUE(AwaitQuiescence()); | |
1567 ASSERT_TRUE(AllModelsMatch()); | |
1568 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); | |
1569 } | |
1570 | |
1571 // TCM ID - 3699290 - Test a scenario of updating the BM Folder name from two | |
1572 // clients at the same time. | |
1573 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
1574 MC_FolderNameChangeConflict) { | |
1575 ASSERT_TRUE(SetupClients()) << "SetupClients() failed."; | |
1576 DisableVerifier(); | |
1577 | |
1578 const BookmarkNode* folderA[2]; | |
1579 const BookmarkNode* folderB[2]; | |
1580 const BookmarkNode* folderC[2]; | |
1581 | |
1582 // Create empty folder A on both clients. | |
1583 folderA[0] = AddFolder(0, IndexedFolderName(0)); | |
1584 ASSERT_TRUE(folderA[0] != NULL); | |
1585 folderA[1] = AddFolder(1, IndexedFolderName(0)); | |
1586 ASSERT_TRUE(folderA[1] != NULL); | |
1587 | |
1588 // Create folder B with bookmarks on both clients. | |
1589 folderB[0] = AddFolder(0, IndexedFolderName(1)); | |
1590 ASSERT_TRUE(folderB[0] != NULL); | |
1591 folderB[1] = AddFolder(1, IndexedFolderName(1)); | |
1592 ASSERT_TRUE(folderB[1] != NULL); | |
1593 for (int i = 0; i < 3; ++i) { | |
1594 std::wstring title = IndexedURLTitle(i); | |
1595 GURL url = GURL(IndexedURL(i)); | |
1596 ASSERT_TRUE(AddURL(0, folderB[0], i, title, url) != NULL); | |
1597 } | |
1598 | |
1599 // Create folder C with bookmarks and subfolders on both clients. | |
1600 folderC[0] = AddFolder(0, IndexedFolderName(2)); | |
1601 ASSERT_TRUE(folderC[0] != NULL); | |
1602 folderC[1] = AddFolder(1, IndexedFolderName(2)); | |
1603 ASSERT_TRUE(folderC[1] != NULL); | |
1604 for (int i = 0; i < 3; ++i) { | |
1605 std::wstring folder_name = IndexedSubfolderName(i); | |
1606 const BookmarkNode* subfolder = AddFolder(0, folderC[0], i, folder_name); | |
1607 ASSERT_TRUE(subfolder != NULL); | |
1608 for (int j = 0; j < 3; ++j) { | |
1609 std::wstring title = IndexedURLTitle(j); | |
1610 GURL url = GURL(IndexedURL(j)); | |
1611 ASSERT_TRUE(AddURL(0, subfolder, j, title, url) != NULL); | |
1612 } | |
1613 } | |
1614 | |
1615 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
1616 ASSERT_TRUE(AwaitQuiescence()); | |
1617 ASSERT_TRUE(AllModelsMatch()); | |
1618 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); | |
1619 | |
1620 // Simultaneously rename folder A on both clients. | |
1621 SetTitle(0, folderA[0], L"Folder A++"); | |
1622 SetTitle(1, folderA[1], L"Folder A--"); | |
1623 ASSERT_TRUE(AwaitQuiescence()); | |
1624 ASSERT_TRUE(AllModelsMatch()); | |
1625 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); | |
1626 | |
1627 // Simultaneously rename folder B on both clients. | |
1628 SetTitle(0, folderB[0], L"Folder B++"); | |
1629 SetTitle(1, folderB[1], L"Folder B--"); | |
1630 ASSERT_TRUE(AwaitQuiescence()); | |
1631 ASSERT_TRUE(AllModelsMatch()); | |
1632 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); | |
1633 | |
1634 // Simultaneously rename folder C on both clients. | |
1635 SetTitle(0, folderC[0], L"Folder C++"); | |
1636 SetTitle(1, folderC[1], L"Folder C--"); | |
1637 ASSERT_TRUE(AwaitQuiescence()); | |
1638 ASSERT_TRUE(AllModelsMatch()); | |
1639 ASSERT_FALSE(ContainsDuplicateBookmarks(0)); | |
1640 } | |
1641 | |
1642 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
1643 SingleClientEnabledEncryption) { | |
1644 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
1645 ASSERT_TRUE(AllModelsMatchVerifier()); | |
1646 | |
1647 ASSERT_TRUE(EnableEncryption(0)); | |
1648 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
1649 ASSERT_TRUE(IsEncrypted(0)); | |
1650 ASSERT_TRUE(IsEncrypted(1)); | |
1651 ASSERT_TRUE(AllModelsMatchVerifier()); | |
1652 } | |
1653 | |
1654 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
1655 SingleClientEnabledEncryptionAndChanged) { | |
1656 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
1657 ASSERT_TRUE(AllModelsMatchVerifier()); | |
1658 | |
1659 ASSERT_TRUE(EnableEncryption(0)); | |
1660 ASSERT_TRUE(AddURL(0, IndexedURLTitle(0), GURL(IndexedURL(0))) != NULL); | |
1661 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
1662 ASSERT_TRUE(IsEncrypted(0)); | |
1663 ASSERT_TRUE(IsEncrypted(1)); | |
1664 ASSERT_TRUE(AllModelsMatchVerifier()); | |
1665 } | |
1666 | |
1667 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
1668 BothClientsEnabledEncryption) { | |
1669 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
1670 ASSERT_TRUE(AllModelsMatchVerifier()); | |
1671 | |
1672 ASSERT_TRUE(EnableEncryption(0)); | |
1673 ASSERT_TRUE(EnableEncryption(1)); | |
1674 ASSERT_TRUE(AwaitQuiescence()); | |
1675 ASSERT_TRUE(IsEncrypted(0)); | |
1676 ASSERT_TRUE(IsEncrypted(1)); | |
1677 ASSERT_TRUE(AllModelsMatchVerifier()); | |
1678 } | |
1679 | |
1680 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
1681 SingleClientEnabledEncryptionBothChanged) { | |
1682 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
1683 ASSERT_TRUE(AllModelsMatchVerifier()); | |
1684 | |
1685 ASSERT_TRUE(EnableEncryption(0)); | |
1686 ASSERT_TRUE(AwaitQuiescence()); | |
1687 ASSERT_TRUE(IsEncrypted(0)); | |
1688 ASSERT_TRUE(IsEncrypted(1)); | |
1689 ASSERT_TRUE(AddURL(0, IndexedURLTitle(0), GURL(IndexedURL(0))) != NULL); | |
1690 ASSERT_TRUE(AddURL(0, IndexedURLTitle(1), GURL(IndexedURL(1))) != NULL); | |
1691 ASSERT_TRUE(AwaitQuiescence()); | |
1692 ASSERT_TRUE(AllModelsMatchVerifier()); | |
1693 ASSERT_TRUE(IsEncrypted(0)); | |
1694 ASSERT_TRUE(IsEncrypted(1)); | |
1695 } | |
1696 | |
1697 IN_PROC_BROWSER_TEST_F(TwoClientLiveBookmarksSyncTest, | |
1698 SingleClientEnabledEncryptionAndChangedMultipleTimes) { | |
1699 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | |
1700 ASSERT_TRUE(AllModelsMatchVerifier()); | |
1701 | |
1702 ASSERT_TRUE(AddURL(0, IndexedURLTitle(0), GURL(IndexedURL(0))) != NULL); | |
1703 ASSERT_TRUE(EnableEncryption(0)); | |
1704 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
1705 ASSERT_TRUE(IsEncrypted(0)); | |
1706 ASSERT_TRUE(IsEncrypted(1)); | |
1707 ASSERT_TRUE(AllModelsMatchVerifier()); | |
1708 | |
1709 ASSERT_TRUE(AddURL(0, IndexedURLTitle(1), GURL(IndexedURL(1))) != NULL); | |
1710 ASSERT_TRUE(AddFolder(0, IndexedFolderName(0)) != NULL); | |
1711 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); | |
1712 ASSERT_TRUE(AllModelsMatchVerifier()); | |
1713 } | |
1714 | |
1715 // TODO(zea): Add first time sync functionality testing. In particular, when | |
1716 // there are encrypted types in first time sync we need to ensure we don't | |
1717 // duplicate bookmarks. | |
OLD | NEW |