Chromium Code Reviews| Index: chrome/browser/sync/test/integration/enable_disable_test.cc |
| diff --git a/chrome/browser/sync/test/integration/enable_disable_test.cc b/chrome/browser/sync/test/integration/enable_disable_test.cc |
| index 55b2ee49aa5b9f6891f96c37a89884c16a6fabd9..f12c8b935af6d34134fb7967dee067dfc5be6d2e 100644 |
| --- a/chrome/browser/sync/test/integration/enable_disable_test.cc |
| +++ b/chrome/browser/sync/test/integration/enable_disable_test.cc |
| @@ -15,6 +15,8 @@ |
| namespace { |
| +using syncer::ModelTypeSet; |
| + |
| class EnableDisableSingleClientTest : public SyncTest { |
| public: |
| EnableDisableSingleClientTest() : SyncTest(SINGLE_CLIENT) {} |
| @@ -39,21 +41,34 @@ bool IsUnready(const syncer::DataTypeStatusTable& data_type_status_table, |
| return data_type_status_table.GetUnreadyErrorTypes().Has(type); |
| } |
| +// The current approach this test class takes is to examine the Directory and |
| +// check for root nodes to see if a type is currently enabled. While this works |
| +// for things in the directory, it does not work for USS types. USS does not |
| +// have any general data access mechanism, at least yet. Until that exists, |
| +// simply omit types that may be USS from these cases. |
| +ModelTypeSet UnifiedSyncServiceTypes() { |
| + ModelTypeSet set; |
| + set.Put(syncer::DEVICE_INFO); |
| + return set; |
|
maxbogue
2016/12/19 20:55:45
Can't you just do return ModelTypeSet(syncer::Devi
skym
2016/12/20 16:11:21
Done.
|
| +} |
| + |
| IN_PROC_BROWSER_TEST_F(EnableDisableSingleClientTest, EnableOneAtATime) { |
| ASSERT_TRUE(SetupClients()); |
| // Setup sync with no enabled types. |
| - ASSERT_TRUE(GetClient(0)->SetupSync(syncer::ModelTypeSet())); |
| + ASSERT_TRUE(GetClient(0)->SetupSync(ModelTypeSet())); |
| syncer::UserShare* user_share = GetSyncService(0)->GetUserShare(); |
| const syncer::DataTypeStatusTable& data_type_status_table = |
| GetSyncService(0)->data_type_status_table(); |
| - const syncer::ModelTypeSet registered_types = |
| + const ModelTypeSet registered_types = |
| GetSyncService(0)->GetRegisteredDataTypes(); |
| - const syncer::ModelTypeSet registered_user_types = |
| + const ModelTypeSet registered_directory_types = |
| + Difference(registered_types, UnifiedSyncServiceTypes()); |
| + const ModelTypeSet registered_directory_user_types = |
| Intersection(registered_types, syncer::UserSelectableTypes()); |
| - for (syncer::ModelTypeSet::Iterator it = registered_user_types.First(); |
| + for (ModelTypeSet::Iterator it = registered_directory_user_types.First(); |
| it.Good(); it.Inc()) { |
| ASSERT_TRUE(GetClient(0)->EnableSyncForDatatype(it.Get())); |
| @@ -90,8 +105,10 @@ IN_PROC_BROWSER_TEST_F(EnableDisableSingleClientTest, DisableOneAtATime) { |
| // Setup sync with no disabled types. |
| ASSERT_TRUE(GetClient(0)->SetupSync()); |
| - const syncer::ModelTypeSet registered_types = |
| + const ModelTypeSet registered_types = |
| GetSyncService(0)->GetRegisteredDataTypes(); |
| + const ModelTypeSet registered_directory_types = |
| + Difference(registered_types, UnifiedSyncServiceTypes()); |
| syncer::UserShare* user_share = GetSyncService(0)->GetUserShare(); |
| @@ -99,7 +116,7 @@ IN_PROC_BROWSER_TEST_F(EnableDisableSingleClientTest, DisableOneAtATime) { |
| GetSyncService(0)->data_type_status_table(); |
| // Make sure all top-level nodes exist first. |
| - for (syncer::ModelTypeSet::Iterator it = registered_types.First(); |
| + for (ModelTypeSet::Iterator it = registered_directory_types.First(); |
| it.Good(); it.Inc()) { |
| if (!syncer::ProxyTypes().Has(it.Get())) { |
| ASSERT_TRUE(DoesTopLevelNodeExist(user_share, it.Get()) || |
| @@ -107,7 +124,7 @@ IN_PROC_BROWSER_TEST_F(EnableDisableSingleClientTest, DisableOneAtATime) { |
| } |
| } |
| - for (syncer::ModelTypeSet::Iterator it = registered_types.First(); |
| + for (ModelTypeSet::Iterator it = registered_directory_types.First(); |
| it.Good(); it.Inc()) { |
| // SUPERVISED_USERS and SUPERVISED_USER_SHARED_SETTINGS are always synced. |
| if (it.Get() == syncer::SUPERVISED_USERS || |