Commit 964018d0 authored by James Cook's avatar James Cook Committed by Commit Bot

cros: Fix components_unittests when SplitSettingsSync is enabled

Fix the tests in anticipation of enabling the feature by default.
The tricky bit is that UserSelectableType::kApps isn't used on Chrome OS
when the feature is enabled, but it is still part of
UserSelectableTypeSet::All(). Update the tests to use the registered
selectable types, which is closer to what the production code does.

Test: components_unittests --enable-features=SplitSettingsSync
Bug: 1060289
Change-Id: I16d4f119c1daa1cb51f2b9a35ea247beec75ece9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2101722
Commit-Queue: James Cook <jamescook@chromium.org>
Reviewed-by: default avatarMarc Treib <treib@chromium.org>
Auto-Submit: James Cook <jamescook@chromium.org>
Cr-Commit-Position: refs/heads/master@{#750599}
parent 0a4fbe22
......@@ -137,7 +137,10 @@ TEST_F(SyncUserSettingsTest, PreferredTypesSyncEverything) {
ModelTypeSet expected_types = GetUserTypes();
EXPECT_TRUE(sync_user_settings->IsSyncEverythingEnabled());
EXPECT_EQ(expected_types, GetPreferredUserTypes(*sync_user_settings));
for (UserSelectableType type : UserSelectableTypeSet::All()) {
UserSelectableTypeSet all_registered_types =
sync_user_settings->GetRegisteredSelectableTypes();
for (UserSelectableType type : all_registered_types) {
sync_user_settings->SetSelectedTypes(/*sync_everything=*/true,
/*selected_type=*/{type});
EXPECT_EQ(expected_types, GetPreferredUserTypes(*sync_user_settings));
......@@ -169,9 +172,24 @@ TEST_F(SyncUserSettingsTest, PreferredTypesNotKeepEverythingSynced) {
sync_user_settings->SetSelectedTypes(
/*sync_everything=*/false,
/*selected_types=*/UserSelectableTypeSet());
ASSERT_NE(GetUserTypes(), GetPreferredUserTypes(*sync_user_settings));
#if defined(OS_CHROMEOS)
if (chromeos::features::IsSplitSettingsSyncEnabled()) {
// GetPreferredUserTypes() returns ModelTypes, which includes both browser
// and OS types. However, this test exercises browser UserSelectableTypes,
// so disable OS selectable types.
// This test only exercises browser types, so disable all OS types.
sync_user_settings->SetSelectedOsTypes(/*sync_all_os_types=*/false,
UserSelectableOsTypeSet());
}
#endif // defined(OS_CHROMEOS)
// No user selectable types are enabled, so only the "always preferred" types
// are preferred.
ASSERT_EQ(AlwaysPreferredUserTypes(),
GetPreferredUserTypes(*sync_user_settings));
for (UserSelectableType type : UserSelectableTypeSet::All()) {
UserSelectableTypeSet all_registered_types =
sync_user_settings->GetRegisteredSelectableTypes();
for (UserSelectableType type : all_registered_types) {
ModelTypeSet expected_preferred_types =
UserSelectableTypeToAllModelTypes(type);
expected_preferred_types.PutAll(AlwaysPreferredUserTypes());
......@@ -218,14 +236,19 @@ TEST_F(SyncUserSettingsTest, DeviceInfo) {
std::unique_ptr<SyncUserSettingsImpl> sync_user_settings =
MakeSyncUserSettings(GetUserTypes());
EXPECT_TRUE(sync_user_settings->GetPreferredDataTypes().Has(DEVICE_INFO));
UserSelectableTypeSet all_registered_types =
sync_user_settings->GetRegisteredSelectableTypes();
sync_user_settings->SetSelectedTypes(
/*keep_everything_synced=*/true,
/*selected_types=*/UserSelectableTypeSet::All());
/*selected_types=*/all_registered_types);
EXPECT_TRUE(sync_user_settings->GetPreferredDataTypes().Has(DEVICE_INFO));
sync_user_settings->SetSelectedTypes(
/*keep_everything_synced=*/false,
/*selected_types=*/UserSelectableTypeSet::All());
/*selected_types=*/all_registered_types);
EXPECT_TRUE(sync_user_settings->GetPreferredDataTypes().Has(DEVICE_INFO));
sync_user_settings = MakeSyncUserSettings(ModelTypeSet(DEVICE_INFO));
sync_user_settings->SetSelectedTypes(
/*keep_everything_synced=*/false,
......@@ -238,14 +261,19 @@ TEST_F(SyncUserSettingsTest, UserConsents) {
std::unique_ptr<SyncUserSettingsImpl> sync_user_settings =
MakeSyncUserSettings(GetUserTypes());
EXPECT_TRUE(sync_user_settings->GetPreferredDataTypes().Has(USER_CONSENTS));
UserSelectableTypeSet all_registered_types =
sync_user_settings->GetRegisteredSelectableTypes();
sync_user_settings->SetSelectedTypes(
/*keep_everything_synced=*/true,
/*selected_types=*/UserSelectableTypeSet::All());
/*selected_types=*/all_registered_types);
EXPECT_TRUE(sync_user_settings->GetPreferredDataTypes().Has(USER_CONSENTS));
sync_user_settings->SetSelectedTypes(
/*keep_everything_synced=*/false,
/*selected_types=*/UserSelectableTypeSet::All());
/*selected_types=*/all_registered_types);
EXPECT_TRUE(sync_user_settings->GetPreferredDataTypes().Has(USER_CONSENTS));
sync_user_settings = MakeSyncUserSettings(ModelTypeSet(USER_CONSENTS));
sync_user_settings->SetSelectedTypes(
/*keep_everything_synced=*/false,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment