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

Unified Diff: trunk/src/components/sync_driver/model_association_manager_unittest.cc

Issue 468643002: Revert 288464 "[Sync] Cleanup datatype configuration error handl..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: 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
Index: trunk/src/components/sync_driver/model_association_manager_unittest.cc
===================================================================
--- trunk/src/components/sync_driver/model_association_manager_unittest.cc (revision 289114)
+++ trunk/src/components/sync_driver/model_association_manager_unittest.cc (working copy)
@@ -21,8 +21,7 @@
MOCK_METHOD2(OnSingleDataTypeAssociationDone,
void(syncer::ModelType type,
const syncer::DataTypeAssociationStats& association_stats));
- MOCK_METHOD2(OnSingleDataTypeWillStop,
- void(syncer::ModelType, const syncer::SyncError& error));
+ MOCK_METHOD1(OnSingleDataTypeWillStop, void(syncer::ModelType));
MOCK_METHOD1(OnModelAssociationDone, void(
const DataTypeManager::ConfigureResult& result));
};
@@ -41,6 +40,22 @@
ACTION_P(VerifyResult, expected_result) {
EXPECT_EQ(arg0.status, expected_result.status);
EXPECT_TRUE(arg0.requested_types.Equals(expected_result.requested_types));
+ EXPECT_EQ(arg0.failed_data_types.size(),
+ expected_result.failed_data_types.size());
+
+ if (arg0.failed_data_types.size() ==
+ expected_result.failed_data_types.size()) {
+ std::map<syncer::ModelType, syncer::SyncError>::const_iterator it1, it2;
+ for (it1 = arg0.failed_data_types.begin(),
+ it2 = expected_result.failed_data_types.begin();
+ it1 != arg0.failed_data_types.end();
+ ++it1, ++it2) {
+ EXPECT_EQ((*it1).first, (*it2).first);
+ }
+ }
+
+ EXPECT_TRUE(arg0.unfinished_data_types.Equals(
+ expected_result.unfinished_data_types));
}
class SyncModelAssociationManagerTest : public testing::Test {
@@ -64,7 +79,12 @@
ModelAssociationManager model_association_manager(&controllers_,
&delegate_);
syncer::ModelTypeSet types(syncer::BOOKMARKS, syncer::APPS);
- DataTypeManager::ConfigureResult expected_result(DataTypeManager::OK, types);
+ DataTypeManager::ConfigureResult expected_result(
+ DataTypeManager::OK,
+ types,
+ std::map<syncer::ModelType, syncer::SyncError>(),
+ syncer::ModelTypeSet(),
+ syncer::ModelTypeSet());
EXPECT_CALL(delegate_, OnModelAssociationDone(_)).
WillOnce(VerifyResult(expected_result));
@@ -104,13 +124,24 @@
syncer::ModelTypeSet types;
types.Put(syncer::BOOKMARKS);
- DataTypeManager::ConfigureResult expected_result(DataTypeManager::ABORTED,
- types);
+ std::map<syncer::ModelType, syncer::SyncError> errors;
+ syncer::SyncError error(FROM_HERE,
+ syncer::SyncError::DATATYPE_ERROR,
+ "Failed",
+ syncer::BOOKMARKS);
+ errors[syncer::BOOKMARKS] = error;
+ DataTypeManager::ConfigureResult expected_result(
+ DataTypeManager::ABORTED,
+ types,
+ errors,
+ syncer::ModelTypeSet(syncer::BOOKMARKS),
+ syncer::ModelTypeSet());
+
EXPECT_CALL(delegate_, OnModelAssociationDone(_)).
WillOnce(VerifyResult(expected_result));
EXPECT_CALL(delegate_,
- OnSingleDataTypeWillStop(syncer::BOOKMARKS, _));
+ OnSingleDataTypeWillStop(syncer::BOOKMARKS));
model_association_manager.Initialize(types);
model_association_manager.StartAssociationAsync(types);
@@ -131,11 +162,16 @@
&delegate_);
syncer::ModelTypeSet types;
types.Put(syncer::BOOKMARKS);
- DataTypeManager::ConfigureResult expected_result(DataTypeManager::OK, types);
+ DataTypeManager::ConfigureResult expected_result(
+ DataTypeManager::OK,
+ types,
+ std::map<syncer::ModelType, syncer::SyncError>(),
+ syncer::ModelTypeSet(),
+ syncer::ModelTypeSet());
EXPECT_CALL(delegate_, OnModelAssociationDone(_)).
WillOnce(VerifyResult(expected_result));
EXPECT_CALL(delegate_,
- OnSingleDataTypeWillStop(syncer::BOOKMARKS, _));
+ OnSingleDataTypeWillStop(syncer::BOOKMARKS));
model_association_manager.Initialize(types);
model_association_manager.StartAssociationAsync(types);
@@ -159,9 +195,18 @@
&delegate_);
syncer::ModelTypeSet types;
types.Put(syncer::BOOKMARKS);
- DataTypeManager::ConfigureResult expected_result(DataTypeManager::OK, types);
- EXPECT_CALL(delegate_,
- OnSingleDataTypeWillStop(syncer::BOOKMARKS, _));
+ std::map<syncer::ModelType, syncer::SyncError> errors;
+ syncer::SyncError error(FROM_HERE,
+ syncer::SyncError::DATATYPE_ERROR,
+ "Failed",
+ syncer::BOOKMARKS);
+ errors[syncer::BOOKMARKS] = error;
+ DataTypeManager::ConfigureResult expected_result(
+ DataTypeManager::PARTIAL_SUCCESS,
+ types,
+ errors,
+ syncer::ModelTypeSet(),
+ syncer::ModelTypeSet());
EXPECT_CALL(delegate_, OnModelAssociationDone(_)).
WillOnce(VerifyResult(expected_result));
@@ -185,10 +230,18 @@
&delegate_);
syncer::ModelTypeSet types;
types.Put(syncer::BOOKMARKS);
+ std::map<syncer::ModelType, syncer::SyncError> errors;
+ syncer::SyncError error(FROM_HERE,
+ syncer::SyncError::DATATYPE_ERROR,
+ "Failed",
+ syncer::BOOKMARKS);
+ errors[syncer::BOOKMARKS] = error;
DataTypeManager::ConfigureResult expected_result(
- DataTypeManager::UNRECOVERABLE_ERROR, types);
- EXPECT_CALL(delegate_,
- OnSingleDataTypeWillStop(syncer::BOOKMARKS, _));
+ DataTypeManager::UNRECOVERABLE_ERROR,
+ types,
+ errors,
+ syncer::ModelTypeSet(),
+ syncer::ModelTypeSet());
EXPECT_CALL(delegate_, OnModelAssociationDone(_)).
WillOnce(VerifyResult(expected_result));
@@ -214,10 +267,21 @@
types.Put(syncer::BOOKMARKS);
types.Put(syncer::APPS);
+ std::map<syncer::ModelType, syncer::SyncError> errors;
+ syncer::SyncError error(FROM_HERE,
+ syncer::SyncError::DATATYPE_ERROR,
+ "Association timed out.",
+ syncer::BOOKMARKS);
+ errors[syncer::BOOKMARKS] = error;
+
syncer::ModelTypeSet expected_types_unfinished;
expected_types_unfinished.Put(syncer::BOOKMARKS);
DataTypeManager::ConfigureResult expected_result_partially_done(
- DataTypeManager::OK, types);
+ DataTypeManager::PARTIAL_SUCCESS,
+ types,
+ errors,
+ expected_types_unfinished,
+ syncer::ModelTypeSet());
EXPECT_CALL(delegate_, OnModelAssociationDone(_)).
WillOnce(VerifyResult(expected_result_partially_done));
@@ -227,8 +291,6 @@
GetController(controllers_, syncer::APPS)->FinishStart(
DataTypeController::OK);
- EXPECT_CALL(delegate_,
- OnSingleDataTypeWillStop(syncer::BOOKMARKS, _));
model_association_manager.GetTimerForTesting()->user_task().Run();
EXPECT_EQ(DataTypeController::NOT_RUNNING,
@@ -248,10 +310,16 @@
DataTypeManager::ConfigureResult result_1st(
DataTypeManager::OK,
- syncer::ModelTypeSet(syncer::BOOKMARKS));
+ syncer::ModelTypeSet(syncer::BOOKMARKS),
+ std::map<syncer::ModelType, syncer::SyncError>(),
+ syncer::ModelTypeSet(),
+ syncer::ModelTypeSet());
DataTypeManager::ConfigureResult result_2nd(
DataTypeManager::OK,
- syncer::ModelTypeSet(syncer::APPS));
+ syncer::ModelTypeSet(syncer::APPS),
+ std::map<syncer::ModelType, syncer::SyncError>(),
+ syncer::ModelTypeSet(),
+ syncer::ModelTypeSet());
EXPECT_CALL(delegate_, OnModelAssociationDone(_)).
Times(2).
WillOnce(VerifyResult(result_1st)).
@@ -299,48 +367,27 @@
&delegate_);
syncer::ModelTypeSet types;
types.Put(syncer::BOOKMARKS);
- DataTypeManager::ConfigureResult expected_result(DataTypeManager::OK, types);
- EXPECT_CALL(delegate_,
- OnSingleDataTypeWillStop(syncer::BOOKMARKS, _));
+ std::map<syncer::ModelType, syncer::SyncError> errors;
+ syncer::SyncError error(FROM_HERE,
+ syncer::SyncError::DATATYPE_ERROR,
+ "Failed",
+ syncer::BOOKMARKS);
+ errors[syncer::BOOKMARKS] = error;
+ DataTypeManager::ConfigureResult expected_result(
+ DataTypeManager::PARTIAL_SUCCESS,
+ types,
+ errors,
+ syncer::ModelTypeSet(),
+ syncer::ModelTypeSet());
EXPECT_CALL(delegate_, OnModelAssociationDone(_)).
WillOnce(VerifyResult(expected_result));
model_association_manager.Initialize(types);
- EXPECT_EQ(DataTypeController::NOT_RUNNING,
+ EXPECT_EQ(DataTypeController::DISABLED,
GetController(controllers_, syncer::BOOKMARKS)->state());
model_association_manager.StartAssociationAsync(types);
EXPECT_EQ(DataTypeController::NOT_RUNNING,
GetController(controllers_, syncer::BOOKMARKS)->state());
}
-// Test that a runtime error is handled by stopping the type.
-TEST_F(SyncModelAssociationManagerTest, StopAfterConfiguration) {
- controllers_[syncer::BOOKMARKS] =
- new FakeDataTypeController(syncer::BOOKMARKS);
- ModelAssociationManager model_association_manager(
- &controllers_,
- &delegate_);
- syncer::ModelTypeSet types;
- types.Put(syncer::BOOKMARKS);
- DataTypeManager::ConfigureResult expected_result(DataTypeManager::OK, types);
- EXPECT_CALL(delegate_, OnModelAssociationDone(_)).
- WillOnce(VerifyResult(expected_result));
-
- model_association_manager.Initialize(types);
- model_association_manager.StartAssociationAsync(types);
-
- EXPECT_EQ(GetController(controllers_, syncer::BOOKMARKS)->state(),
- DataTypeController::ASSOCIATING);
- GetController(controllers_, syncer::BOOKMARKS)->FinishStart(
- DataTypeController::OK);
- EXPECT_EQ(GetController(controllers_, syncer::BOOKMARKS)->state(),
- DataTypeController::RUNNING);
-
- testing::Mock::VerifyAndClearExpectations(&delegate_);
- EXPECT_CALL(delegate_,
- OnSingleDataTypeWillStop(syncer::BOOKMARKS, _));
- GetController(controllers_, syncer::BOOKMARKS)
- ->OnSingleDatatypeUnrecoverableError(FROM_HERE, "runtime error");
-}
-
} // namespace sync_driver

Powered by Google App Engine
This is Rietveld 408576698