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

Unified Diff: chrome/browser/sync/profile_sync_service_startup_unittest.cc

Issue 420633002: [Sync] Cleanup datatype configuration error handling. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix compile Created 6 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/sync/profile_sync_service.cc ('k') | components/sync_driver/data_type_controller.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/sync/profile_sync_service_startup_unittest.cc
diff --git a/chrome/browser/sync/profile_sync_service_startup_unittest.cc b/chrome/browser/sync/profile_sync_service_startup_unittest.cc
index ad24b0f621dad15586238fc25bef7d1071e4c6db..cfd7f0e9d86b93385721f068414889406b897179 100644
--- a/chrome/browser/sync/profile_sync_service_startup_unittest.cc
+++ b/chrome/browser/sync/profile_sync_service_startup_unittest.cc
@@ -45,6 +45,7 @@ using testing::DoAll;
using testing::InvokeArgument;
using testing::Mock;
using testing::Return;
+using testing::SaveArg;
ACTION_P(InvokeOnConfigureStart, pss) {
ProfileSyncService* service =
@@ -52,11 +53,13 @@ ACTION_P(InvokeOnConfigureStart, pss) {
service->OnConfigureStart();
}
-ACTION_P2(InvokeOnConfigureDone, pss, result) {
+ACTION_P3(InvokeOnConfigureDone, pss, error_callback, result) {
ProfileSyncService* service =
static_cast<ProfileSyncService*>(pss);
DataTypeManager::ConfigureResult configure_result =
static_cast<DataTypeManager::ConfigureResult>(result);
+ if (result.status == sync_driver::DataTypeManager::ABORTED)
+ error_callback.Run();
service->OnConfigureDone(configure_result);
}
@@ -67,7 +70,8 @@ class ProfileSyncServiceStartupTest : public testing::Test {
content::TestBrowserThreadBundle::REAL_FILE_THREAD |
content::TestBrowserThreadBundle::REAL_IO_THREAD),
profile_manager_(TestingBrowserProcess::GetGlobal()),
- sync_(NULL) {}
+ sync_(NULL),
+ failed_data_types_handler_(NULL) {}
virtual ~ProfileSyncServiceStartupTest() {
}
@@ -127,6 +131,16 @@ class ProfileSyncServiceStartupTest : public testing::Test {
return static_cast<FakeSigninManagerForTesting*>(sync_->signin());
}
+ void SetError() {
+ sync_driver::FailedDataTypesHandler::TypeErrorMap errors;
+ errors[syncer::BOOKMARKS] =
+ syncer::SyncError(FROM_HERE,
+ syncer::SyncError::UNRECOVERABLE_ERROR,
+ "Error",
+ syncer::BOOKMARKS);
+ failed_data_types_handler_->UpdateFailedDataTypes(errors);
+ }
+
protected:
void SimulateTestUserSignin() {
profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername,
@@ -143,7 +157,8 @@ class ProfileSyncServiceStartupTest : public testing::Test {
DataTypeManagerMock* data_type_manager = new DataTypeManagerMock();
EXPECT_CALL(*components_factory_mock(),
CreateDataTypeManager(_, _, _, _, _, _)).
- WillOnce(Return(data_type_manager));
+ WillOnce(DoAll(SaveArg<5>(&failed_data_types_handler_),
+ Return(data_type_manager)));
return data_type_manager;
}
@@ -161,6 +176,7 @@ class ProfileSyncServiceStartupTest : public testing::Test {
TestingProfile* profile_;
ProfileSyncService* sync_;
ProfileSyncServiceObserverMock observer_;
+ sync_driver::FailedDataTypesHandler* failed_data_types_handler_;
};
class ProfileSyncServiceStartupCrosTest : public ProfileSyncServiceStartupTest {
@@ -508,23 +524,16 @@ TEST_F(ProfileSyncServiceStartupTest, StartFailure) {
SetUpSyncBackendHost();
DataTypeManagerMock* data_type_manager = SetUpDataTypeManager();
DataTypeManager::ConfigureStatus status = DataTypeManager::ABORTED;
- syncer::SyncError error(
- FROM_HERE,
- syncer::SyncError::DATATYPE_ERROR,
- "Association failed.",
- syncer::BOOKMARKS);
- std::map<syncer::ModelType, syncer::SyncError> errors;
- errors[syncer::BOOKMARKS] = error;
DataTypeManager::ConfigureResult result(
status,
- syncer::ModelTypeSet(),
- errors,
- syncer::ModelTypeSet(),
syncer::ModelTypeSet());
- EXPECT_CALL(*data_type_manager, Configure(_, _)).
- WillRepeatedly(
- DoAll(InvokeOnConfigureStart(sync_),
- InvokeOnConfigureDone(sync_, result)));
+ EXPECT_CALL(*data_type_manager, Configure(_, _)).WillRepeatedly(
+ DoAll(InvokeOnConfigureStart(sync_),
+ InvokeOnConfigureDone(
+ sync_,
+ base::Bind(&ProfileSyncServiceStartupTest::SetError,
+ base::Unretained(this)),
+ result)));
EXPECT_CALL(*data_type_manager, state()).
WillOnce(Return(DataTypeManager::STOPPED));
EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
« no previous file with comments | « chrome/browser/sync/profile_sync_service.cc ('k') | components/sync_driver/data_type_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698