OLD | NEW |
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 <utility> | 5 #include <utility> |
6 | 6 |
7 #include "base/macros.h" | 7 #include "base/macros.h" |
8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
9 #include "chrome/browser/profiles/profile.h" | 9 #include "chrome/browser/profiles/profile.h" |
10 #include "chrome/browser/sync/test/integration/bookmarks_helper.h" | 10 #include "chrome/browser/sync/test/integration/bookmarks_helper.h" |
11 #include "chrome/browser/sync/test/integration/single_client_status_change_check
er.h" | 11 #include "chrome/browser/sync/test/integration/single_client_status_change_check
er.h" |
12 #include "chrome/browser/sync/test/integration/sync_integration_test_util.h" | |
13 #include "chrome/browser/sync/test/integration/sync_test.h" | 12 #include "chrome/browser/sync/test/integration/sync_test.h" |
| 13 #include "chrome/browser/sync/test/integration/updated_progress_marker_checker.h
" |
14 #include "components/bookmarks/browser/bookmark_model.h" | 14 #include "components/bookmarks/browser/bookmark_model.h" |
15 #include "components/browser_sync/profile_sync_service.h" | 15 #include "components/browser_sync/profile_sync_service.h" |
16 #include "components/sync/test/fake_server/bookmark_entity_builder.h" | 16 #include "components/sync/test/fake_server/bookmark_entity_builder.h" |
17 #include "components/sync/test/fake_server/entity_builder_factory.h" | 17 #include "components/sync/test/fake_server/entity_builder_factory.h" |
18 #include "components/sync/test/fake_server/fake_server_verifier.h" | 18 #include "components/sync/test/fake_server/fake_server_verifier.h" |
19 #include "components/sync/test/fake_server/tombstone_entity.h" | 19 #include "components/sync/test/fake_server/tombstone_entity.h" |
20 #include "ui/base/layout.h" | 20 #include "ui/base/layout.h" |
21 | 21 |
22 using bookmarks::BookmarkModel; | 22 using bookmarks::BookmarkModel; |
23 using bookmarks::BookmarkNode; | 23 using bookmarks::BookmarkNode; |
24 using bookmarks_helper::AddFolder; | 24 using bookmarks_helper::AddFolder; |
25 using bookmarks_helper::AddURL; | 25 using bookmarks_helper::AddURL; |
26 using bookmarks_helper::AwaitCountBookmarksWithTitlesMatching; | |
27 using bookmarks_helper::AwaitCountBookmarksWithUrlsMatching; | |
28 using bookmarks_helper::CountBookmarksWithTitlesMatching; | 26 using bookmarks_helper::CountBookmarksWithTitlesMatching; |
29 using bookmarks_helper::CountBookmarksWithUrlsMatching; | 27 using bookmarks_helper::CountBookmarksWithUrlsMatching; |
30 using bookmarks_helper::CountFoldersWithTitlesMatching; | 28 using bookmarks_helper::CountFoldersWithTitlesMatching; |
31 using bookmarks_helper::Create1xFaviconFromPNGFile; | 29 using bookmarks_helper::Create1xFaviconFromPNGFile; |
32 using bookmarks_helper::GetBookmarkBarNode; | 30 using bookmarks_helper::GetBookmarkBarNode; |
33 using bookmarks_helper::GetBookmarkModel; | 31 using bookmarks_helper::GetBookmarkModel; |
34 using bookmarks_helper::GetOtherNode; | 32 using bookmarks_helper::GetOtherNode; |
35 using bookmarks_helper::ModelMatchesVerifier; | 33 using bookmarks_helper::ModelMatchesVerifier; |
36 using bookmarks_helper::Move; | 34 using bookmarks_helper::Move; |
37 using bookmarks_helper::Remove; | 35 using bookmarks_helper::Remove; |
38 using bookmarks_helper::RemoveAll; | 36 using bookmarks_helper::RemoveAll; |
39 using bookmarks_helper::SetFavicon; | 37 using bookmarks_helper::SetFavicon; |
40 using bookmarks_helper::SetTitle; | 38 using bookmarks_helper::SetTitle; |
41 using sync_integration_test_util::AwaitCommitActivityCompletion; | |
42 | 39 |
43 // All tests in this file utilize a single profile. | 40 // All tests in this file utilize a single profile. |
44 // TODO(pvalenzuela): Standardize this pattern by moving this constant to | 41 // TODO(pvalenzuela): Standardize this pattern by moving this constant to |
45 // SyncTest and using it in all single client tests. | 42 // SyncTest and using it in all single client tests. |
46 const int kSingleProfileIndex = 0; | 43 const int kSingleProfileIndex = 0; |
47 | 44 |
48 class SingleClientBookmarksSyncTest : public SyncTest { | 45 class SingleClientBookmarksSyncTest : public SyncTest { |
49 public: | 46 public: |
50 SingleClientBookmarksSyncTest() : SyncTest(SINGLE_CLIENT) {} | 47 SingleClientBookmarksSyncTest() : SyncTest(SINGLE_CLIENT) {} |
51 ~SingleClientBookmarksSyncTest() override {} | 48 ~SingleClientBookmarksSyncTest() override {} |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
103 const BookmarkNode* tier1_a_url2 = AddURL( | 100 const BookmarkNode* tier1_a_url2 = AddURL( |
104 kSingleProfileIndex, tier1_a, 2, "tier1_a_url2", | 101 kSingleProfileIndex, tier1_a, 2, "tier1_a_url2", |
105 GURL("http://www.facebook.com")); | 102 GURL("http://www.facebook.com")); |
106 const BookmarkNode* tier1_b_url0 = AddURL( | 103 const BookmarkNode* tier1_b_url0 = AddURL( |
107 kSingleProfileIndex, tier1_b, 0, "tier1_b_url0", | 104 kSingleProfileIndex, tier1_b, 0, "tier1_b_url0", |
108 GURL("http://www.nhl.com")); | 105 GURL("http://www.nhl.com")); |
109 | 106 |
110 // Setup sync, wait for its completion, and make sure changes were synced. | 107 // Setup sync, wait for its completion, and make sure changes were synced. |
111 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | 108 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; |
112 ASSERT_TRUE( | 109 ASSERT_TRUE( |
113 AwaitCommitActivityCompletion(GetSyncService(kSingleProfileIndex))); | 110 UpdatedProgressMarkerChecker(GetSyncService(kSingleProfileIndex)).Wait()); |
114 ASSERT_TRUE(ModelMatchesVerifier(kSingleProfileIndex)); | 111 ASSERT_TRUE(ModelMatchesVerifier(kSingleProfileIndex)); |
115 | 112 |
116 // Ultimately we want to end up with the following model; but this test is | 113 // Ultimately we want to end up with the following model; but this test is |
117 // more about the journey than the destination. | 114 // more about the journey than the destination. |
118 // | 115 // |
119 // bookmark_bar | 116 // bookmark_bar |
120 // -> CNN (www.cnn.com) | 117 // -> CNN (www.cnn.com) |
121 // -> tier1_a | 118 // -> tier1_a |
122 // -> tier1_a_url2 (www.facebook.com) | 119 // -> tier1_a_url2 (www.facebook.com) |
123 // -> tier1_a_url1 (www.pandora.com) | 120 // -> tier1_a_url1 (www.pandora.com) |
(...skipping 11 matching lines...) Expand all Loading... |
135 // -> Wynn (www.wynnlasvegas.com) | 132 // -> Wynn (www.wynnlasvegas.com) |
136 // -> tier1_a_url0 | 133 // -> tier1_a_url0 |
137 const BookmarkNode* bar = GetBookmarkBarNode(kSingleProfileIndex); | 134 const BookmarkNode* bar = GetBookmarkBarNode(kSingleProfileIndex); |
138 const BookmarkNode* cnn = AddURL( | 135 const BookmarkNode* cnn = AddURL( |
139 kSingleProfileIndex, bar, 0, "CNN", GURL("http://www.cnn.com")); | 136 kSingleProfileIndex, bar, 0, "CNN", GURL("http://www.cnn.com")); |
140 ASSERT_TRUE(cnn != NULL); | 137 ASSERT_TRUE(cnn != NULL); |
141 Move(kSingleProfileIndex, tier1_a, bar, 1); | 138 Move(kSingleProfileIndex, tier1_a, bar, 1); |
142 | 139 |
143 // Wait for the bookmark position change to sync. | 140 // Wait for the bookmark position change to sync. |
144 ASSERT_TRUE( | 141 ASSERT_TRUE( |
145 AwaitCommitActivityCompletion(GetSyncService(kSingleProfileIndex))); | 142 UpdatedProgressMarkerChecker(GetSyncService(kSingleProfileIndex)).Wait()); |
146 ASSERT_TRUE(ModelMatchesVerifier(kSingleProfileIndex)); | 143 ASSERT_TRUE(ModelMatchesVerifier(kSingleProfileIndex)); |
147 | 144 |
148 const BookmarkNode* porsche = AddURL( | 145 const BookmarkNode* porsche = AddURL( |
149 kSingleProfileIndex, bar, 2, "Porsche", GURL("http://www.porsche.com")); | 146 kSingleProfileIndex, bar, 2, "Porsche", GURL("http://www.porsche.com")); |
150 // Rearrange stuff in tier1_a. | 147 // Rearrange stuff in tier1_a. |
151 ASSERT_EQ(tier1_a, tier1_a_url2->parent()); | 148 ASSERT_EQ(tier1_a, tier1_a_url2->parent()); |
152 ASSERT_EQ(tier1_a, tier1_a_url1->parent()); | 149 ASSERT_EQ(tier1_a, tier1_a_url1->parent()); |
153 Move(kSingleProfileIndex, tier1_a_url2, tier1_a, 0); | 150 Move(kSingleProfileIndex, tier1_a_url2, tier1_a, 0); |
154 Move(kSingleProfileIndex, tier1_a_url1, tier1_a, 2); | 151 Move(kSingleProfileIndex, tier1_a_url1, tier1_a, 2); |
155 | 152 |
156 // Wait for the rearranged hierarchy to sync. | 153 // Wait for the rearranged hierarchy to sync. |
157 ASSERT_TRUE( | 154 ASSERT_TRUE( |
158 AwaitCommitActivityCompletion(GetSyncService(kSingleProfileIndex))); | 155 UpdatedProgressMarkerChecker(GetSyncService(kSingleProfileIndex)).Wait()); |
159 ASSERT_TRUE(ModelMatchesVerifier(kSingleProfileIndex)); | 156 ASSERT_TRUE(ModelMatchesVerifier(kSingleProfileIndex)); |
160 | 157 |
161 ASSERT_EQ(1, tier1_a_url0->parent()->GetIndexOf(tier1_a_url0)); | 158 ASSERT_EQ(1, tier1_a_url0->parent()->GetIndexOf(tier1_a_url0)); |
162 Move(kSingleProfileIndex, tier1_a_url0, bar, bar->child_count()); | 159 Move(kSingleProfileIndex, tier1_a_url0, bar, bar->child_count()); |
163 const BookmarkNode* boa = AddURL( | 160 const BookmarkNode* boa = AddURL( |
164 kSingleProfileIndex, bar, bar->child_count(), | 161 kSingleProfileIndex, bar, bar->child_count(), |
165 "Bank of America", GURL("https://www.bankofamerica.com")); | 162 "Bank of America", GURL("https://www.bankofamerica.com")); |
166 ASSERT_TRUE(boa != NULL); | 163 ASSERT_TRUE(boa != NULL); |
167 Move(kSingleProfileIndex, tier1_a_url0, top, top->child_count()); | 164 Move(kSingleProfileIndex, tier1_a_url0, top, top->child_count()); |
168 const BookmarkNode* bubble = AddURL( | 165 const BookmarkNode* bubble = AddURL( |
169 kSingleProfileIndex, bar, bar->child_count(), "Seattle Bubble", | 166 kSingleProfileIndex, bar, bar->child_count(), "Seattle Bubble", |
170 GURL("http://seattlebubble.com")); | 167 GURL("http://seattlebubble.com")); |
171 ASSERT_TRUE(bubble != NULL); | 168 ASSERT_TRUE(bubble != NULL); |
172 const BookmarkNode* wired = AddURL( | 169 const BookmarkNode* wired = AddURL( |
173 kSingleProfileIndex, bar, 2, "Wired News", GURL("http://www.wired.com")); | 170 kSingleProfileIndex, bar, 2, "Wired News", GURL("http://www.wired.com")); |
174 const BookmarkNode* tier2_b = AddFolder( | 171 const BookmarkNode* tier2_b = AddFolder( |
175 kSingleProfileIndex, tier1_b, 0, "tier2_b"); | 172 kSingleProfileIndex, tier1_b, 0, "tier2_b"); |
176 Move(kSingleProfileIndex, tier1_b_url0, tier2_b, 0); | 173 Move(kSingleProfileIndex, tier1_b_url0, tier2_b, 0); |
177 Move(kSingleProfileIndex, porsche, bar, 0); | 174 Move(kSingleProfileIndex, porsche, bar, 0); |
178 SetTitle(kSingleProfileIndex, wired, "News Wired"); | 175 SetTitle(kSingleProfileIndex, wired, "News Wired"); |
179 SetTitle(kSingleProfileIndex, porsche, "ICanHazPorsche?"); | 176 SetTitle(kSingleProfileIndex, porsche, "ICanHazPorsche?"); |
180 | 177 |
181 // Wait for the title change to sync. | 178 // Wait for the title change to sync. |
182 ASSERT_TRUE( | 179 ASSERT_TRUE( |
183 AwaitCommitActivityCompletion(GetSyncService(kSingleProfileIndex))); | 180 UpdatedProgressMarkerChecker(GetSyncService(kSingleProfileIndex)).Wait()); |
184 ASSERT_TRUE(ModelMatchesVerifier(kSingleProfileIndex)); | 181 ASSERT_TRUE(ModelMatchesVerifier(kSingleProfileIndex)); |
185 | 182 |
186 ASSERT_EQ(tier1_a_url0->id(), top->GetChild(top->child_count() - 1)->id()); | 183 ASSERT_EQ(tier1_a_url0->id(), top->GetChild(top->child_count() - 1)->id()); |
187 Remove(kSingleProfileIndex, top, top->child_count() - 1); | 184 Remove(kSingleProfileIndex, top, top->child_count() - 1); |
188 Move(kSingleProfileIndex, wired, tier1_b, 0); | 185 Move(kSingleProfileIndex, wired, tier1_b, 0); |
189 Move(kSingleProfileIndex, porsche, bar, 3); | 186 Move(kSingleProfileIndex, porsche, bar, 3); |
190 const BookmarkNode* tier3_b = AddFolder( | 187 const BookmarkNode* tier3_b = AddFolder( |
191 kSingleProfileIndex, tier2_b, 1, "tier3_b"); | 188 kSingleProfileIndex, tier2_b, 1, "tier3_b"); |
192 const BookmarkNode* leafs = AddURL( | 189 const BookmarkNode* leafs = AddURL( |
193 kSingleProfileIndex, tier1_a, 0, "Toronto Maple Leafs", | 190 kSingleProfileIndex, tier1_a, 0, "Toronto Maple Leafs", |
194 GURL("http://mapleleafs.nhl.com")); | 191 GURL("http://mapleleafs.nhl.com")); |
195 const BookmarkNode* wynn = AddURL( | 192 const BookmarkNode* wynn = AddURL( |
196 kSingleProfileIndex, bar, 1, "Wynn", GURL("http://www.wynnlasvegas.com")); | 193 kSingleProfileIndex, bar, 1, "Wynn", GURL("http://www.wynnlasvegas.com")); |
197 | 194 |
198 Move(kSingleProfileIndex, wynn, tier3_b, 0); | 195 Move(kSingleProfileIndex, wynn, tier3_b, 0); |
199 Move(kSingleProfileIndex, leafs, tier3_b, 0); | 196 Move(kSingleProfileIndex, leafs, tier3_b, 0); |
200 | 197 |
201 // Wait for newly added bookmarks to sync. | 198 // Wait for newly added bookmarks to sync. |
202 ASSERT_TRUE( | 199 ASSERT_TRUE( |
203 AwaitCommitActivityCompletion(GetSyncService(kSingleProfileIndex))); | 200 UpdatedProgressMarkerChecker(GetSyncService(kSingleProfileIndex)).Wait()); |
204 ASSERT_TRUE(ModelMatchesVerifier(kSingleProfileIndex)); | 201 ASSERT_TRUE(ModelMatchesVerifier(kSingleProfileIndex)); |
205 | 202 |
206 // Only verify FakeServer data if FakeServer is being used. | 203 // Only verify FakeServer data if FakeServer is being used. |
207 // TODO(pvalenzuela): Use this style of verification in more tests once it is | 204 // TODO(pvalenzuela): Use this style of verification in more tests once it is |
208 // proven stable. | 205 // proven stable. |
209 if (GetFakeServer()) | 206 if (GetFakeServer()) |
210 VerifyBookmarkModelMatchesFakeServer(kSingleProfileIndex); | 207 VerifyBookmarkModelMatchesFakeServer(kSingleProfileIndex); |
211 } | 208 } |
212 | 209 |
213 IN_PROC_BROWSER_TEST_F(SingleClientBookmarksSyncTest, InjectedBookmark) { | 210 IN_PROC_BROWSER_TEST_F(SingleClientBookmarksSyncTest, InjectedBookmark) { |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
249 // than the one native to the OS. This tests the PNG data is not decoded to | 246 // than the one native to the OS. This tests the PNG data is not decoded to |
250 // SkBitmap (or any other image format) then encoded back to PNG on the path | 247 // SkBitmap (or any other image format) then encoded back to PNG on the path |
251 // between sync and the database. | 248 // between sync and the database. |
252 gfx::Image original_favicon = Create1xFaviconFromPNGFile( | 249 gfx::Image original_favicon = Create1xFaviconFromPNGFile( |
253 "favicon_cocoa_png_codec.png"); | 250 "favicon_cocoa_png_codec.png"); |
254 ASSERT_FALSE(original_favicon.IsEmpty()); | 251 ASSERT_FALSE(original_favicon.IsEmpty()); |
255 SetFavicon(kSingleProfileIndex, bookmark, icon_url, original_favicon, | 252 SetFavicon(kSingleProfileIndex, bookmark, icon_url, original_favicon, |
256 bookmarks_helper::FROM_SYNC); | 253 bookmarks_helper::FROM_SYNC); |
257 | 254 |
258 ASSERT_TRUE( | 255 ASSERT_TRUE( |
259 AwaitCommitActivityCompletion(GetSyncService(kSingleProfileIndex))); | 256 UpdatedProgressMarkerChecker(GetSyncService(kSingleProfileIndex)).Wait()); |
260 ASSERT_TRUE(ModelMatchesVerifier(kSingleProfileIndex)); | 257 ASSERT_TRUE(ModelMatchesVerifier(kSingleProfileIndex)); |
261 | 258 |
262 scoped_refptr<base::RefCountedMemory> original_favicon_bytes = | 259 scoped_refptr<base::RefCountedMemory> original_favicon_bytes = |
263 original_favicon.As1xPNGBytes(); | 260 original_favicon.As1xPNGBytes(); |
264 gfx::Image final_favicon = | 261 gfx::Image final_favicon = |
265 GetBookmarkModel(kSingleProfileIndex)->GetFavicon(bookmark); | 262 GetBookmarkModel(kSingleProfileIndex)->GetFavicon(bookmark); |
266 scoped_refptr<base::RefCountedMemory> final_favicon_bytes = | 263 scoped_refptr<base::RefCountedMemory> final_favicon_bytes = |
267 final_favicon.As1xPNGBytes(); | 264 final_favicon.As1xPNGBytes(); |
268 | 265 |
269 // Check that the data was not mutated from the original. | 266 // Check that the data was not mutated from the original. |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
311 AddFolder(kSingleProfileIndex, GetBookmarkBarNode(kSingleProfileIndex), 1, | 308 AddFolder(kSingleProfileIndex, GetBookmarkBarNode(kSingleProfileIndex), 1, |
312 "folder1"); | 309 "folder1"); |
313 ASSERT_TRUE(AddURL(kSingleProfileIndex, folder1, 0, "Yahoo", | 310 ASSERT_TRUE(AddURL(kSingleProfileIndex, folder1, 0, "Yahoo", |
314 GURL("http://www.yahoo.com"))); | 311 GURL("http://www.yahoo.com"))); |
315 ASSERT_TRUE(AddURL(kSingleProfileIndex, GetBookmarkBarNode(0), 2, "Gmai", | 312 ASSERT_TRUE(AddURL(kSingleProfileIndex, GetBookmarkBarNode(0), 2, "Gmai", |
316 GURL("http://gmail.com"))); | 313 GURL("http://gmail.com"))); |
317 | 314 |
318 // Set up sync, wait for its completion and verify that changes propagated. | 315 // Set up sync, wait for its completion and verify that changes propagated. |
319 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | 316 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; |
320 ASSERT_TRUE( | 317 ASSERT_TRUE( |
321 AwaitCommitActivityCompletion(GetSyncService(kSingleProfileIndex))); | 318 UpdatedProgressMarkerChecker(GetSyncService(kSingleProfileIndex)).Wait()); |
322 ASSERT_TRUE(ModelMatchesVerifier(kSingleProfileIndex)); | 319 ASSERT_TRUE(ModelMatchesVerifier(kSingleProfileIndex)); |
323 | 320 |
324 // Remove all bookmarks and wait for sync completion. | 321 // Remove all bookmarks and wait for sync completion. |
325 RemoveAll(kSingleProfileIndex); | 322 RemoveAll(kSingleProfileIndex); |
326 ASSERT_TRUE( | 323 ASSERT_TRUE( |
327 AwaitCommitActivityCompletion(GetSyncService(kSingleProfileIndex))); | 324 UpdatedProgressMarkerChecker(GetSyncService(kSingleProfileIndex)).Wait()); |
328 // Verify other node has no children now. | 325 // Verify other node has no children now. |
329 EXPECT_EQ(0, GetOtherNode(kSingleProfileIndex)->child_count()); | 326 EXPECT_EQ(0, GetOtherNode(kSingleProfileIndex)->child_count()); |
330 EXPECT_EQ(0, GetBookmarkBarNode(kSingleProfileIndex)->child_count()); | 327 EXPECT_EQ(0, GetBookmarkBarNode(kSingleProfileIndex)->child_count()); |
331 // Verify model matches verifier. | 328 // Verify model matches verifier. |
332 ASSERT_TRUE(ModelMatchesVerifier(kSingleProfileIndex)); | 329 ASSERT_TRUE(ModelMatchesVerifier(kSingleProfileIndex)); |
333 } | 330 } |
334 | 331 |
335 IN_PROC_BROWSER_TEST_F(SingleClientBookmarksSyncTest, | 332 IN_PROC_BROWSER_TEST_F(SingleClientBookmarksSyncTest, |
336 DownloadDeletedBookmark) { | 333 DownloadDeletedBookmark) { |
337 std::string title = "Patrick Star"; | 334 std::string title = "Patrick Star"; |
(...skipping 13 matching lines...) Expand all Loading... |
351 ASSERT_EQ(1ul, server_bookmarks.size()); | 348 ASSERT_EQ(1ul, server_bookmarks.size()); |
352 std::string entity_id = server_bookmarks[0].id_string(); | 349 std::string entity_id = server_bookmarks[0].id_string(); |
353 std::unique_ptr<fake_server::FakeServerEntity> tombstone( | 350 std::unique_ptr<fake_server::FakeServerEntity> tombstone( |
354 fake_server::TombstoneEntity::Create(entity_id, std::string())); | 351 fake_server::TombstoneEntity::Create(entity_id, std::string())); |
355 GetFakeServer()->InjectEntity(std::move(tombstone)); | 352 GetFakeServer()->InjectEntity(std::move(tombstone)); |
356 | 353 |
357 const syncer::ModelTypeSet kBookmarksType(syncer::BOOKMARKS); | 354 const syncer::ModelTypeSet kBookmarksType(syncer::BOOKMARKS); |
358 TriggerSyncForModelTypes(kSingleProfileIndex, kBookmarksType); | 355 TriggerSyncForModelTypes(kSingleProfileIndex, kBookmarksType); |
359 | 356 |
360 const int kExpectedCountAfterDeletion = 0; | 357 const int kExpectedCountAfterDeletion = 0; |
361 ASSERT_TRUE(AwaitCountBookmarksWithTitlesMatching( | 358 ASSERT_TRUE(BookmarksTitleChecker(kSingleProfileIndex, title, |
362 kSingleProfileIndex, title, kExpectedCountAfterDeletion)); | 359 kExpectedCountAfterDeletion) |
| 360 .Wait()); |
363 } | 361 } |
364 | 362 |
365 IN_PROC_BROWSER_TEST_F(SingleClientBookmarksSyncTest, | 363 IN_PROC_BROWSER_TEST_F(SingleClientBookmarksSyncTest, |
366 DownloadModifiedBookmark) { | 364 DownloadModifiedBookmark) { |
367 std::string title = "Syrup"; | 365 std::string title = "Syrup"; |
368 GURL original_url = GURL("https://en.wikipedia.org/?title=Maple_syrup"); | 366 GURL original_url = GURL("https://en.wikipedia.org/?title=Maple_syrup"); |
369 GURL updated_url = GURL("https://en.wikipedia.org/wiki/Xylem"); | 367 GURL updated_url = GURL("https://en.wikipedia.org/wiki/Xylem"); |
370 | 368 |
371 fake_server::EntityBuilderFactory entity_builder_factory; | 369 fake_server::EntityBuilderFactory entity_builder_factory; |
372 fake_server::BookmarkEntityBuilder bookmark_builder = | 370 fake_server::BookmarkEntityBuilder bookmark_builder = |
(...skipping 15 matching lines...) Expand all Loading... |
388 std::string entity_id = server_bookmarks[0].id_string(); | 386 std::string entity_id = server_bookmarks[0].id_string(); |
389 | 387 |
390 sync_pb::EntitySpecifics specifics = server_bookmarks[0].specifics(); | 388 sync_pb::EntitySpecifics specifics = server_bookmarks[0].specifics(); |
391 sync_pb::BookmarkSpecifics* bookmark_specifics = specifics.mutable_bookmark(); | 389 sync_pb::BookmarkSpecifics* bookmark_specifics = specifics.mutable_bookmark(); |
392 bookmark_specifics->set_url(updated_url.spec()); | 390 bookmark_specifics->set_url(updated_url.spec()); |
393 ASSERT_TRUE(GetFakeServer()->ModifyEntitySpecifics(entity_id, specifics)); | 391 ASSERT_TRUE(GetFakeServer()->ModifyEntitySpecifics(entity_id, specifics)); |
394 | 392 |
395 const syncer::ModelTypeSet kBookmarksType(syncer::BOOKMARKS); | 393 const syncer::ModelTypeSet kBookmarksType(syncer::BOOKMARKS); |
396 TriggerSyncForModelTypes(kSingleProfileIndex, kBookmarksType); | 394 TriggerSyncForModelTypes(kSingleProfileIndex, kBookmarksType); |
397 | 395 |
398 ASSERT_TRUE(AwaitCountBookmarksWithUrlsMatching( | 396 ASSERT_TRUE(BookmarksUrlChecker(kSingleProfileIndex, updated_url, 1).Wait()); |
399 kSingleProfileIndex, updated_url, 1)); | |
400 ASSERT_EQ(0, CountBookmarksWithUrlsMatching(kSingleProfileIndex, | 397 ASSERT_EQ(0, CountBookmarksWithUrlsMatching(kSingleProfileIndex, |
401 original_url)); | 398 original_url)); |
402 ASSERT_EQ(1, CountBookmarksWithTitlesMatching(kSingleProfileIndex, title)); | 399 ASSERT_EQ(1, CountBookmarksWithTitlesMatching(kSingleProfileIndex, title)); |
403 } | 400 } |
404 | 401 |
405 IN_PROC_BROWSER_TEST_F(SingleClientBookmarksSyncTest, DownloadBookmarkFolder) { | 402 IN_PROC_BROWSER_TEST_F(SingleClientBookmarksSyncTest, DownloadBookmarkFolder) { |
406 const std::string title = "Seattle Sounders FC"; | 403 const std::string title = "Seattle Sounders FC"; |
407 fake_server::EntityBuilderFactory entity_builder_factory; | 404 fake_server::EntityBuilderFactory entity_builder_factory; |
408 fake_server::BookmarkEntityBuilder bookmark_builder = | 405 fake_server::BookmarkEntityBuilder bookmark_builder = |
409 entity_builder_factory.NewBookmarkEntityBuilder(title); | 406 entity_builder_factory.NewBookmarkEntityBuilder(title); |
410 fake_server_->InjectEntity(bookmark_builder.BuildFolder()); | 407 fake_server_->InjectEntity(bookmark_builder.BuildFolder()); |
411 | 408 |
412 DisableVerifier(); | 409 DisableVerifier(); |
413 ASSERT_TRUE(SetupClients()); | 410 ASSERT_TRUE(SetupClients()); |
414 ASSERT_EQ(0, CountFoldersWithTitlesMatching(kSingleProfileIndex, title)); | 411 ASSERT_EQ(0, CountFoldersWithTitlesMatching(kSingleProfileIndex, title)); |
415 | 412 |
416 ASSERT_TRUE(SetupSync()); | 413 ASSERT_TRUE(SetupSync()); |
417 | 414 |
418 ASSERT_EQ(1, CountFoldersWithTitlesMatching(kSingleProfileIndex, title)); | 415 ASSERT_EQ(1, CountFoldersWithTitlesMatching(kSingleProfileIndex, title)); |
419 } | 416 } |
420 | 417 |
421 IN_PROC_BROWSER_TEST_F(SingleClientBookmarksSyncTest, E2E_ONLY(SanitySetup)) { | 418 IN_PROC_BROWSER_TEST_F(SingleClientBookmarksSyncTest, E2E_ONLY(SanitySetup)) { |
422 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | 419 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; |
423 } | 420 } |
OLD | NEW |