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