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..177a5edbc47fa58357d16bf23328562ab96233ae 100644 |
--- a/chrome/browser/sync/test/integration/enable_disable_test.cc |
+++ b/chrome/browser/sync/test/integration/enable_disable_test.cc |
@@ -7,6 +7,7 @@ |
#include "chrome/browser/sync/test/integration/sync_test.h" |
#include "components/browser_sync/profile_sync_service.h" |
#include "components/sync/base/model_type.h" |
+#include "components/sync/driver/sync_driver_switches.h" |
#include "components/sync/syncable/read_node.h" |
#include "components/sync/syncable/read_transaction.h" |
@@ -15,6 +16,9 @@ |
namespace { |
+using base::FeatureList; |
+using syncer::ModelTypeSet; |
+ |
class EnableDisableSingleClientTest : public SyncTest { |
public: |
EnableDisableSingleClientTest() : SyncTest(SINGLE_CLIENT) {} |
@@ -39,21 +43,36 @@ 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; |
+ if (FeatureList::IsEnabled(switches::kSyncUSSDeviceInfo)) { |
+ set.Put(syncer::DEVICE_INFO); |
+ } |
+ return set; |
+} |
+ |
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 +109,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 +120,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 +128,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 || |