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

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

Issue 2379433002: [Sync] Refactoring of sync integration test checkers to remove boilerplate await methods. (Closed)
Patch Set: Rebase Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <stddef.h> 5 #include <stddef.h>
6 6
7 #include "base/guid.h" 7 #include "base/guid.h"
8 #include "base/i18n/number_formatting.h" 8 #include "base/i18n/number_formatting.h"
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/strings/stringprintf.h" 10 #include "base/strings/stringprintf.h"
11 #include "base/strings/utf_string_conversions.h" 11 #include "base/strings/utf_string_conversions.h"
12 #include "build/build_config.h" 12 #include "build/build_config.h"
13 #include "chrome/browser/sessions/session_service.h" 13 #include "chrome/browser/sessions/session_service.h"
14 #include "chrome/browser/sync/test/integration/bookmarks_helper.h" 14 #include "chrome/browser/sync/test/integration/bookmarks_helper.h"
15 #include "chrome/browser/sync/test/integration/profile_sync_service_harness.h" 15 #include "chrome/browser/sync/test/integration/profile_sync_service_harness.h"
16 #include "chrome/browser/sync/test/integration/sync_integration_test_util.h"
17 #include "chrome/browser/sync/test/integration/sync_test.h" 16 #include "chrome/browser/sync/test/integration/sync_test.h"
18 #include "chrome/browser/sync/test/integration/typed_urls_helper.h" 17 #include "chrome/browser/sync/test/integration/typed_urls_helper.h"
18 #include "chrome/browser/sync/test/integration/updated_progress_marker_checker.h "
19 #include "components/history/core/browser/history_types.h" 19 #include "components/history/core/browser/history_types.h"
20 20
21 using base::ASCIIToUTF16; 21 using base::ASCIIToUTF16;
22 using bookmarks::BookmarkNode; 22 using bookmarks::BookmarkNode;
23 using sync_integration_test_util::AwaitCommitActivityCompletion;
24 using typed_urls_helper::AddUrlToHistory; 23 using typed_urls_helper::AddUrlToHistory;
25 using typed_urls_helper::AddUrlToHistoryWithTimestamp; 24 using typed_urls_helper::AddUrlToHistoryWithTimestamp;
26 using typed_urls_helper::AddUrlToHistoryWithTransition; 25 using typed_urls_helper::AddUrlToHistoryWithTransition;
27 using typed_urls_helper::AreVisitsEqual; 26 using typed_urls_helper::AreVisitsEqual;
28 using typed_urls_helper::AreVisitsUnique; 27 using typed_urls_helper::AreVisitsUnique;
29 using typed_urls_helper::AwaitCheckAllProfilesHaveSameURLs;
30 using typed_urls_helper::CheckURLRowVectorsAreEqual; 28 using typed_urls_helper::CheckURLRowVectorsAreEqual;
31 using typed_urls_helper::DeleteUrlFromHistory; 29 using typed_urls_helper::DeleteUrlFromHistory;
32 using typed_urls_helper::GetTypedUrlsFromClient; 30 using typed_urls_helper::GetTypedUrlsFromClient;
33 using typed_urls_helper::GetUrlFromClient; 31 using typed_urls_helper::GetUrlFromClient;
34 using typed_urls_helper::GetVisitsFromClient; 32 using typed_urls_helper::GetVisitsFromClient;
35 using typed_urls_helper::RemoveVisitsFromClient; 33 using typed_urls_helper::RemoveVisitsFromClient;
36 34
37 class TwoClientTypedUrlsSyncTest : public SyncTest { 35 class TwoClientTypedUrlsSyncTest : public SyncTest {
38 public: 36 public:
39 TwoClientTypedUrlsSyncTest() : SyncTest(TWO_CLIENT) {} 37 TwoClientTypedUrlsSyncTest() : SyncTest(TWO_CLIENT) {}
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 // Use a randomized URL to prevent test collisions. 81 // Use a randomized URL to prevent test collisions.
84 const base::string16 kHistoryUrl = ASCIIToUTF16(base::StringPrintf( 82 const base::string16 kHistoryUrl = ASCIIToUTF16(base::StringPrintf(
85 "http://www.add-history.google.com/%s", base::GenerateGUID().c_str())); 83 "http://www.add-history.google.com/%s", base::GenerateGUID().c_str()));
86 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 84 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
87 85
88 size_t initial_count = GetTypedUrlsFromClient(0).size(); 86 size_t initial_count = GetTypedUrlsFromClient(0).size();
89 87
90 // Populate one client with a URL, wait for it to sync to the other. 88 // Populate one client with a URL, wait for it to sync to the other.
91 GURL new_url(kHistoryUrl); 89 GURL new_url(kHistoryUrl);
92 AddUrlToHistory(0, new_url); 90 AddUrlToHistory(0, new_url);
93 ASSERT_TRUE(AwaitCheckAllProfilesHaveSameURLs()); 91 ASSERT_TRUE(ProfilesHaveSameURLsChecker().Wait());
94 92
95 // Assert that the second client has the correct new URL. 93 // Assert that the second client has the correct new URL.
96 history::URLRows urls = GetTypedUrlsFromClient(1); 94 history::URLRows urls = GetTypedUrlsFromClient(1);
97 ASSERT_EQ(initial_count + 1, urls.size()); 95 ASSERT_EQ(initial_count + 1, urls.size());
98 ASSERT_EQ(new_url, urls.back().url()); 96 ASSERT_EQ(new_url, urls.back().url());
99 } 97 }
100 98
101 IN_PROC_BROWSER_TEST_F(TwoClientTypedUrlsSyncTest, AddExpired) { 99 IN_PROC_BROWSER_TEST_F(TwoClientTypedUrlsSyncTest, AddExpired) {
102 const base::string16 kHistoryUrl( 100 const base::string16 kHistoryUrl(
103 ASCIIToUTF16("http://www.add-one-history.google.com/")); 101 ASCIIToUTF16("http://www.add-one-history.google.com/"));
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 // Use a randomized URL to prevent test collisions. 169 // Use a randomized URL to prevent test collisions.
172 const base::string16 kHistoryUrl = ASCIIToUTF16(base::StringPrintf( 170 const base::string16 kHistoryUrl = ASCIIToUTF16(base::StringPrintf(
173 "http://www.add-history.google.com/%s", base::GenerateGUID().c_str())); 171 "http://www.add-history.google.com/%s", base::GenerateGUID().c_str()));
174 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 172 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
175 173
176 size_t initial_count = GetTypedUrlsFromClient(0).size(); 174 size_t initial_count = GetTypedUrlsFromClient(0).size();
177 175
178 // Populate one client with a URL, wait for it to sync to the other. 176 // Populate one client with a URL, wait for it to sync to the other.
179 GURL new_url(kHistoryUrl); 177 GURL new_url(kHistoryUrl);
180 AddUrlToHistory(0, new_url); 178 AddUrlToHistory(0, new_url);
181 ASSERT_TRUE(AwaitCheckAllProfilesHaveSameURLs()); 179 ASSERT_TRUE(ProfilesHaveSameURLsChecker().Wait());
182 180
183 // Assert that the second client has the correct new URL. 181 // Assert that the second client has the correct new URL.
184 history::URLRows urls = GetTypedUrlsFromClient(1); 182 history::URLRows urls = GetTypedUrlsFromClient(1);
185 ASSERT_EQ(initial_count + 1, urls.size()); 183 ASSERT_EQ(initial_count + 1, urls.size());
186 ASSERT_EQ(new_url, urls.back().url()); 184 ASSERT_EQ(new_url, urls.back().url());
187 185
188 // Delete from first client, and wait for them to sync. 186 // Delete from first client, and wait for them to sync.
189 DeleteUrlFromHistory(0, new_url); 187 DeleteUrlFromHistory(0, new_url);
190 ASSERT_TRUE(AwaitCheckAllProfilesHaveSameURLs()); 188 ASSERT_TRUE(ProfilesHaveSameURLsChecker().Wait());
191 189
192 // Assert that it's deleted from the second client. 190 // Assert that it's deleted from the second client.
193 ASSERT_EQ(initial_count, GetTypedUrlsFromClient(1).size()); 191 ASSERT_EQ(initial_count, GetTypedUrlsFromClient(1).size());
194 } 192 }
195 193
196 // TCM: 3643277 194 // TCM: 3643277
197 IN_PROC_BROWSER_TEST_F(TwoClientTypedUrlsSyncTest, 195 IN_PROC_BROWSER_TEST_F(TwoClientTypedUrlsSyncTest,
198 E2E_ENABLED(DisableEnableSync)) { 196 E2E_ENABLED(DisableEnableSync)) {
199 const base::string16 kUrl1(ASCIIToUTF16("http://history1.google.com/")); 197 const base::string16 kUrl1(ASCIIToUTF16("http://history1.google.com/"));
200 const base::string16 kUrl2(ASCIIToUTF16("http://history2.google.com/")); 198 const base::string16 kUrl2(ASCIIToUTF16("http://history2.google.com/"));
201 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 199 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
202 200
203 // Disable typed url sync for one client, leave it active for the other. 201 // Disable typed url sync for one client, leave it active for the other.
204 GetClient(0)->DisableSyncForDatatype(syncer::TYPED_URLS); 202 GetClient(0)->DisableSyncForDatatype(syncer::TYPED_URLS);
205 203
206 // Add one URL to non-syncing client, add a different URL to the other, 204 // Add one URL to non-syncing client, add a different URL to the other,
207 // wait for sync cycle to complete. No data should be exchanged. 205 // wait for sync cycle to complete. No data should be exchanged.
208 GURL url1(kUrl1); 206 GURL url1(kUrl1);
209 GURL url2(kUrl2); 207 GURL url2(kUrl2);
210 AddUrlToHistory(0, url1); 208 AddUrlToHistory(0, url1);
211 AddUrlToHistory(1, url2); 209 AddUrlToHistory(1, url2);
212 ASSERT_TRUE(AwaitCommitActivityCompletion(GetSyncService(1))); 210 ASSERT_TRUE(UpdatedProgressMarkerChecker(GetSyncService(1)).Wait());
213 211
214 // Make sure that no data was exchanged. 212 // Make sure that no data was exchanged.
215 history::URLRows post_sync_urls = GetTypedUrlsFromClient(0); 213 history::URLRows post_sync_urls = GetTypedUrlsFromClient(0);
216 ASSERT_EQ(1U, post_sync_urls.size()); 214 ASSERT_EQ(1U, post_sync_urls.size());
217 ASSERT_EQ(url1, post_sync_urls[0].url()); 215 ASSERT_EQ(url1, post_sync_urls[0].url());
218 post_sync_urls = GetTypedUrlsFromClient(1); 216 post_sync_urls = GetTypedUrlsFromClient(1);
219 ASSERT_EQ(1U, post_sync_urls.size()); 217 ASSERT_EQ(1U, post_sync_urls.size());
220 ASSERT_EQ(url2, post_sync_urls[0].url()); 218 ASSERT_EQ(url2, post_sync_urls[0].url());
221 219
222 // Enable typed url sync, make both URLs are synced to each client. 220 // Enable typed url sync, make both URLs are synced to each client.
223 GetClient(0)->EnableSyncForDatatype(syncer::TYPED_URLS); 221 GetClient(0)->EnableSyncForDatatype(syncer::TYPED_URLS);
224 222
225 ASSERT_TRUE(AwaitCheckAllProfilesHaveSameURLs()); 223 ASSERT_TRUE(ProfilesHaveSameURLsChecker().Wait());
226 } 224 }
227 225
228 // flaky, see crbug.com/108511 226 // flaky, see crbug.com/108511
229 IN_PROC_BROWSER_TEST_F(TwoClientTypedUrlsSyncTest, DISABLED_AddOneDeleteOther) { 227 IN_PROC_BROWSER_TEST_F(TwoClientTypedUrlsSyncTest, DISABLED_AddOneDeleteOther) {
230 const base::string16 kHistoryUrl( 228 const base::string16 kHistoryUrl(
231 ASCIIToUTF16("http://www.add-one-delete-history.google.com/")); 229 ASCIIToUTF16("http://www.add-one-delete-history.google.com/"));
232 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 230 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
233 231
234 // Populate one client with a URL, should sync to the other. 232 // Populate one client with a URL, should sync to the other.
235 GURL new_url(kHistoryUrl); 233 GURL new_url(kHistoryUrl);
236 AddUrlToHistory(0, new_url); 234 AddUrlToHistory(0, new_url);
237 history::URLRows urls = GetTypedUrlsFromClient(0); 235 history::URLRows urls = GetTypedUrlsFromClient(0);
238 ASSERT_EQ(1U, urls.size()); 236 ASSERT_EQ(1U, urls.size());
239 ASSERT_EQ(new_url, urls[0].url()); 237 ASSERT_EQ(new_url, urls[0].url());
240 238
241 // Both clients should have this URL. 239 // Both clients should have this URL.
242 ASSERT_TRUE(AwaitCheckAllProfilesHaveSameURLs()); 240 ASSERT_TRUE(ProfilesHaveSameURLsChecker().Wait());
243 241
244 // Now, delete the URL from the second client. 242 // Now, delete the URL from the second client.
245 DeleteUrlFromHistory(1, new_url); 243 DeleteUrlFromHistory(1, new_url);
246 urls = GetTypedUrlsFromClient(0); 244 urls = GetTypedUrlsFromClient(0);
247 ASSERT_EQ(1U, urls.size()); 245 ASSERT_EQ(1U, urls.size());
248 246
249 // Both clients should have this URL removed. 247 // Both clients should have this URL removed.
250 ASSERT_TRUE(AwaitCheckAllProfilesHaveSameURLs()); 248 ASSERT_TRUE(ProfilesHaveSameURLsChecker().Wait());
251 } 249 }
252 250
253 // flaky, see crbug.com/108511 251 // flaky, see crbug.com/108511
254 IN_PROC_BROWSER_TEST_F(TwoClientTypedUrlsSyncTest, 252 IN_PROC_BROWSER_TEST_F(TwoClientTypedUrlsSyncTest,
255 DISABLED_AddOneDeleteOtherAddAgain) { 253 DISABLED_AddOneDeleteOtherAddAgain) {
256 const base::string16 kHistoryUrl( 254 const base::string16 kHistoryUrl(
257 ASCIIToUTF16("http://www.add-delete-add-history.google.com/")); 255 ASCIIToUTF16("http://www.add-delete-add-history.google.com/"));
258 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 256 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
259 257
260 // Populate one client with a URL, should sync to the other. 258 // Populate one client with a URL, should sync to the other.
261 GURL new_url(kHistoryUrl); 259 GURL new_url(kHistoryUrl);
262 AddUrlToHistory(0, new_url); 260 AddUrlToHistory(0, new_url);
263 history::URLRows urls = GetTypedUrlsFromClient(0); 261 history::URLRows urls = GetTypedUrlsFromClient(0);
264 ASSERT_EQ(1U, urls.size()); 262 ASSERT_EQ(1U, urls.size());
265 ASSERT_EQ(new_url, urls[0].url()); 263 ASSERT_EQ(new_url, urls[0].url());
266 264
267 // Both clients should have this URL. 265 // Both clients should have this URL.
268 ASSERT_TRUE(AwaitCheckAllProfilesHaveSameURLs()); 266 ASSERT_TRUE(ProfilesHaveSameURLsChecker().Wait());
269 267
270 // Now, delete the URL from the second client. 268 // Now, delete the URL from the second client.
271 DeleteUrlFromHistory(1, new_url); 269 DeleteUrlFromHistory(1, new_url);
272 urls = GetTypedUrlsFromClient(0); 270 urls = GetTypedUrlsFromClient(0);
273 ASSERT_EQ(1U, urls.size()); 271 ASSERT_EQ(1U, urls.size());
274 272
275 // Both clients should have this URL removed. 273 // Both clients should have this URL removed.
276 ASSERT_TRUE(AwaitCheckAllProfilesHaveSameURLs()); 274 ASSERT_TRUE(ProfilesHaveSameURLsChecker().Wait());
277 275
278 // Add it to the first client again, should succeed (tests that the deletion 276 // Add it to the first client again, should succeed (tests that the deletion
279 // properly disassociates that URL). 277 // properly disassociates that URL).
280 AddUrlToHistory(0, new_url); 278 AddUrlToHistory(0, new_url);
281 279
282 // Both clients should have this URL added again. 280 // Both clients should have this URL added again.
283 ASSERT_TRUE(AwaitCheckAllProfilesHaveSameURLs()); 281 ASSERT_TRUE(ProfilesHaveSameURLsChecker().Wait());
284 } 282 }
285 283
286 IN_PROC_BROWSER_TEST_F(TwoClientTypedUrlsSyncTest, 284 IN_PROC_BROWSER_TEST_F(TwoClientTypedUrlsSyncTest,
287 MergeTypedWithNonTypedDuringAssociation) { 285 MergeTypedWithNonTypedDuringAssociation) {
288 ASSERT_TRUE(SetupClients()); 286 ASSERT_TRUE(SetupClients());
289 GURL new_url("http://history.com"); 287 GURL new_url("http://history.com");
290 base::Time timestamp = base::Time::Now(); 288 base::Time timestamp = base::Time::Now();
291 // Put a non-typed URL in both clients with an identical timestamp. 289 // Put a non-typed URL in both clients with an identical timestamp.
292 // Then add a typed URL to the second client - this test makes sure that 290 // Then add a typed URL to the second client - this test makes sure that
293 // we properly merge both sets of visits together to end up with the same 291 // we properly merge both sets of visits together to end up with the same
294 // set of visits on both ends. 292 // set of visits on both ends.
295 AddUrlToHistoryWithTimestamp(0, new_url, ui::PAGE_TRANSITION_LINK, 293 AddUrlToHistoryWithTimestamp(0, new_url, ui::PAGE_TRANSITION_LINK,
296 history::SOURCE_BROWSED, timestamp); 294 history::SOURCE_BROWSED, timestamp);
297 AddUrlToHistoryWithTimestamp(1, new_url, ui::PAGE_TRANSITION_LINK, 295 AddUrlToHistoryWithTimestamp(1, new_url, ui::PAGE_TRANSITION_LINK,
298 history::SOURCE_BROWSED, timestamp); 296 history::SOURCE_BROWSED, timestamp);
299 AddUrlToHistoryWithTimestamp(1, new_url, ui::PAGE_TRANSITION_TYPED, 297 AddUrlToHistoryWithTimestamp(1, new_url, ui::PAGE_TRANSITION_TYPED,
300 history::SOURCE_BROWSED, 298 history::SOURCE_BROWSED,
301 timestamp + base::TimeDelta::FromSeconds(1)); 299 timestamp + base::TimeDelta::FromSeconds(1));
302 300
303 // Now start up sync - URLs should get merged. Fully sync client 1 first, 301 // Now start up sync - URLs should get merged. Fully sync client 1 first,
304 // before syncing client 0, so we have both of client 1's URLs in the sync DB 302 // before syncing client 0, so we have both of client 1's URLs in the sync DB
305 // at the time that client 0 does model association. 303 // at the time that client 0 does model association.
306 ASSERT_TRUE(GetClient(1)->SetupSync()) << "SetupSync() failed"; 304 ASSERT_TRUE(GetClient(1)->SetupSync()) << "SetupSync() failed";
307 AwaitCommitActivityCompletion(GetSyncService(1)); 305 ASSERT_TRUE(UpdatedProgressMarkerChecker(GetSyncService(1)).Wait());
308 ASSERT_TRUE(GetClient(0)->SetupSync()) << "SetupSync() failed"; 306 ASSERT_TRUE(GetClient(0)->SetupSync()) << "SetupSync() failed";
309 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 307 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
310 308
311 ASSERT_TRUE(CheckClientsEqual()); 309 ASSERT_TRUE(CheckClientsEqual());
312 // At this point, we should have no duplicates (total visit count should be 310 // At this point, we should have no duplicates (total visit count should be
313 // 2). We only need to check client 0 since we already verified that both 311 // 2). We only need to check client 0 since we already verified that both
314 // clients are identical above. 312 // clients are identical above.
315 history::URLRows urls = GetTypedUrlsFromClient(0); 313 history::URLRows urls = GetTypedUrlsFromClient(0);
316 ASSERT_EQ(1U, urls.size()); 314 ASSERT_EQ(1U, urls.size());
317 ASSERT_EQ(new_url, urls[0].url()); 315 ASSERT_EQ(new_url, urls[0].url());
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
364 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 362 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
365 363
366 // Populate one client with a non-typed URL, should not be synced. 364 // Populate one client with a non-typed URL, should not be synced.
367 GURL new_url(kHistoryUrl); 365 GURL new_url(kHistoryUrl);
368 AddUrlToHistoryWithTransition(0, new_url, ui::PAGE_TRANSITION_LINK, 366 AddUrlToHistoryWithTransition(0, new_url, ui::PAGE_TRANSITION_LINK,
369 history::SOURCE_BROWSED); 367 history::SOURCE_BROWSED);
370 history::URLRows urls = GetTypedUrlsFromClient(0); 368 history::URLRows urls = GetTypedUrlsFromClient(0);
371 ASSERT_EQ(0U, urls.size()); 369 ASSERT_EQ(0U, urls.size());
372 370
373 // Both clients should have 0 typed URLs. 371 // Both clients should have 0 typed URLs.
374 ASSERT_TRUE(AwaitCheckAllProfilesHaveSameURLs()); 372 ASSERT_TRUE(ProfilesHaveSameURLsChecker().Wait());
375 urls = GetTypedUrlsFromClient(0); 373 urls = GetTypedUrlsFromClient(0);
376 ASSERT_EQ(0U, urls.size()); 374 ASSERT_EQ(0U, urls.size());
377 375
378 // Now, add a typed visit to this URL. 376 // Now, add a typed visit to this URL.
379 AddUrlToHistory(0, new_url); 377 AddUrlToHistory(0, new_url);
380 378
381 // Let sync finish. 379 // Let sync finish.
382 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 380 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
383 381
384 // Both clients should have this URL as typed and have two visits synced up. 382 // Both clients should have this URL as typed and have two visits synced up.
(...skipping 14 matching lines...) Expand all
399 const GURL kNonTypedURL("http://link.google.com/"); 397 const GURL kNonTypedURL("http://link.google.com/");
400 const GURL kTypedURL("http://typed.google.com/"); 398 const GURL kTypedURL("http://typed.google.com/");
401 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 399 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
402 AddUrlToHistoryWithTransition(0, kNonTypedURL, ui::PAGE_TRANSITION_LINK, 400 AddUrlToHistoryWithTransition(0, kNonTypedURL, ui::PAGE_TRANSITION_LINK,
403 history::SOURCE_BROWSED); 401 history::SOURCE_BROWSED);
404 AddUrlToHistoryWithTransition(0, kTypedURL, ui::PAGE_TRANSITION_TYPED, 402 AddUrlToHistoryWithTransition(0, kTypedURL, ui::PAGE_TRANSITION_TYPED,
405 history::SOURCE_BROWSED); 403 history::SOURCE_BROWSED);
406 404
407 // Modify the non-typed URL. It should not get synced. 405 // Modify the non-typed URL. It should not get synced.
408 typed_urls_helper::SetPageTitle(0, kNonTypedURL, "Welcome to Non-Typed URL"); 406 typed_urls_helper::SetPageTitle(0, kNonTypedURL, "Welcome to Non-Typed URL");
409 ASSERT_TRUE(AwaitCheckAllProfilesHaveSameURLs()); 407 ASSERT_TRUE(ProfilesHaveSameURLsChecker().Wait());
410 408
411 history::VisitVector visits; 409 history::VisitVector visits;
412 // First client has both visits. 410 // First client has both visits.
413 visits = typed_urls_helper::GetVisitsForURLFromClient(0, kNonTypedURL); 411 visits = typed_urls_helper::GetVisitsForURLFromClient(0, kNonTypedURL);
414 ASSERT_EQ(1U, visits.size()); 412 ASSERT_EQ(1U, visits.size());
415 EXPECT_TRUE(ui::PageTransitionCoreTypeIs(visits[0].transition, 413 EXPECT_TRUE(ui::PageTransitionCoreTypeIs(visits[0].transition,
416 ui::PAGE_TRANSITION_LINK)); 414 ui::PAGE_TRANSITION_LINK));
417 visits = typed_urls_helper::GetVisitsForURLFromClient(0, kTypedURL); 415 visits = typed_urls_helper::GetVisitsForURLFromClient(0, kTypedURL);
418 ASSERT_EQ(1U, visits.size()); 416 ASSERT_EQ(1U, visits.size());
419 EXPECT_TRUE(ui::PageTransitionCoreTypeIs(visits[0].transition, 417 EXPECT_TRUE(ui::PageTransitionCoreTypeIs(visits[0].transition,
(...skipping 25 matching lines...) Expand all
445 GURL redirected_url(kRedirectedHistoryUrl); 443 GURL redirected_url(kRedirectedHistoryUrl);
446 const ui::PageTransition redirected_transition = ui::PageTransitionFromInt( 444 const ui::PageTransition redirected_transition = ui::PageTransitionFromInt(
447 ui::PAGE_TRANSITION_TYPED | ui::PAGE_TRANSITION_CHAIN_END | 445 ui::PAGE_TRANSITION_TYPED | ui::PAGE_TRANSITION_CHAIN_END |
448 ui::PAGE_TRANSITION_SERVER_REDIRECT); 446 ui::PAGE_TRANSITION_SERVER_REDIRECT);
449 // This address will have a typed_count == 0 because it's a redirection. 447 // This address will have a typed_count == 0 because it's a redirection.
450 // It should still be synced. 448 // It should still be synced.
451 AddUrlToHistoryWithTransition(0, redirected_url, redirected_transition, 449 AddUrlToHistoryWithTransition(0, redirected_url, redirected_transition,
452 history::SOURCE_BROWSED); 450 history::SOURCE_BROWSED);
453 451
454 // Both clients should have both URLs. 452 // Both clients should have both URLs.
455 ASSERT_TRUE(AwaitCheckAllProfilesHaveSameURLs()); 453 ASSERT_TRUE(ProfilesHaveSameURLsChecker().Wait());
456 454
457 history::VisitVector visits = 455 history::VisitVector visits =
458 typed_urls_helper::GetVisitsForURLFromClient(0, initial_url); 456 typed_urls_helper::GetVisitsForURLFromClient(0, initial_url);
459 ASSERT_EQ(1U, visits.size()); 457 ASSERT_EQ(1U, visits.size());
460 EXPECT_TRUE(ui::PageTransitionCoreTypeIs(visits[0].transition, 458 EXPECT_TRUE(ui::PageTransitionCoreTypeIs(visits[0].transition,
461 ui::PAGE_TRANSITION_TYPED)); 459 ui::PAGE_TRANSITION_TYPED));
462 visits = typed_urls_helper::GetVisitsForURLFromClient(0, redirected_url); 460 visits = typed_urls_helper::GetVisitsForURLFromClient(0, redirected_url);
463 ASSERT_EQ(1U, visits.size()); 461 ASSERT_EQ(1U, visits.size());
464 EXPECT_TRUE(ui::PageTransitionCoreTypeIs(visits[0].transition, 462 EXPECT_TRUE(ui::PageTransitionCoreTypeIs(visits[0].transition,
465 ui::PAGE_TRANSITION_TYPED)); 463 ui::PAGE_TRANSITION_TYPED));
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
530 // A row in the DB for client 1 should have been created as a result of the 528 // A row in the DB for client 1 should have been created as a result of the
531 // sync. 529 // sync.
532 history::URLRow row; 530 history::URLRow row;
533 ASSERT_TRUE(GetUrlFromClient(1, bookmark_url, &row)); 531 ASSERT_TRUE(GetUrlFromClient(1, bookmark_url, &row));
534 532
535 // Now, add a typed visit for client 0 to the bookmark URL and sync it over 533 // Now, add a typed visit for client 0 to the bookmark URL and sync it over
536 // - this should not cause a crash. 534 // - this should not cause a crash.
537 AddUrlToHistory(0, bookmark_url); 535 AddUrlToHistory(0, bookmark_url);
538 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1))); 536 ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
539 537
540 ASSERT_TRUE(AwaitCheckAllProfilesHaveSameURLs()); 538 ASSERT_TRUE(ProfilesHaveSameURLsChecker().Wait());
541 history::URLRows urls = GetTypedUrlsFromClient(0); 539 history::URLRows urls = GetTypedUrlsFromClient(0);
542 ASSERT_EQ(1U, urls.size()); 540 ASSERT_EQ(1U, urls.size());
543 ASSERT_EQ(bookmark_url, urls[0].url()); 541 ASSERT_EQ(bookmark_url, urls[0].url());
544 ASSERT_EQ(1, GetVisitCountForFirstURL(0)); 542 ASSERT_EQ(1, GetVisitCountForFirstURL(0));
545 } 543 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698