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 || |