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" |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
102 GURL("http://www.pandora.com")); | 102 GURL("http://www.pandora.com")); |
103 const BookmarkNode* tier1_a_url2 = AddURL( | 103 const BookmarkNode* tier1_a_url2 = AddURL( |
104 kSingleProfileIndex, tier1_a, 2, "tier1_a_url2", | 104 kSingleProfileIndex, tier1_a, 2, "tier1_a_url2", |
105 GURL("http://www.facebook.com")); | 105 GURL("http://www.facebook.com")); |
106 const BookmarkNode* tier1_b_url0 = AddURL( | 106 const BookmarkNode* tier1_b_url0 = AddURL( |
107 kSingleProfileIndex, tier1_b, 0, "tier1_b_url0", | 107 kSingleProfileIndex, tier1_b, 0, "tier1_b_url0", |
108 GURL("http://www.nhl.com")); | 108 GURL("http://www.nhl.com")); |
109 | 109 |
110 // Setup sync, wait for its completion, and make sure changes were synced. | 110 // Setup sync, wait for its completion, and make sure changes were synced. |
111 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | 111 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; |
112 ASSERT_TRUE(AwaitCommitActivityCompletion( | 112 ASSERT_TRUE( |
113 GetSyncService((kSingleProfileIndex)))); | 113 AwaitCommitActivityCompletion(GetSyncService(kSingleProfileIndex))); |
114 ASSERT_TRUE(ModelMatchesVerifier(kSingleProfileIndex)); | 114 ASSERT_TRUE(ModelMatchesVerifier(kSingleProfileIndex)); |
115 | 115 |
116 // Ultimately we want to end up with the following model; but this test is | 116 // Ultimately we want to end up with the following model; but this test is |
117 // more about the journey than the destination. | 117 // more about the journey than the destination. |
118 // | 118 // |
119 // bookmark_bar | 119 // bookmark_bar |
120 // -> CNN (www.cnn.com) | 120 // -> CNN (www.cnn.com) |
121 // -> tier1_a | 121 // -> tier1_a |
122 // -> tier1_a_url2 (www.facebook.com) | 122 // -> tier1_a_url2 (www.facebook.com) |
123 // -> tier1_a_url1 (www.pandora.com) | 123 // -> tier1_a_url1 (www.pandora.com) |
(...skipping 10 matching lines...) Expand all Loading... |
134 // -> Toronto Maple Leafs (mapleleafs.nhl.com) | 134 // -> Toronto Maple Leafs (mapleleafs.nhl.com) |
135 // -> Wynn (www.wynnlasvegas.com) | 135 // -> Wynn (www.wynnlasvegas.com) |
136 // -> tier1_a_url0 | 136 // -> tier1_a_url0 |
137 const BookmarkNode* bar = GetBookmarkBarNode(kSingleProfileIndex); | 137 const BookmarkNode* bar = GetBookmarkBarNode(kSingleProfileIndex); |
138 const BookmarkNode* cnn = AddURL( | 138 const BookmarkNode* cnn = AddURL( |
139 kSingleProfileIndex, bar, 0, "CNN", GURL("http://www.cnn.com")); | 139 kSingleProfileIndex, bar, 0, "CNN", GURL("http://www.cnn.com")); |
140 ASSERT_TRUE(cnn != NULL); | 140 ASSERT_TRUE(cnn != NULL); |
141 Move(kSingleProfileIndex, tier1_a, bar, 1); | 141 Move(kSingleProfileIndex, tier1_a, bar, 1); |
142 | 142 |
143 // Wait for the bookmark position change to sync. | 143 // Wait for the bookmark position change to sync. |
144 ASSERT_TRUE(AwaitCommitActivityCompletion( | 144 ASSERT_TRUE( |
145 GetSyncService((kSingleProfileIndex)))); | 145 AwaitCommitActivityCompletion(GetSyncService(kSingleProfileIndex))); |
146 ASSERT_TRUE(ModelMatchesVerifier(kSingleProfileIndex)); | 146 ASSERT_TRUE(ModelMatchesVerifier(kSingleProfileIndex)); |
147 | 147 |
148 const BookmarkNode* porsche = AddURL( | 148 const BookmarkNode* porsche = AddURL( |
149 kSingleProfileIndex, bar, 2, "Porsche", GURL("http://www.porsche.com")); | 149 kSingleProfileIndex, bar, 2, "Porsche", GURL("http://www.porsche.com")); |
150 // Rearrange stuff in tier1_a. | 150 // Rearrange stuff in tier1_a. |
151 ASSERT_EQ(tier1_a, tier1_a_url2->parent()); | 151 ASSERT_EQ(tier1_a, tier1_a_url2->parent()); |
152 ASSERT_EQ(tier1_a, tier1_a_url1->parent()); | 152 ASSERT_EQ(tier1_a, tier1_a_url1->parent()); |
153 Move(kSingleProfileIndex, tier1_a_url2, tier1_a, 0); | 153 Move(kSingleProfileIndex, tier1_a_url2, tier1_a, 0); |
154 Move(kSingleProfileIndex, tier1_a_url1, tier1_a, 2); | 154 Move(kSingleProfileIndex, tier1_a_url1, tier1_a, 2); |
155 | 155 |
156 // Wait for the rearranged hierarchy to sync. | 156 // Wait for the rearranged hierarchy to sync. |
157 ASSERT_TRUE(AwaitCommitActivityCompletion( | 157 ASSERT_TRUE( |
158 GetSyncService((kSingleProfileIndex)))); | 158 AwaitCommitActivityCompletion(GetSyncService(kSingleProfileIndex))); |
159 ASSERT_TRUE(ModelMatchesVerifier(kSingleProfileIndex)); | 159 ASSERT_TRUE(ModelMatchesVerifier(kSingleProfileIndex)); |
160 | 160 |
161 ASSERT_EQ(1, tier1_a_url0->parent()->GetIndexOf(tier1_a_url0)); | 161 ASSERT_EQ(1, tier1_a_url0->parent()->GetIndexOf(tier1_a_url0)); |
162 Move(kSingleProfileIndex, tier1_a_url0, bar, bar->child_count()); | 162 Move(kSingleProfileIndex, tier1_a_url0, bar, bar->child_count()); |
163 const BookmarkNode* boa = AddURL( | 163 const BookmarkNode* boa = AddURL( |
164 kSingleProfileIndex, bar, bar->child_count(), | 164 kSingleProfileIndex, bar, bar->child_count(), |
165 "Bank of America", GURL("https://www.bankofamerica.com")); | 165 "Bank of America", GURL("https://www.bankofamerica.com")); |
166 ASSERT_TRUE(boa != NULL); | 166 ASSERT_TRUE(boa != NULL); |
167 Move(kSingleProfileIndex, tier1_a_url0, top, top->child_count()); | 167 Move(kSingleProfileIndex, tier1_a_url0, top, top->child_count()); |
168 const BookmarkNode* bubble = AddURL( | 168 const BookmarkNode* bubble = AddURL( |
169 kSingleProfileIndex, bar, bar->child_count(), "Seattle Bubble", | 169 kSingleProfileIndex, bar, bar->child_count(), "Seattle Bubble", |
170 GURL("http://seattlebubble.com")); | 170 GURL("http://seattlebubble.com")); |
171 ASSERT_TRUE(bubble != NULL); | 171 ASSERT_TRUE(bubble != NULL); |
172 const BookmarkNode* wired = AddURL( | 172 const BookmarkNode* wired = AddURL( |
173 kSingleProfileIndex, bar, 2, "Wired News", GURL("http://www.wired.com")); | 173 kSingleProfileIndex, bar, 2, "Wired News", GURL("http://www.wired.com")); |
174 const BookmarkNode* tier2_b = AddFolder( | 174 const BookmarkNode* tier2_b = AddFolder( |
175 kSingleProfileIndex, tier1_b, 0, "tier2_b"); | 175 kSingleProfileIndex, tier1_b, 0, "tier2_b"); |
176 Move(kSingleProfileIndex, tier1_b_url0, tier2_b, 0); | 176 Move(kSingleProfileIndex, tier1_b_url0, tier2_b, 0); |
177 Move(kSingleProfileIndex, porsche, bar, 0); | 177 Move(kSingleProfileIndex, porsche, bar, 0); |
178 SetTitle(kSingleProfileIndex, wired, "News Wired"); | 178 SetTitle(kSingleProfileIndex, wired, "News Wired"); |
179 SetTitle(kSingleProfileIndex, porsche, "ICanHazPorsche?"); | 179 SetTitle(kSingleProfileIndex, porsche, "ICanHazPorsche?"); |
180 | 180 |
181 // Wait for the title change to sync. | 181 // Wait for the title change to sync. |
182 ASSERT_TRUE(AwaitCommitActivityCompletion( | 182 ASSERT_TRUE( |
183 GetSyncService((kSingleProfileIndex)))); | 183 AwaitCommitActivityCompletion(GetSyncService(kSingleProfileIndex))); |
184 ASSERT_TRUE(ModelMatchesVerifier(kSingleProfileIndex)); | 184 ASSERT_TRUE(ModelMatchesVerifier(kSingleProfileIndex)); |
185 | 185 |
186 ASSERT_EQ(tier1_a_url0->id(), top->GetChild(top->child_count() - 1)->id()); | 186 ASSERT_EQ(tier1_a_url0->id(), top->GetChild(top->child_count() - 1)->id()); |
187 Remove(kSingleProfileIndex, top, top->child_count() - 1); | 187 Remove(kSingleProfileIndex, top, top->child_count() - 1); |
188 Move(kSingleProfileIndex, wired, tier1_b, 0); | 188 Move(kSingleProfileIndex, wired, tier1_b, 0); |
189 Move(kSingleProfileIndex, porsche, bar, 3); | 189 Move(kSingleProfileIndex, porsche, bar, 3); |
190 const BookmarkNode* tier3_b = AddFolder( | 190 const BookmarkNode* tier3_b = AddFolder( |
191 kSingleProfileIndex, tier2_b, 1, "tier3_b"); | 191 kSingleProfileIndex, tier2_b, 1, "tier3_b"); |
192 const BookmarkNode* leafs = AddURL( | 192 const BookmarkNode* leafs = AddURL( |
193 kSingleProfileIndex, tier1_a, 0, "Toronto Maple Leafs", | 193 kSingleProfileIndex, tier1_a, 0, "Toronto Maple Leafs", |
194 GURL("http://mapleleafs.nhl.com")); | 194 GURL("http://mapleleafs.nhl.com")); |
195 const BookmarkNode* wynn = AddURL( | 195 const BookmarkNode* wynn = AddURL( |
196 kSingleProfileIndex, bar, 1, "Wynn", GURL("http://www.wynnlasvegas.com")); | 196 kSingleProfileIndex, bar, 1, "Wynn", GURL("http://www.wynnlasvegas.com")); |
197 | 197 |
198 Move(kSingleProfileIndex, wynn, tier3_b, 0); | 198 Move(kSingleProfileIndex, wynn, tier3_b, 0); |
199 Move(kSingleProfileIndex, leafs, tier3_b, 0); | 199 Move(kSingleProfileIndex, leafs, tier3_b, 0); |
200 | 200 |
201 // Wait for newly added bookmarks to sync. | 201 // Wait for newly added bookmarks to sync. |
202 ASSERT_TRUE(AwaitCommitActivityCompletion( | 202 ASSERT_TRUE( |
203 GetSyncService((kSingleProfileIndex)))); | 203 AwaitCommitActivityCompletion(GetSyncService(kSingleProfileIndex))); |
204 ASSERT_TRUE(ModelMatchesVerifier(kSingleProfileIndex)); | 204 ASSERT_TRUE(ModelMatchesVerifier(kSingleProfileIndex)); |
205 | 205 |
206 // Only verify FakeServer data if FakeServer is being used. | 206 // Only verify FakeServer data if FakeServer is being used. |
207 // TODO(pvalenzuela): Use this style of verification in more tests once it is | 207 // TODO(pvalenzuela): Use this style of verification in more tests once it is |
208 // proven stable. | 208 // proven stable. |
209 if (GetFakeServer()) | 209 if (GetFakeServer()) |
210 VerifyBookmarkModelMatchesFakeServer(kSingleProfileIndex); | 210 VerifyBookmarkModelMatchesFakeServer(kSingleProfileIndex); |
211 } | 211 } |
212 | 212 |
213 IN_PROC_BROWSER_TEST_F(SingleClientBookmarksSyncTest, InjectedBookmark) { | 213 IN_PROC_BROWSER_TEST_F(SingleClientBookmarksSyncTest, InjectedBookmark) { |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
248 // Simulate receiving a favicon from sync encoded by a different PNG encoder | 248 // Simulate receiving a favicon from sync encoded by a different PNG encoder |
249 // than the one native to the OS. This tests the PNG data is not decoded to | 249 // 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 | 250 // SkBitmap (or any other image format) then encoded back to PNG on the path |
251 // between sync and the database. | 251 // between sync and the database. |
252 gfx::Image original_favicon = Create1xFaviconFromPNGFile( | 252 gfx::Image original_favicon = Create1xFaviconFromPNGFile( |
253 "favicon_cocoa_png_codec.png"); | 253 "favicon_cocoa_png_codec.png"); |
254 ASSERT_FALSE(original_favicon.IsEmpty()); | 254 ASSERT_FALSE(original_favicon.IsEmpty()); |
255 SetFavicon(kSingleProfileIndex, bookmark, icon_url, original_favicon, | 255 SetFavicon(kSingleProfileIndex, bookmark, icon_url, original_favicon, |
256 bookmarks_helper::FROM_SYNC); | 256 bookmarks_helper::FROM_SYNC); |
257 | 257 |
258 ASSERT_TRUE(AwaitCommitActivityCompletion( | 258 ASSERT_TRUE( |
259 GetSyncService((kSingleProfileIndex)))); | 259 AwaitCommitActivityCompletion(GetSyncService(kSingleProfileIndex))); |
260 ASSERT_TRUE(ModelMatchesVerifier(kSingleProfileIndex)); | 260 ASSERT_TRUE(ModelMatchesVerifier(kSingleProfileIndex)); |
261 | 261 |
262 scoped_refptr<base::RefCountedMemory> original_favicon_bytes = | 262 scoped_refptr<base::RefCountedMemory> original_favicon_bytes = |
263 original_favicon.As1xPNGBytes(); | 263 original_favicon.As1xPNGBytes(); |
264 gfx::Image final_favicon = | 264 gfx::Image final_favicon = |
265 GetBookmarkModel(kSingleProfileIndex)->GetFavicon(bookmark); | 265 GetBookmarkModel(kSingleProfileIndex)->GetFavicon(bookmark); |
266 scoped_refptr<base::RefCountedMemory> final_favicon_bytes = | 266 scoped_refptr<base::RefCountedMemory> final_favicon_bytes = |
267 final_favicon.As1xPNGBytes(); | 267 final_favicon.As1xPNGBytes(); |
268 | 268 |
269 // Check that the data was not mutated from the original. | 269 // Check that the data was not mutated from the original. |
(...skipping 14 matching lines...) Expand all Loading... |
284 // -> http://yahoo.com | 284 // -> http://yahoo.com |
285 // -> http://www.cnn.com | 285 // -> http://www.cnn.com |
286 // bookmark_bar | 286 // bookmark_bar |
287 // -> empty_folder | 287 // -> empty_folder |
288 // -> folder1 | 288 // -> folder1 |
289 // -> http://yahoo.com | 289 // -> http://yahoo.com |
290 // -> http://gmail.com | 290 // -> http://gmail.com |
291 | 291 |
292 const BookmarkNode* folder0 = AddFolder( | 292 const BookmarkNode* folder0 = AddFolder( |
293 kSingleProfileIndex, GetOtherNode(kSingleProfileIndex), 0, "folder0"); | 293 kSingleProfileIndex, GetOtherNode(kSingleProfileIndex), 0, "folder0"); |
294 const BookmarkNode* tier1_a = AddFolder( | 294 const BookmarkNode* tier1_a = |
295 kSingleProfileIndex, folder0, 0, "tier1_a"); | 295 AddFolder(kSingleProfileIndex, folder0, 0, "tier1_a"); |
296 ASSERT_TRUE(AddURL( | 296 ASSERT_TRUE(AddURL(kSingleProfileIndex, folder0, 1, "News", |
297 kSingleProfileIndex, folder0, 1, "News", GURL("http://news.google.com"))); | 297 GURL("http://news.google.com"))); |
298 ASSERT_TRUE(AddURL( | 298 ASSERT_TRUE(AddURL(kSingleProfileIndex, folder0, 2, "Yahoo", |
299 kSingleProfileIndex, folder0, 2, "Yahoo", GURL("http://www.yahoo.com"))); | 299 GURL("http://www.yahoo.com"))); |
300 ASSERT_TRUE(AddURL( | 300 ASSERT_TRUE(AddURL(kSingleProfileIndex, tier1_a, 0, "Gmai", |
301 kSingleProfileIndex, tier1_a, 0, "Gmai", GURL("http://mail.google.com"))); | 301 GURL("http://mail.google.com"))); |
302 ASSERT_TRUE(AddURL( | 302 ASSERT_TRUE(AddURL(kSingleProfileIndex, tier1_a, 1, "Google", |
303 kSingleProfileIndex, tier1_a, 1, "Google", GURL("http://www.google.com")))
; | 303 GURL("http://www.google.com"))); |
304 ASSERT_TRUE(AddURL( | 304 ASSERT_TRUE(AddURL(kSingleProfileIndex, GetOtherNode(kSingleProfileIndex), 1, |
305 kSingleProfileIndex, GetOtherNode(kSingleProfileIndex), 1, "CNN", | 305 "CNN", GURL("http://www.cnn.com"))); |
306 GURL("http://www.cnn.com"))); | |
307 | 306 |
308 ASSERT_TRUE(AddFolder( | 307 ASSERT_TRUE(AddFolder(kSingleProfileIndex, |
309 kSingleProfileIndex, GetBookmarkBarNode(kSingleProfileIndex), 0, | 308 GetBookmarkBarNode(kSingleProfileIndex), 0, |
310 "empty_folder")); | 309 "empty_folder")); |
311 const BookmarkNode* folder1 = AddFolder( | 310 const BookmarkNode* folder1 = |
312 kSingleProfileIndex, GetBookmarkBarNode(kSingleProfileIndex), 1, | 311 AddFolder(kSingleProfileIndex, GetBookmarkBarNode(kSingleProfileIndex), 1, |
313 "folder1"); | 312 "folder1"); |
314 ASSERT_TRUE(AddURL( | 313 ASSERT_TRUE(AddURL(kSingleProfileIndex, folder1, 0, "Yahoo", |
315 kSingleProfileIndex, folder1, 0, "Yahoo", GURL("http://www.yahoo.com"))); | 314 GURL("http://www.yahoo.com"))); |
316 ASSERT_TRUE(AddURL( | 315 ASSERT_TRUE(AddURL(kSingleProfileIndex, GetBookmarkBarNode(0), 2, "Gmai", |
317 kSingleProfileIndex, GetBookmarkBarNode(0), 2, "Gmai", | 316 GURL("http://gmail.com"))); |
318 GURL("http://gmail.com"))); | |
319 | 317 |
320 // Set up sync, wait for its completion and verify that changes propagated. | 318 // Set up sync, wait for its completion and verify that changes propagated. |
321 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | 319 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; |
322 ASSERT_TRUE(AwaitCommitActivityCompletion( | 320 ASSERT_TRUE( |
323 GetSyncService((kSingleProfileIndex)))); | 321 AwaitCommitActivityCompletion(GetSyncService(kSingleProfileIndex))); |
324 ASSERT_TRUE(ModelMatchesVerifier(kSingleProfileIndex)); | 322 ASSERT_TRUE(ModelMatchesVerifier(kSingleProfileIndex)); |
325 | 323 |
326 // Remove all bookmarks and wait for sync completion. | 324 // Remove all bookmarks and wait for sync completion. |
327 RemoveAll(kSingleProfileIndex); | 325 RemoveAll(kSingleProfileIndex); |
328 ASSERT_TRUE(AwaitCommitActivityCompletion( | 326 ASSERT_TRUE( |
329 GetSyncService((kSingleProfileIndex)))); | 327 AwaitCommitActivityCompletion(GetSyncService(kSingleProfileIndex))); |
330 // Verify other node has no children now. | 328 // Verify other node has no children now. |
331 EXPECT_EQ(0, GetOtherNode(kSingleProfileIndex)->child_count()); | 329 EXPECT_EQ(0, GetOtherNode(kSingleProfileIndex)->child_count()); |
332 EXPECT_EQ(0, GetBookmarkBarNode(kSingleProfileIndex)->child_count()); | 330 EXPECT_EQ(0, GetBookmarkBarNode(kSingleProfileIndex)->child_count()); |
333 // Verify model matches verifier. | 331 // Verify model matches verifier. |
334 ASSERT_TRUE(ModelMatchesVerifier(kSingleProfileIndex)); | 332 ASSERT_TRUE(ModelMatchesVerifier(kSingleProfileIndex)); |
335 } | 333 } |
336 | 334 |
337 IN_PROC_BROWSER_TEST_F(SingleClientBookmarksSyncTest, | 335 IN_PROC_BROWSER_TEST_F(SingleClientBookmarksSyncTest, |
338 DownloadDeletedBookmark) { | 336 DownloadDeletedBookmark) { |
339 std::string title = "Patrick Star"; | 337 std::string title = "Patrick Star"; |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
416 ASSERT_EQ(0, CountFoldersWithTitlesMatching(kSingleProfileIndex, title)); | 414 ASSERT_EQ(0, CountFoldersWithTitlesMatching(kSingleProfileIndex, title)); |
417 | 415 |
418 ASSERT_TRUE(SetupSync()); | 416 ASSERT_TRUE(SetupSync()); |
419 | 417 |
420 ASSERT_EQ(1, CountFoldersWithTitlesMatching(kSingleProfileIndex, title)); | 418 ASSERT_EQ(1, CountFoldersWithTitlesMatching(kSingleProfileIndex, title)); |
421 } | 419 } |
422 | 420 |
423 IN_PROC_BROWSER_TEST_F(SingleClientBookmarksSyncTest, E2E_ONLY(SanitySetup)) { | 421 IN_PROC_BROWSER_TEST_F(SingleClientBookmarksSyncTest, E2E_ONLY(SanitySetup)) { |
424 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | 422 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; |
425 } | 423 } |
OLD | NEW |