File: test_sync_user_settings.h

package info (click to toggle)
chromium 139.0.7258.138-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 6,120,676 kB
  • sloc: cpp: 35,100,869; ansic: 7,163,530; javascript: 4,103,002; python: 1,436,920; asm: 946,517; xml: 746,709; pascal: 187,653; perl: 88,691; sh: 88,436; objc: 79,953; sql: 51,488; cs: 44,583; fortran: 24,137; makefile: 22,147; tcl: 15,277; php: 13,980; yacc: 8,984; ruby: 7,485; awk: 3,720; lisp: 3,096; lex: 1,327; ada: 727; jsp: 228; sed: 36
file content (144 lines) | stat: -rw-r--r-- 5,834 bytes parent folder | download | duplicates (5)
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_