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

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

Issue 2713913002: [sync] Add Sessions integration tests (Closed)
Patch Set: Update commit message Created 3 years, 9 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 "chrome/browser/sync/test/integration/sync_test.h" 5 #include "chrome/browser/sync/test/integration/sync_test.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <limits> 10 #include <limits>
(...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after
413 } 413 }
414 414
415 Profile* profile = 415 Profile* profile =
416 Profile::CreateProfile(profile_path, profile_delegates_[index].get(), 416 Profile::CreateProfile(profile_path, profile_delegates_[index].get(),
417 Profile::CREATE_MODE_SYNCHRONOUS); 417 Profile::CREATE_MODE_SYNCHRONOUS);
418 return profile; 418 return profile;
419 } 419 }
420 420
421 Profile* SyncTest::GetProfile(int index) { 421 Profile* SyncTest::GetProfile(int index) {
422 if (profiles_.empty()) 422 if (profiles_.empty())
423 LOG(FATAL) << "SetupClients() has not yet been called."; 423 LOG(FATAL) << "SetupClients() has not yet been called.";
skym 2017/02/24 16:20:17 Can these be EXPECT_* and not LOG(FATAL)?
Patrick Noland 2017/02/27 18:53:26 Done.
424 if (index < 0 || index >= static_cast<int>(profiles_.size())) 424 if (index < 0 || index >= static_cast<int>(profiles_.size()))
425 LOG(FATAL) << "GetProfile(): Index is out of bounds."; 425 LOG(FATAL) << "GetProfile(): Index is out of bounds.";
426 return profiles_[index]; 426 return profiles_[index];
skym 2017/02/24 16:20:17 What would happen if you checked for nullptr here?
Patrick Noland 2017/02/27 18:53:26 Done.
427 } 427 }
428 428
429 std::vector<Profile*> SyncTest::GetAllProfiles() { 429 std::vector<Profile*> SyncTest::GetAllProfiles() {
430 std::vector<Profile*> profiles; 430 std::vector<Profile*> profiles;
431 if (use_verifier()) { 431 if (use_verifier()) {
432 profiles.push_back(verifier()); 432 profiles.push_back(verifier());
433 } 433 }
434 for (int i = 0; i < num_clients(); ++i) { 434 for (int i = 0; i < num_clients(); ++i) {
435 profiles.push_back(GetProfile(i)); 435 profiles.push_back(GetProfile(i));
436 } 436 }
437 return profiles; 437 return profiles;
438 } 438 }
439 439
440 Browser* SyncTest::GetBrowser(int index) { 440 Browser* SyncTest::GetBrowser(int index) {
441 if (browsers_.empty()) 441 if (browsers_.empty())
442 LOG(FATAL) << "SetupClients() has not yet been called."; 442 LOG(FATAL) << "SetupClients() has not yet been called.";
443 if (index < 0 || index >= static_cast<int>(browsers_.size())) 443 if (index < 0 || index >= static_cast<int>(browsers_.size()))
444 LOG(FATAL) << "GetBrowser(): Index is out of bounds."; 444 LOG(FATAL) << "GetBrowser(): Index is out of bounds.";
445 return browsers_[index]; 445 return browsers_[index];
skym 2017/02/24 16:20:17 Same, can we check for nullptr?
Patrick Noland 2017/02/27 18:53:26 Done.
446 } 446 }
447 447
448 Browser* SyncTest::AddBrowser(int profile_index) {
449 Profile* profile = GetProfile(profile_index);
450 EXPECT_NE(nullptr, profile)
451 << "No profile found at profile_index: " << profile_index;
452
453 // Add the new browser at the end of the list.
454 int index = browsers_.size();
455 browsers_.resize(browsers_.size() + 1);
skym 2017/02/24 00:14:09 why not browsers_.push_back(new Browser(...)); ?
Patrick Noland 2017/02/24 01:00:40 Because I'm copying the bizarre pattern used elsew
456 profiles_.resize(profiles_.size() + 1);
457 browsers_[index] = new Browser(Browser::CreateParams(profile, true));
458
459 Browser* browser = GetBrowser(index);
skym 2017/02/24 00:14:09 But. What? You just made this thing, why fetch it
Patrick Noland 2017/02/24 01:00:40 Because I'm copying the bizarre pattern used elsew
skym 2017/02/24 16:20:17 ...Is this a memory leak? Who owns this Browser ob
Patrick Noland 2017/02/27 18:53:26 According to sync_test.h "Browser object lifetime
460 EXPECT_NE(nullptr, browser) << "Could not create Browser " << index;
skym 2017/02/24 00:14:09 So when does this happen?
Patrick Noland 2017/02/24 01:00:40 Good question. The old code seemed to think it was
skym 2017/02/24 16:20:17 This is test code, worst case a test fails. Remove
461 profiles_[index] = profile;
skym 2017/02/24 00:14:09 I'm confused, is browsers_.size() allowed to != pr
Patrick Noland 2017/02/24 01:00:40 No, they should always match. There's a longwinded
462
463 return browser;
464 }
465
448 ProfileSyncServiceHarness* SyncTest::GetClient(int index) { 466 ProfileSyncServiceHarness* SyncTest::GetClient(int index) {
449 if (clients_.empty()) 467 if (clients_.empty())
450 LOG(FATAL) << "SetupClients() has not yet been called."; 468 LOG(FATAL) << "SetupClients() has not yet been called.";
451 if (index < 0 || index >= static_cast<int>(clients_.size())) 469 if (index < 0 || index >= static_cast<int>(clients_.size()))
452 LOG(FATAL) << "GetClient(): Index is out of bounds."; 470 LOG(FATAL) << "GetClient(): Index is out of bounds.";
453 return clients_[index]; 471 return clients_[index];
454 } 472 }
455 473
456 ProfileSyncService* SyncTest::GetSyncService(int index) { 474 ProfileSyncService* SyncTest::GetSyncService(int index) {
457 return ProfileSyncServiceFactory::GetForProfile(GetProfile(index)); 475 return ProfileSyncServiceFactory::GetForProfile(GetProfile(index));
(...skipping 22 matching lines...) Expand all
480 bool SyncTest::SetupClients() { 498 bool SyncTest::SetupClients() {
481 if (num_clients_ <= 0) 499 if (num_clients_ <= 0)
482 LOG(FATAL) << "num_clients_ incorrectly initialized."; 500 LOG(FATAL) << "num_clients_ incorrectly initialized.";
483 if (!profiles_.empty() || !browsers_.empty() || !clients_.empty()) 501 if (!profiles_.empty() || !browsers_.empty() || !clients_.empty())
484 LOG(FATAL) << "SetupClients() has already been called."; 502 LOG(FATAL) << "SetupClients() has already been called.";
485 503
486 // Create the required number of sync profiles, browsers and clients. 504 // Create the required number of sync profiles, browsers and clients.
487 profiles_.resize(num_clients_); 505 profiles_.resize(num_clients_);
488 profile_delegates_.resize(num_clients_ + 1); // + 1 for the verifier. 506 profile_delegates_.resize(num_clients_ + 1); // + 1 for the verifier.
489 tmp_profile_paths_.resize(num_clients_); 507 tmp_profile_paths_.resize(num_clients_);
490 browsers_.resize(num_clients_);
491 clients_.resize(num_clients_); 508 clients_.resize(num_clients_);
492 invalidation_forwarders_.resize(num_clients_); 509 invalidation_forwarders_.resize(num_clients_);
493 sync_refreshers_.resize(num_clients_); 510 sync_refreshers_.resize(num_clients_);
494 fake_server_invalidation_services_.resize(num_clients_); 511 fake_server_invalidation_services_.resize(num_clients_);
495 512
496 if (create_gaia_account_at_runtime_) { 513 if (create_gaia_account_at_runtime_) {
497 CHECK(UsingExternalServers()) << 514 CHECK(UsingExternalServers()) <<
498 "Cannot create Gaia accounts without external authentication servers"; 515 "Cannot create Gaia accounts without external authentication servers";
499 if (!CreateGaiaAccount(username_, password_)) 516 if (!CreateGaiaAccount(username_, password_))
500 LOG(FATAL) << "Could not create Gaia account."; 517 LOG(FATAL) << "Could not create Gaia account.";
(...skipping 20 matching lines...) Expand all
521 // Error cases are all handled by LOG(FATAL) messages. So there is not really 538 // Error cases are all handled by LOG(FATAL) messages. So there is not really
522 // a case that returns false. In case we failed to create a verifier profile, 539 // a case that returns false. In case we failed to create a verifier profile,
523 // any call to the verifier() would fail. 540 // any call to the verifier() would fail.
524 return true; 541 return true;
525 } 542 }
526 543
527 void SyncTest::InitializeProfile(int index, Profile* profile) { 544 void SyncTest::InitializeProfile(int index, Profile* profile) {
528 DCHECK(profile); 545 DCHECK(profile);
529 profiles_[index] = profile; 546 profiles_[index] = profile;
530 547
531 // CheckInitialState() assumes that no windows are open at startup. 548 AddBrowser(index);
532 browsers_[index] =
533 new Browser(Browser::CreateParams(GetProfile(index), true));
534
535 EXPECT_NE(nullptr, GetBrowser(index)) << "Could not create Browser " << index;
536 549
537 // Make sure the ProfileSyncService has been created before creating the 550 // Make sure the ProfileSyncService has been created before creating the
538 // ProfileSyncServiceHarness - some tests expect the ProfileSyncService to 551 // ProfileSyncServiceHarness - some tests expect the ProfileSyncService to
539 // already exist. 552 // already exist.
540 ProfileSyncService* profile_sync_service = 553 ProfileSyncService* profile_sync_service =
541 ProfileSyncServiceFactory::GetForProfile(GetProfile(index)); 554 ProfileSyncServiceFactory::GetForProfile(GetProfile(index));
542 555
543 if (server_type_ == IN_PROCESS_FAKE_SERVER) { 556 if (server_type_ == IN_PROCESS_FAKE_SERVER) {
544 // TODO(pvalenzuela): Run the fake server via EmbeddedTestServer. 557 // TODO(pvalenzuela): Run the fake server via EmbeddedTestServer.
545 profile_sync_service->OverrideNetworkResourcesForTest( 558 profile_sync_service->OverrideNetworkResourcesForTest(
(...skipping 586 matching lines...) Expand 10 before | Expand all | Expand 10 after
1132 1145
1133 void SyncTest::TriggerSyncForModelTypes(int index, 1146 void SyncTest::TriggerSyncForModelTypes(int index,
1134 syncer::ModelTypeSet model_types) { 1147 syncer::ModelTypeSet model_types) {
1135 GetSyncService(index)->TriggerRefresh(model_types); 1148 GetSyncService(index)->TriggerRefresh(model_types);
1136 } 1149 }
1137 1150
1138 void SyncTest::SetPreexistingPreferencesFileContents( 1151 void SyncTest::SetPreexistingPreferencesFileContents(
1139 const std::string& contents) { 1152 const std::string& contents) {
1140 preexisting_preferences_file_contents_ = contents; 1153 preexisting_preferences_file_contents_ = contents;
1141 } 1154 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698