1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
|
// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_SYNC_TEST_TEST_SYNC_USER_SETTINGS_H_
#define COMPONENTS_SYNC_TEST_TEST_SYNC_USER_SETTINGS_H_
#include <memory>
#include <string>
#include <vector>
#include "base/memory/raw_ptr.h"
#include "components/signin/public/base/gaia_id_hash.h"
#include "components/sync/base/data_type.h"
#include "components/sync/base/user_selectable_type.h"
#include "components/sync/service/sync_user_settings.h"
namespace syncer {
class TestSyncService;
// Test implementation of SyncUserSettings that mostly forwards calls to a
// TestSyncService.
class TestSyncUserSettings : public SyncUserSettings {
public:
explicit TestSyncUserSettings(TestSyncService* service);
~TestSyncUserSettings() override;
// SyncUserSettings implementation.
bool IsInitialSyncFeatureSetupComplete() const override;
#if !BUILDFLAG(IS_CHROMEOS)
void SetInitialSyncFeatureSetupComplete(
SyncFirstSetupCompleteSource source) override;
#endif // !BUILDFLAG(IS_CHROMEOS)
bool IsSyncEverythingEnabled() const override;
UserSelectableTypeSet GetSelectedTypes() const override;
bool IsTypeManagedByPolicy(UserSelectableType type) const override;
bool IsTypeManagedByCustodian(UserSelectableType type) const override;
SyncUserSettings::UserSelectableTypePrefState GetTypePrefStateForAccount(
UserSelectableType type) const override;
void SetSelectedTypes(bool sync_everything,
UserSelectableTypeSet types) override;
void SetSelectedType(UserSelectableType type, bool is_type_on) override;
void ResetSelectedType(UserSelectableType type) override;
void KeepAccountSettingsPrefsOnlyForUsers(
const std::vector<GaiaId>& available_gaia_ids) override;
DataTypeSet GetPreferredDataTypes() const;
UserSelectableTypeSet GetRegisteredSelectableTypes() const override;
#if BUILDFLAG(IS_CHROMEOS)
bool IsSyncFeatureDisabledViaDashboard() const override;
void ClearSyncFeatureDisabledViaDashboard() override;
bool IsSyncAllOsTypesEnabled() const override;
UserSelectableOsTypeSet GetSelectedOsTypes() const override;
bool IsOsTypeManagedByPolicy(UserSelectableOsType type) const override;
void SetSelectedOsTypes(bool sync_all_os_types,
UserSelectableOsTypeSet types) override;
UserSelectableOsTypeSet GetRegisteredSelectableOsTypes() const override;
#endif // BUILDFLAG(IS_CHROMEOS)
bool IsCustomPassphraseAllowed() const override;
bool IsEncryptEverythingEnabled() const override;
syncer::DataTypeSet GetAllEncryptedDataTypes() const override;
bool IsPassphraseRequired() const override;
bool IsPassphraseRequiredForPreferredDataTypes() const override;
bool IsPassphrasePromptMutedForCurrentProductVersion() const override;
void MarkPassphrasePromptMutedForCurrentProductVersion() override;
bool IsTrustedVaultKeyRequired() const override;
bool IsTrustedVaultKeyRequiredForPreferredDataTypes() const override;
bool IsTrustedVaultRecoverabilityDegraded() const override;
bool IsUsingExplicitPassphrase() const override;
base::Time GetExplicitPassphraseTime() const override;
std::optional<PassphraseType> GetPassphraseType() const override;
void SetEncryptionPassphrase(const std::string& passphrase) override;
bool SetDecryptionPassphrase(const std::string& passphrase) override;
void SetExplicitPassphraseDecryptionNigoriKey(
std::unique_ptr<Nigori> nigori) override;
std::unique_ptr<Nigori> GetExplicitPassphraseDecryptionNigoriKey()
const override;
void SetRegisteredSelectableTypes(UserSelectableTypeSet types);
void SetInitialSyncFeatureSetupComplete();
void ClearInitialSyncFeatureSetupComplete();
void SetTypeIsManagedByPolicy(UserSelectableType type, bool managed);
void SetTypeIsManagedByCustodian(UserSelectableType type, bool managed);
#if BUILDFLAG(IS_CHROMEOS)
void SetOsTypeIsManaged(UserSelectableOsType type, bool managed);
#endif
void SetCustomPassphraseAllowed(bool allowed);
void SetPassphraseRequired();
void SetPassphraseRequired(const std::string& required_passphrase);
void SetTrustedVaultKeyRequired(bool required);
void SetTrustedVaultRecoverabilityDegraded(bool degraded);
void SetIsUsingExplicitPassphrase(bool enabled);
void SetPassphraseType(PassphraseType type);
void SetExplicitPassphraseTime(base::Time t);
#if BUILDFLAG(IS_CHROMEOS)
void SetSyncFeatureDisabledViaDashboard();
#endif // BUILDFLAG(IS_CHROMEOS)
const std::string& GetEncryptionPassphrase() const;
private:
bool IsEncryptedDatatypePreferred() const;
const raw_ptr<TestSyncService> service_;
UserSelectableTypeSet registered_selectable_types_ =
UserSelectableTypeSet::All();
#if BUILDFLAG(IS_CHROMEOS)
UserSelectableOsTypeSet selected_os_types_ = UserSelectableOsTypeSet::All();
UserSelectableOsTypeSet managed_os_types_;
#endif
UserSelectableTypeSet selected_types_ = UserSelectableTypeSet::All();
UserSelectableTypeSet managed_by_policy_types_;
UserSelectableTypeSet managed_by_custodian_types_;
bool initial_sync_feature_setup_complete_ = true;
bool sync_everything_enabled_ = true;
#if BUILDFLAG(IS_CHROMEOS)
bool sync_all_os_types_enabled_ = true;
#endif
bool custom_passphrase_allowed_ = true;
bool passphrase_required_ = false;
bool trusted_vault_key_required_ = false;
bool trusted_vault_recoverability_degraded_ = false;
PassphraseType passphrase_type_ = PassphraseType::kKeystorePassphrase;
base::Time explicit_passphrase_time_;
std::string encryption_passphrase_;
#if BUILDFLAG(IS_CHROMEOS)
bool sync_feature_disabled_via_dashboard_ = false;
#endif // BUILDFLAG(IS_CHROMEOS)
};
} // namespace syncer
#endif // COMPONENTS_SYNC_TEST_TEST_SYNC_USER_SETTINGS_H_
|