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

Side by Side Diff: components/sync/driver/data_type_manager_impl_unittest.cc

Issue 2388673002: Revert of [Sync] Move //components/sync to the syncer namespace. (patchset #5 id:40001 of https://co (Closed)
Patch Set: 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "components/sync/driver/data_type_manager_impl.h" 5 #include "components/sync/driver/data_type_manager_impl.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
11 #include "base/message_loop/message_loop.h" 11 #include "base/message_loop/message_loop.h"
12 #include "base/run_loop.h" 12 #include "base/run_loop.h"
13 #include "components/sync/base/model_type.h" 13 #include "components/sync/base/model_type.h"
14 #include "components/sync/core/activation_context.h" 14 #include "components/sync/core/activation_context.h"
15 #include "components/sync/core/configure_reason.h" 15 #include "components/sync/core/configure_reason.h"
16 #include "components/sync/driver/backend_data_type_configurer.h" 16 #include "components/sync/driver/backend_data_type_configurer.h"
17 #include "components/sync/driver/data_type_encryption_handler.h" 17 #include "components/sync/driver/data_type_encryption_handler.h"
18 #include "components/sync/driver/data_type_manager_observer.h" 18 #include "components/sync/driver/data_type_manager_observer.h"
19 #include "components/sync/driver/data_type_status_table.h" 19 #include "components/sync/driver/data_type_status_table.h"
20 #include "components/sync/driver/fake_data_type_controller.h" 20 #include "components/sync/driver/fake_data_type_controller.h"
21 #include "testing/gtest/include/gtest/gtest.h" 21 #include "testing/gtest/include/gtest/gtest.h"
22 22
23 namespace syncer { 23 namespace sync_driver {
24
25 using syncer::SyncError;
26 using syncer::ModelType;
27 using syncer::ModelTypeSet;
28 using syncer::ModelTypeToString;
29 using syncer::BOOKMARKS;
30 using syncer::APPS;
31 using syncer::PASSWORDS;
32 using syncer::PREFERENCES;
33 using syncer::NIGORI;
24 34
25 namespace { 35 namespace {
26 36
27 // Helper for unioning with control types. 37 // Helper for unioning with control types.
28 ModelTypeSet AddControlTypesTo(ModelTypeSet types) { 38 ModelTypeSet AddControlTypesTo(ModelTypeSet types) {
29 ModelTypeSet result = ControlTypes(); 39 ModelTypeSet result = syncer::ControlTypes();
30 result.PutAll(types); 40 result.PutAll(types);
31 return result; 41 return result;
32 } 42 }
33 43
34 DataTypeStatusTable BuildStatusTable(ModelTypeSet crypto_errors, 44 DataTypeStatusTable BuildStatusTable(ModelTypeSet crypto_errors,
35 ModelTypeSet association_errors, 45 ModelTypeSet association_errors,
36 ModelTypeSet unready_errors, 46 ModelTypeSet unready_errors,
37 ModelTypeSet unrecoverable_errors) { 47 ModelTypeSet unrecoverable_errors) {
38 DataTypeStatusTable::TypeErrorMap error_map; 48 DataTypeStatusTable::TypeErrorMap error_map;
39 for (ModelTypeSet::Iterator iter = crypto_errors.First(); iter.Good(); 49 for (ModelTypeSet::Iterator iter = crypto_errors.First(); iter.Good();
(...skipping 22 matching lines...) Expand all
62 return status_table; 72 return status_table;
63 } 73 }
64 74
65 // Fake BackendDataTypeConfigurer implementation that simply stores away the 75 // Fake BackendDataTypeConfigurer implementation that simply stores away the
66 // callback passed into ConfigureDataTypes. 76 // callback passed into ConfigureDataTypes.
67 class FakeBackendDataTypeConfigurer : public BackendDataTypeConfigurer { 77 class FakeBackendDataTypeConfigurer : public BackendDataTypeConfigurer {
68 public: 78 public:
69 FakeBackendDataTypeConfigurer() : configure_call_count_(0) {} 79 FakeBackendDataTypeConfigurer() : configure_call_count_(0) {}
70 ~FakeBackendDataTypeConfigurer() override {} 80 ~FakeBackendDataTypeConfigurer() override {}
71 81
72 ModelTypeSet ConfigureDataTypes( 82 syncer::ModelTypeSet ConfigureDataTypes(
73 ConfigureReason reason, 83 syncer::ConfigureReason reason,
74 const DataTypeConfigStateMap& config_state_map, 84 const DataTypeConfigStateMap& config_state_map,
75 const base::Callback<void(ModelTypeSet, ModelTypeSet)>& ready_task, 85 const base::Callback<void(ModelTypeSet, ModelTypeSet)>& ready_task,
76 const base::Callback<void()>& retry_callback) override { 86 const base::Callback<void()>& retry_callback) override {
77 configure_call_count_++; 87 configure_call_count_++;
78 last_ready_task_ = ready_task; 88 last_ready_task_ = ready_task;
79 89
80 for (auto iter = expected_configure_types_.begin(); 90 for (auto iter = expected_configure_types_.begin();
81 iter != expected_configure_types_.end(); ++iter) { 91 iter != expected_configure_types_.end(); ++iter) {
82 if (!iter->second.Empty()) { 92 if (!iter->second.Empty()) {
83 EXPECT_TRUE(iter->second == 93 EXPECT_TRUE(iter->second ==
84 GetDataTypesInState(iter->first, config_state_map)) 94 GetDataTypesInState(iter->first, config_state_map))
85 << "State " << iter->first << " : " 95 << "State " << iter->first << " : "
86 << ModelTypeSetToString(iter->second) << " v.s. " 96 << ModelTypeSetToString(iter->second) << " v.s. "
87 << ModelTypeSetToString( 97 << ModelTypeSetToString(
88 GetDataTypesInState(iter->first, config_state_map)); 98 GetDataTypesInState(iter->first, config_state_map));
89 } 99 }
90 } 100 }
91 return ready_types_; 101 return ready_types_;
92 } 102 }
93 103
94 void ActivateDirectoryDataType(ModelType type, 104 void ActivateDirectoryDataType(syncer::ModelType type,
95 ModelSafeGroup group, 105 syncer::ModelSafeGroup group,
96 ChangeProcessor* change_processor) override { 106 ChangeProcessor* change_processor) override {
97 activated_types_.Put(type); 107 activated_types_.Put(type);
98 } 108 }
99 void DeactivateDirectoryDataType(ModelType type) override { 109 void DeactivateDirectoryDataType(syncer::ModelType type) override {
100 activated_types_.Remove(type); 110 activated_types_.Remove(type);
101 } 111 }
102 112
103 void ActivateNonBlockingDataType( 113 void ActivateNonBlockingDataType(syncer::ModelType type,
104 ModelType type, 114 std::unique_ptr<syncer_v2::ActivationContext>
105 std::unique_ptr<ActivationContext> activation_context) override { 115 activation_context) override {
106 // TODO(stanisc): crbug.com/515962: Add test coverage. 116 // TODO(stanisc): crbug.com/515962: Add test coverage.
107 } 117 }
108 118
109 void DeactivateNonBlockingDataType(ModelType type) override { 119 void DeactivateNonBlockingDataType(syncer::ModelType type) override {
110 // TODO(stanisc): crbug.com/515962: Add test coverage. 120 // TODO(stanisc): crbug.com/515962: Add test coverage.
111 } 121 }
112 122
113 base::Callback<void(ModelTypeSet, ModelTypeSet)> last_ready_task() const { 123 base::Callback<void(ModelTypeSet, ModelTypeSet)> last_ready_task() const {
114 return last_ready_task_; 124 return last_ready_task_;
115 } 125 }
116 126
117 void set_expected_configure_types(DataTypeConfigState config_state, 127 void set_expected_configure_types(DataTypeConfigState config_state,
118 ModelTypeSet types) { 128 ModelTypeSet types) {
119 expected_configure_types_[config_state] = types; 129 expected_configure_types_[config_state] = types;
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 222
213 ModelTypeSet FakeDataTypeEncryptionHandler::GetEncryptedDataTypes() const { 223 ModelTypeSet FakeDataTypeEncryptionHandler::GetEncryptedDataTypes() const {
214 return encrypted_types_; 224 return encrypted_types_;
215 } 225 }
216 226
217 } // namespace 227 } // namespace
218 228
219 class TestDataTypeManager : public DataTypeManagerImpl { 229 class TestDataTypeManager : public DataTypeManagerImpl {
220 public: 230 public:
221 TestDataTypeManager( 231 TestDataTypeManager(
222 const WeakHandle<DataTypeDebugInfoListener>& debug_info_listener, 232 const syncer::WeakHandle<syncer::DataTypeDebugInfoListener>&
233 debug_info_listener,
223 BackendDataTypeConfigurer* configurer, 234 BackendDataTypeConfigurer* configurer,
224 const DataTypeController::TypeMap* controllers, 235 const DataTypeController::TypeMap* controllers,
225 const DataTypeEncryptionHandler* encryption_handler, 236 const DataTypeEncryptionHandler* encryption_handler,
226 DataTypeManagerObserver* observer) 237 DataTypeManagerObserver* observer)
227 : DataTypeManagerImpl(debug_info_listener, 238 : DataTypeManagerImpl(debug_info_listener,
228 controllers, 239 controllers,
229 encryption_handler, 240 encryption_handler,
230 configurer, 241 configurer,
231 observer), 242 observer),
232 custom_priority_types_(ControlTypes()) {} 243 custom_priority_types_(syncer::ControlTypes()) {}
233 244
234 void set_priority_types(const ModelTypeSet& priority_types) { 245 void set_priority_types(const ModelTypeSet& priority_types) {
235 custom_priority_types_ = priority_types; 246 custom_priority_types_ = priority_types;
236 } 247 }
237 248
238 DataTypeManager::ConfigureResult configure_result() const { 249 DataTypeManager::ConfigureResult configure_result() const {
239 return configure_result_; 250 return configure_result_;
240 } 251 }
241 252
242 void OnModelAssociationDone( 253 void OnModelAssociationDone(
(...skipping 14 matching lines...) Expand all
257 // The actual test harness class, parametrized on nigori state (i.e., tests are 268 // The actual test harness class, parametrized on nigori state (i.e., tests are
258 // run both configuring with nigori, and configuring without). 269 // run both configuring with nigori, and configuring without).
259 class SyncDataTypeManagerImplTest : public testing::Test { 270 class SyncDataTypeManagerImplTest : public testing::Test {
260 public: 271 public:
261 SyncDataTypeManagerImplTest() {} 272 SyncDataTypeManagerImplTest() {}
262 273
263 ~SyncDataTypeManagerImplTest() override {} 274 ~SyncDataTypeManagerImplTest() override {}
264 275
265 protected: 276 protected:
266 void SetUp() override { 277 void SetUp() override {
267 dtm_.reset(new TestDataTypeManager(WeakHandle<DataTypeDebugInfoListener>(), 278 dtm_.reset(new TestDataTypeManager(
268 &configurer_, &controllers_, 279 syncer::WeakHandle<syncer::DataTypeDebugInfoListener>(), &configurer_,
269 &encryption_handler_, &observer_)); 280 &controllers_, &encryption_handler_, &observer_));
270 } 281 }
271 282
272 void SetConfigureStartExpectation() { observer_.ExpectStart(); } 283 void SetConfigureStartExpectation() { observer_.ExpectStart(); }
273 284
274 void SetConfigureDoneExpectation(DataTypeManager::ConfigureStatus status, 285 void SetConfigureDoneExpectation(DataTypeManager::ConfigureStatus status,
275 const DataTypeStatusTable& status_table) { 286 const DataTypeStatusTable& status_table) {
276 DataTypeManager::ConfigureResult result; 287 DataTypeManager::ConfigureResult result;
277 result.status = status; 288 result.status = status;
278 result.data_type_status_table = status_table; 289 result.data_type_status_table = status_table;
279 observer_.ExpectDone(result); 290 observer_.ExpectDone(result);
280 } 291 }
281 292
282 // Configure the given DTM with the given desired types. 293 // Configure the given DTM with the given desired types.
283 void Configure(DataTypeManagerImpl* dtm, const ModelTypeSet& desired_types) { 294 void Configure(DataTypeManagerImpl* dtm, const ModelTypeSet& desired_types) {
284 dtm->Configure(desired_types, CONFIGURE_REASON_RECONFIGURATION); 295 dtm->Configure(desired_types, syncer::CONFIGURE_REASON_RECONFIGURATION);
285 } 296 }
286 297
287 // Finish downloading for the given DTM. Should be done only after 298 // Finish downloading for the given DTM. Should be done only after
288 // a call to Configure(). 299 // a call to Configure().
289 void FinishDownload(const DataTypeManager& dtm, 300 void FinishDownload(const DataTypeManager& dtm,
290 ModelTypeSet types_to_configure, 301 ModelTypeSet types_to_configure,
291 ModelTypeSet failed_download_types) { 302 ModelTypeSet failed_download_types) {
292 EXPECT_EQ(DataTypeManager::CONFIGURING, dtm.state()); 303 EXPECT_EQ(DataTypeManager::CONFIGURING, dtm.state());
293 ASSERT_FALSE(configurer_.last_ready_task().is_null()); 304 ASSERT_FALSE(configurer_.last_ready_task().is_null());
294 configurer_.last_ready_task().Run( 305 configurer_.last_ready_task().Run(
295 Difference(types_to_configure, failed_download_types), 306 syncer::Difference(types_to_configure, failed_download_types),
296 failed_download_types); 307 failed_download_types);
297 } 308 }
298 309
299 // Adds a fake controller for the given type to |controllers_|. 310 // Adds a fake controller for the given type to |controllers_|.
300 // Should be called only before setting up the DTM. 311 // Should be called only before setting up the DTM.
301 void AddController(ModelType model_type) { 312 void AddController(ModelType model_type) {
302 controllers_[model_type] = 313 controllers_[model_type] =
303 base::MakeUnique<FakeDataTypeController>(model_type); 314 base::MakeUnique<FakeDataTypeController>(model_type);
304 } 315 }
305 316
(...skipping 569 matching lines...) Expand 10 before | Expand all | Expand 10 after
875 FinishDownload(*dtm_, ModelTypeSet(BOOKMARKS), ModelTypeSet()); 886 FinishDownload(*dtm_, ModelTypeSet(BOOKMARKS), ModelTypeSet());
876 GetController(BOOKMARKS)->FinishStart(DataTypeController::OK); 887 GetController(BOOKMARKS)->FinishStart(DataTypeController::OK);
877 888
878 // We've now configured bookmarks and (implicitly) the control types. 889 // We've now configured bookmarks and (implicitly) the control types.
879 EXPECT_EQ(DataTypeManager::CONFIGURED, dtm_->state()); 890 EXPECT_EQ(DataTypeManager::CONFIGURED, dtm_->state());
880 observer_.ResetExpectations(); 891 observer_.ResetExpectations();
881 892
882 // Pretend we were told to migrate all types. 893 // Pretend we were told to migrate all types.
883 ModelTypeSet to_migrate; 894 ModelTypeSet to_migrate;
884 to_migrate.Put(BOOKMARKS); 895 to_migrate.Put(BOOKMARKS);
885 to_migrate.PutAll(ControlTypes()); 896 to_migrate.PutAll(syncer::ControlTypes());
886 897
887 SetConfigureStartExpectation(); 898 SetConfigureStartExpectation();
888 SetConfigureDoneExpectation(DataTypeManager::OK, DataTypeStatusTable()); 899 SetConfigureDoneExpectation(DataTypeManager::OK, DataTypeStatusTable());
889 dtm_->PurgeForMigration(to_migrate, CONFIGURE_REASON_MIGRATION); 900 dtm_->PurgeForMigration(to_migrate, syncer::CONFIGURE_REASON_MIGRATION);
890 EXPECT_EQ(DataTypeManager::CONFIGURING, dtm_->state()); 901 EXPECT_EQ(DataTypeManager::CONFIGURING, dtm_->state());
891 902
892 // The DTM will call ConfigureDataTypes(), even though it is unnecessary. 903 // The DTM will call ConfigureDataTypes(), even though it is unnecessary.
893 FinishDownload(*dtm_, ModelTypeSet(), ModelTypeSet()); 904 FinishDownload(*dtm_, ModelTypeSet(), ModelTypeSet());
894 EXPECT_EQ(DataTypeManager::CONFIGURED, dtm_->state()); 905 EXPECT_EQ(DataTypeManager::CONFIGURED, dtm_->state());
895 observer_.ResetExpectations(); 906 observer_.ResetExpectations();
896 907
897 // Re-enable the migrated types. 908 // Re-enable the migrated types.
898 SetConfigureStartExpectation(); 909 SetConfigureStartExpectation();
899 SetConfigureDoneExpectation(DataTypeManager::OK, DataTypeStatusTable()); 910 SetConfigureDoneExpectation(DataTypeManager::OK, DataTypeStatusTable());
(...skipping 13 matching lines...) Expand all
913 SetConfigureDoneExpectation(DataTypeManager::OK, DataTypeStatusTable()); 924 SetConfigureDoneExpectation(DataTypeManager::OK, DataTypeStatusTable());
914 Configure(dtm_.get(), ModelTypeSet(BOOKMARKS)); 925 Configure(dtm_.get(), ModelTypeSet(BOOKMARKS));
915 FinishDownload(*dtm_, ModelTypeSet(), ModelTypeSet()); 926 FinishDownload(*dtm_, ModelTypeSet(), ModelTypeSet());
916 FinishDownload(*dtm_, ModelTypeSet(BOOKMARKS), ModelTypeSet()); 927 FinishDownload(*dtm_, ModelTypeSet(BOOKMARKS), ModelTypeSet());
917 GetController(BOOKMARKS)->FinishStart(DataTypeController::OK); 928 GetController(BOOKMARKS)->FinishStart(DataTypeController::OK);
918 EXPECT_EQ(DataTypeManager::CONFIGURED, dtm_->state()); 929 EXPECT_EQ(DataTypeManager::CONFIGURED, dtm_->state());
919 observer_.ResetExpectations(); 930 observer_.ResetExpectations();
920 931
921 // Purge the Nigori type. 932 // Purge the Nigori type.
922 SetConfigureStartExpectation(); 933 SetConfigureStartExpectation();
923 dtm_->PurgeForMigration(ModelTypeSet(NIGORI), CONFIGURE_REASON_MIGRATION); 934 dtm_->PurgeForMigration(ModelTypeSet(NIGORI),
935 syncer::CONFIGURE_REASON_MIGRATION);
924 EXPECT_EQ(DataTypeManager::CONFIGURING, dtm_->state()); 936 EXPECT_EQ(DataTypeManager::CONFIGURING, dtm_->state());
925 observer_.ResetExpectations(); 937 observer_.ResetExpectations();
926 938
927 // Before the backend configuration completes, ask for a different 939 // Before the backend configuration completes, ask for a different
928 // set of types. This request asks for 940 // set of types. This request asks for
929 // - BOOKMARKS: which is redundant because it was already enabled, 941 // - BOOKMARKS: which is redundant because it was already enabled,
930 // - PREFERENCES: which is new and will need to be downloaded, and 942 // - PREFERENCES: which is new and will need to be downloaded, and
931 // - NIGORI: (added implicitly because it is a control type) which 943 // - NIGORI: (added implicitly because it is a control type) which
932 // the DTM is part-way through purging. 944 // the DTM is part-way through purging.
933 Configure(dtm_.get(), ModelTypeSet(BOOKMARKS, PREFERENCES)); 945 Configure(dtm_.get(), ModelTypeSet(BOOKMARKS, PREFERENCES));
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
1155 GetController(BOOKMARKS)->state()); 1167 GetController(BOOKMARKS)->state());
1156 1168
1157 // Make PREFERENCES association fail. 1169 // Make PREFERENCES association fail.
1158 GetController(PREFERENCES) 1170 GetController(PREFERENCES)
1159 ->FinishStart(DataTypeController::ASSOCIATION_FAILED); 1171 ->FinishStart(DataTypeController::ASSOCIATION_FAILED);
1160 EXPECT_EQ(DataTypeManager::CONFIGURING, dtm_->state()); 1172 EXPECT_EQ(DataTypeManager::CONFIGURING, dtm_->state());
1161 1173
1162 // Reconfigure without PREFERENCES after the BOOKMARKS download completes, 1174 // Reconfigure without PREFERENCES after the BOOKMARKS download completes,
1163 // then reconfigure with BOOKMARKS. 1175 // then reconfigure with BOOKMARKS.
1164 configurer_.set_expected_configure_types( 1176 configurer_.set_expected_configure_types(
1165 BackendDataTypeConfigurer::CONFIGURE_ACTIVE, ControlTypes()); 1177 BackendDataTypeConfigurer::CONFIGURE_ACTIVE, syncer::ControlTypes());
1166 FinishDownload(*dtm_, ModelTypeSet(BOOKMARKS), ModelTypeSet()); 1178 FinishDownload(*dtm_, ModelTypeSet(BOOKMARKS), ModelTypeSet());
1167 configurer_.set_expected_configure_types( 1179 configurer_.set_expected_configure_types(
1168 BackendDataTypeConfigurer::CONFIGURE_ACTIVE, ModelTypeSet(BOOKMARKS)); 1180 BackendDataTypeConfigurer::CONFIGURE_ACTIVE, ModelTypeSet(BOOKMARKS));
1169 FinishDownload(*dtm_, ModelTypeSet(), ModelTypeSet()); 1181 FinishDownload(*dtm_, ModelTypeSet(), ModelTypeSet());
1170 1182
1171 // Reconfigure with BOOKMARKS. 1183 // Reconfigure with BOOKMARKS.
1172 FinishDownload(*dtm_, ModelTypeSet(BOOKMARKS), ModelTypeSet()); 1184 FinishDownload(*dtm_, ModelTypeSet(BOOKMARKS), ModelTypeSet());
1173 EXPECT_EQ(DataTypeController::ASSOCIATING, GetController(BOOKMARKS)->state()); 1185 EXPECT_EQ(DataTypeController::ASSOCIATING, GetController(BOOKMARKS)->state());
1174 GetController(BOOKMARKS)->FinishStart(DataTypeController::OK); 1186 GetController(BOOKMARKS)->FinishStart(DataTypeController::OK);
1175 1187
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
1236 1248
1237 TEST_F(SyncDataTypeManagerImplTest, FilterDesiredTypes) { 1249 TEST_F(SyncDataTypeManagerImplTest, FilterDesiredTypes) {
1238 AddController(BOOKMARKS); 1250 AddController(BOOKMARKS);
1239 1251
1240 ModelTypeSet types(BOOKMARKS, APPS); 1252 ModelTypeSet types(BOOKMARKS, APPS);
1241 dtm_->set_priority_types(AddControlTypesTo(types)); 1253 dtm_->set_priority_types(AddControlTypesTo(types));
1242 1254
1243 SetConfigureStartExpectation(); 1255 SetConfigureStartExpectation();
1244 SetConfigureDoneExpectation(DataTypeManager::OK, DataTypeStatusTable()); 1256 SetConfigureDoneExpectation(DataTypeManager::OK, DataTypeStatusTable());
1245 1257
1246 ModelTypeSet expected_types = ControlTypes(); 1258 ModelTypeSet expected_types = syncer::ControlTypes();
1247 expected_types.Put(BOOKMARKS); 1259 expected_types.Put(BOOKMARKS);
1248 // APPS is filtered out because there's no controller for it. 1260 // APPS is filtered out because there's no controller for it.
1249 configurer_.set_expected_configure_types( 1261 configurer_.set_expected_configure_types(
1250 BackendDataTypeConfigurer::CONFIGURE_ACTIVE, expected_types); 1262 BackendDataTypeConfigurer::CONFIGURE_ACTIVE, expected_types);
1251 Configure(dtm_.get(), types); 1263 Configure(dtm_.get(), types);
1252 FinishDownload(*dtm_, ModelTypeSet(BOOKMARKS), ModelTypeSet()); 1264 FinishDownload(*dtm_, ModelTypeSet(BOOKMARKS), ModelTypeSet());
1253 GetController(BOOKMARKS)->FinishStart(DataTypeController::OK); 1265 GetController(BOOKMARKS)->FinishStart(DataTypeController::OK);
1254 1266
1255 dtm_->Stop(); 1267 dtm_->Stop();
1256 EXPECT_EQ(DataTypeManager::STOPPED, dtm_->state()); 1268 EXPECT_EQ(DataTypeManager::STOPPED, dtm_->state());
(...skipping 17 matching lines...) Expand all
1274 FinishDownload(*dtm_, ModelTypeSet(), ModelTypeSet()); // Reconfig for error. 1286 FinishDownload(*dtm_, ModelTypeSet(), ModelTypeSet()); // Reconfig for error.
1275 FinishDownload(*dtm_, ModelTypeSet(), ModelTypeSet()); // Reconfig for error. 1287 FinishDownload(*dtm_, ModelTypeSet(), ModelTypeSet()); // Reconfig for error.
1276 EXPECT_EQ(DataTypeManager::CONFIGURED, dtm_->state()); 1288 EXPECT_EQ(DataTypeManager::CONFIGURED, dtm_->state());
1277 EXPECT_EQ(DataTypeController::RUNNING, GetController(PREFERENCES)->state()); 1289 EXPECT_EQ(DataTypeController::RUNNING, GetController(PREFERENCES)->state());
1278 EXPECT_EQ(DataTypeController::NOT_RUNNING, GetController(BOOKMARKS)->state()); 1290 EXPECT_EQ(DataTypeController::NOT_RUNNING, GetController(BOOKMARKS)->state());
1279 1291
1280 observer_.ResetExpectations(); 1292 observer_.ResetExpectations();
1281 1293
1282 // Re-enable bookmarks. 1294 // Re-enable bookmarks.
1283 SetConfigureDoneExpectation(DataTypeManager::OK, DataTypeStatusTable()); 1295 SetConfigureDoneExpectation(DataTypeManager::OK, DataTypeStatusTable());
1284 dtm_->ReenableType(BOOKMARKS); 1296 dtm_->ReenableType(syncer::BOOKMARKS);
1285 1297
1286 EXPECT_EQ(DataTypeManager::CONFIGURING, dtm_->state()); 1298 EXPECT_EQ(DataTypeManager::CONFIGURING, dtm_->state());
1287 FinishDownload(*dtm_, ModelTypeSet(), ModelTypeSet()); 1299 FinishDownload(*dtm_, ModelTypeSet(), ModelTypeSet());
1288 FinishDownload(*dtm_, ModelTypeSet(BOOKMARKS), ModelTypeSet()); 1300 FinishDownload(*dtm_, ModelTypeSet(BOOKMARKS), ModelTypeSet());
1289 EXPECT_EQ(DataTypeManager::CONFIGURING, dtm_->state()); 1301 EXPECT_EQ(DataTypeManager::CONFIGURING, dtm_->state());
1290 GetController(BOOKMARKS)->FinishStart(DataTypeController::OK); 1302 GetController(BOOKMARKS)->FinishStart(DataTypeController::OK);
1291 EXPECT_EQ(DataTypeManager::CONFIGURED, dtm_->state()); 1303 EXPECT_EQ(DataTypeManager::CONFIGURED, dtm_->state());
1292 EXPECT_EQ(DataTypeController::RUNNING, GetController(PREFERENCES)->state()); 1304 EXPECT_EQ(DataTypeController::RUNNING, GetController(PREFERENCES)->state());
1293 EXPECT_EQ(DataTypeController::RUNNING, GetController(BOOKMARKS)->state()); 1305 EXPECT_EQ(DataTypeController::RUNNING, GetController(BOOKMARKS)->state());
1294 1306
1295 // Should do nothing. 1307 // Should do nothing.
1296 dtm_->ReenableType(BOOKMARKS); 1308 dtm_->ReenableType(syncer::BOOKMARKS);
1297 } 1309 }
1298 1310
1299 TEST_F(SyncDataTypeManagerImplTest, UnreadyType) { 1311 TEST_F(SyncDataTypeManagerImplTest, UnreadyType) {
1300 AddController(BOOKMARKS); 1312 AddController(BOOKMARKS);
1301 GetController(BOOKMARKS)->SetReadyForStart(false); 1313 GetController(BOOKMARKS)->SetReadyForStart(false);
1302 1314
1303 // Bookmarks is never started due to being unready. 1315 // Bookmarks is never started due to being unready.
1304 SetConfigureStartExpectation(); 1316 SetConfigureStartExpectation();
1305 SetConfigureDoneExpectation( 1317 SetConfigureDoneExpectation(
1306 DataTypeManager::OK, 1318 DataTypeManager::OK,
(...skipping 24 matching lines...) Expand all
1331 observer_.ResetExpectations(); 1343 observer_.ResetExpectations();
1332 dtm_->ReenableType(BOOKMARKS); 1344 dtm_->ReenableType(BOOKMARKS);
1333 1345
1334 dtm_->Stop(); 1346 dtm_->Stop();
1335 EXPECT_EQ(DataTypeManager::STOPPED, dtm_->state()); 1347 EXPECT_EQ(DataTypeManager::STOPPED, dtm_->state());
1336 EXPECT_TRUE(configurer_.activated_types().Empty()); 1348 EXPECT_TRUE(configurer_.activated_types().Empty());
1337 } 1349 }
1338 1350
1339 TEST_F(SyncDataTypeManagerImplTest, ModelLoadError) { 1351 TEST_F(SyncDataTypeManagerImplTest, ModelLoadError) {
1340 AddController(BOOKMARKS); 1352 AddController(BOOKMARKS);
1341 GetController(BOOKMARKS)->SetModelLoadError( 1353 GetController(BOOKMARKS)->SetModelLoadError(syncer::SyncError(
1342 SyncError(FROM_HERE, SyncError::DATATYPE_ERROR, "load error", BOOKMARKS)); 1354 FROM_HERE, SyncError::DATATYPE_ERROR, "load error", BOOKMARKS));
1343 1355
1344 // Bookmarks is never started due to hitting a model load error. 1356 // Bookmarks is never started due to hitting a model load error.
1345 SetConfigureStartExpectation(); 1357 SetConfigureStartExpectation();
1346 SetConfigureDoneExpectation( 1358 SetConfigureDoneExpectation(
1347 DataTypeManager::OK, 1359 DataTypeManager::OK,
1348 BuildStatusTable(ModelTypeSet(), ModelTypeSet(BOOKMARKS), ModelTypeSet(), 1360 BuildStatusTable(ModelTypeSet(), ModelTypeSet(BOOKMARKS), ModelTypeSet(),
1349 ModelTypeSet())); 1361 ModelTypeSet()));
1350 Configure(dtm_.get(), ModelTypeSet(BOOKMARKS)); 1362 Configure(dtm_.get(), ModelTypeSet(BOOKMARKS));
1351 FinishDownload(*dtm_, ModelTypeSet(), ModelTypeSet()); 1363 FinishDownload(*dtm_, ModelTypeSet(), ModelTypeSet());
1352 FinishDownload(*dtm_, ModelTypeSet(BOOKMARKS), ModelTypeSet()); 1364 FinishDownload(*dtm_, ModelTypeSet(BOOKMARKS), ModelTypeSet());
1353 EXPECT_EQ(DataTypeManager::CONFIGURED, dtm_->state()); 1365 EXPECT_EQ(DataTypeManager::CONFIGURED, dtm_->state());
1354 EXPECT_EQ(DataTypeController::NOT_RUNNING, GetController(BOOKMARKS)->state()); 1366 EXPECT_EQ(DataTypeController::NOT_RUNNING, GetController(BOOKMARKS)->state());
1355 1367
1356 EXPECT_EQ(0U, configurer_.activated_types().Size()); 1368 EXPECT_EQ(0U, configurer_.activated_types().Size());
1357 } 1369 }
1358 1370
1359 TEST_F(SyncDataTypeManagerImplTest, ErrorBeforeAssociation) { 1371 TEST_F(SyncDataTypeManagerImplTest, ErrorBeforeAssociation) {
1360 AddController(BOOKMARKS); 1372 AddController(BOOKMARKS);
1361 1373
1362 // Bookmarks is never started due to hitting a datatype error while the DTM 1374 // Bookmarks is never started due to hitting a datatype error while the DTM
1363 // is still downloading types. 1375 // is still downloading types.
1364 SetConfigureStartExpectation(); 1376 SetConfigureStartExpectation();
1365 SetConfigureDoneExpectation( 1377 SetConfigureDoneExpectation(
1366 DataTypeManager::OK, 1378 DataTypeManager::OK,
1367 BuildStatusTable(ModelTypeSet(), ModelTypeSet(BOOKMARKS), ModelTypeSet(), 1379 BuildStatusTable(ModelTypeSet(), ModelTypeSet(BOOKMARKS), ModelTypeSet(),
1368 ModelTypeSet())); 1380 ModelTypeSet()));
1369 Configure(dtm_.get(), ModelTypeSet(BOOKMARKS)); 1381 Configure(dtm_.get(), ModelTypeSet(BOOKMARKS));
1370 FinishDownload(*dtm_, ModelTypeSet(), ModelTypeSet()); 1382 FinishDownload(*dtm_, ModelTypeSet(), ModelTypeSet());
1371 GetController(BOOKMARKS)->CreateErrorHandler()->OnUnrecoverableError( 1383 GetController(BOOKMARKS)->CreateErrorHandler()->OnUnrecoverableError(
1372 SyncError(FROM_HERE, SyncError::DATATYPE_ERROR, "bookmarks error", 1384 syncer::SyncError(FROM_HERE, SyncError::DATATYPE_ERROR, "bookmarks error",
1373 BOOKMARKS)); 1385 BOOKMARKS));
1374 base::RunLoop().RunUntilIdle(); 1386 base::RunLoop().RunUntilIdle();
1375 FinishDownload(*dtm_, ModelTypeSet(BOOKMARKS), ModelTypeSet()); 1387 FinishDownload(*dtm_, ModelTypeSet(BOOKMARKS), ModelTypeSet());
1376 FinishDownload(*dtm_, ModelTypeSet(), ModelTypeSet()); // Reconfig for error. 1388 FinishDownload(*dtm_, ModelTypeSet(), ModelTypeSet()); // Reconfig for error.
1377 EXPECT_EQ(DataTypeManager::CONFIGURED, dtm_->state()); 1389 EXPECT_EQ(DataTypeManager::CONFIGURED, dtm_->state());
1378 EXPECT_EQ(DataTypeController::NOT_RUNNING, GetController(BOOKMARKS)->state()); 1390 EXPECT_EQ(DataTypeController::NOT_RUNNING, GetController(BOOKMARKS)->state());
1379 1391
1380 EXPECT_EQ(0U, configurer_.activated_types().Size()); 1392 EXPECT_EQ(0U, configurer_.activated_types().Size());
1381 } 1393 }
1382 1394
1383 TEST_F(SyncDataTypeManagerImplTest, AssociationNeverCompletes) { 1395 TEST_F(SyncDataTypeManagerImplTest, AssociationNeverCompletes) {
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
1561 AddController(BOOKMARKS); 1573 AddController(BOOKMARKS);
1562 AddController(PASSWORDS); 1574 AddController(PASSWORDS);
1563 1575
1564 SetConfigureStartExpectation(); 1576 SetConfigureStartExpectation();
1565 SetConfigureDoneExpectation(DataTypeManager::OK, DataTypeStatusTable()); 1577 SetConfigureDoneExpectation(DataTypeManager::OK, DataTypeStatusTable());
1566 configurer_.set_expected_configure_types( 1578 configurer_.set_expected_configure_types(
1567 BackendDataTypeConfigurer::CONFIGURE_CLEAN, 1579 BackendDataTypeConfigurer::CONFIGURE_CLEAN,
1568 AddControlTypesTo(ModelTypeSet(BOOKMARKS, PASSWORDS))); 1580 AddControlTypesTo(ModelTypeSet(BOOKMARKS, PASSWORDS)));
1569 1581
1570 dtm_->Configure(ModelTypeSet(BOOKMARKS, PASSWORDS), 1582 dtm_->Configure(ModelTypeSet(BOOKMARKS, PASSWORDS),
1571 CONFIGURE_REASON_CATCH_UP); 1583 syncer::CONFIGURE_REASON_CATCH_UP);
1572 EXPECT_EQ(DataTypeManager::CONFIGURING, dtm_->state()); 1584 EXPECT_EQ(DataTypeManager::CONFIGURING, dtm_->state());
1573 1585
1574 FinishDownload(*dtm_, ModelTypeSet(), ModelTypeSet()); 1586 FinishDownload(*dtm_, ModelTypeSet(), ModelTypeSet());
1575 FinishDownload(*dtm_, ModelTypeSet(BOOKMARKS, PASSWORDS), ModelTypeSet()); 1587 FinishDownload(*dtm_, ModelTypeSet(BOOKMARKS, PASSWORDS), ModelTypeSet());
1576 EXPECT_EQ(DataTypeManager::CONFIGURING, dtm_->state()); 1588 EXPECT_EQ(DataTypeManager::CONFIGURING, dtm_->state());
1577 1589
1578 GetController(BOOKMARKS)->FinishStart(DataTypeController::OK); 1590 GetController(BOOKMARKS)->FinishStart(DataTypeController::OK);
1579 EXPECT_EQ(DataTypeManager::CONFIGURING, dtm_->state()); 1591 EXPECT_EQ(DataTypeManager::CONFIGURING, dtm_->state());
1580 EXPECT_EQ(1U, configurer_.activated_types().Size()); 1592 EXPECT_EQ(1U, configurer_.activated_types().Size());
1581 GetController(PASSWORDS)->FinishStart(DataTypeController::OK); 1593 GetController(PASSWORDS)->FinishStart(DataTypeController::OK);
(...skipping 12 matching lines...) Expand all
1594 AddController(BOOKMARKS); 1606 AddController(BOOKMARKS);
1595 AddController(PASSWORDS); 1607 AddController(PASSWORDS);
1596 1608
1597 SetConfigureStartExpectation(); 1609 SetConfigureStartExpectation();
1598 SetConfigureDoneExpectation(DataTypeManager::OK, DataTypeStatusTable()); 1610 SetConfigureDoneExpectation(DataTypeManager::OK, DataTypeStatusTable());
1599 1611
1600 // Configure (catch up) with one type. 1612 // Configure (catch up) with one type.
1601 configurer_.set_expected_configure_types( 1613 configurer_.set_expected_configure_types(
1602 BackendDataTypeConfigurer::CONFIGURE_CLEAN, 1614 BackendDataTypeConfigurer::CONFIGURE_CLEAN,
1603 AddControlTypesTo(ModelTypeSet(BOOKMARKS))); 1615 AddControlTypesTo(ModelTypeSet(BOOKMARKS)));
1604 dtm_->Configure(ModelTypeSet(BOOKMARKS), CONFIGURE_REASON_CATCH_UP); 1616 dtm_->Configure(ModelTypeSet(BOOKMARKS), syncer::CONFIGURE_REASON_CATCH_UP);
1605 EXPECT_EQ(DataTypeManager::CONFIGURING, dtm_->state()); 1617 EXPECT_EQ(DataTypeManager::CONFIGURING, dtm_->state());
1606 1618
1607 // Configure with both types before the first one completes. Both types should 1619 // Configure with both types before the first one completes. Both types should
1608 // end up in CONFIGURE_CLEAN. 1620 // end up in CONFIGURE_CLEAN.
1609 configurer_.set_expected_configure_types( 1621 configurer_.set_expected_configure_types(
1610 BackendDataTypeConfigurer::CONFIGURE_CLEAN, 1622 BackendDataTypeConfigurer::CONFIGURE_CLEAN,
1611 AddControlTypesTo(ModelTypeSet(BOOKMARKS, PASSWORDS))); 1623 AddControlTypesTo(ModelTypeSet(BOOKMARKS, PASSWORDS)));
1612 dtm_->Configure(ModelTypeSet(BOOKMARKS, PASSWORDS), 1624 dtm_->Configure(ModelTypeSet(BOOKMARKS, PASSWORDS),
1613 CONFIGURE_REASON_RECONFIGURATION); 1625 syncer::CONFIGURE_REASON_RECONFIGURATION);
1614 EXPECT_EQ(DataTypeManager::CONFIGURING, dtm_->state()); 1626 EXPECT_EQ(DataTypeManager::CONFIGURING, dtm_->state());
1615 1627
1616 FinishDownload(*dtm_, ModelTypeSet(), ModelTypeSet()); 1628 FinishDownload(*dtm_, ModelTypeSet(), ModelTypeSet());
1617 EXPECT_EQ(DataTypeManager::CONFIGURING, dtm_->state()); 1629 EXPECT_EQ(DataTypeManager::CONFIGURING, dtm_->state());
1618 FinishDownload(*dtm_, ModelTypeSet(), ModelTypeSet()); 1630 FinishDownload(*dtm_, ModelTypeSet(), ModelTypeSet());
1619 FinishDownload(*dtm_, ModelTypeSet(BOOKMARKS, PASSWORDS), ModelTypeSet()); 1631 FinishDownload(*dtm_, ModelTypeSet(BOOKMARKS, PASSWORDS), ModelTypeSet());
1620 EXPECT_EQ(DataTypeManager::CONFIGURING, dtm_->state()); 1632 EXPECT_EQ(DataTypeManager::CONFIGURING, dtm_->state());
1621 1633
1622 GetController(BOOKMARKS)->FinishStart(DataTypeController::OK); 1634 GetController(BOOKMARKS)->FinishStart(DataTypeController::OK);
1623 EXPECT_EQ(DataTypeManager::CONFIGURING, dtm_->state()); 1635 EXPECT_EQ(DataTypeManager::CONFIGURING, dtm_->state());
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
1671 EXPECT_EQ(DataTypeController::MODEL_STARTING, 1683 EXPECT_EQ(DataTypeController::MODEL_STARTING,
1672 GetController(PASSWORDS)->state()); 1684 GetController(PASSWORDS)->state());
1673 EXPECT_EQ(0, GetController(BOOKMARKS)->register_with_backend_call_count()); 1685 EXPECT_EQ(0, GetController(BOOKMARKS)->register_with_backend_call_count());
1674 EXPECT_EQ(0, GetController(PASSWORDS)->register_with_backend_call_count()); 1686 EXPECT_EQ(0, GetController(PASSWORDS)->register_with_backend_call_count());
1675 1687
1676 dtm_->OnAllDataTypesReadyForConfigure(); 1688 dtm_->OnAllDataTypesReadyForConfigure();
1677 EXPECT_EQ(0, GetController(BOOKMARKS)->register_with_backend_call_count()); 1689 EXPECT_EQ(0, GetController(BOOKMARKS)->register_with_backend_call_count());
1678 EXPECT_EQ(1, GetController(PASSWORDS)->register_with_backend_call_count()); 1690 EXPECT_EQ(1, GetController(PASSWORDS)->register_with_backend_call_count());
1679 } 1691 }
1680 1692
1681 } // namespace syncer 1693 } // namespace sync_driver
OLDNEW
« no previous file with comments | « components/sync/driver/data_type_manager_impl.cc ('k') | components/sync/driver/data_type_manager_mock.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698